Yenilogo Logo ve Kurumsal Kimlik Hizmetleri



0 Üye ve 1 Ziyaretçi konuyu incelemekte.

mustafa öksüz

  • İleti: 405
Ynt: Mac'te programc?l?k
Cevap #15 - 11 Mart 2008, 10:29

Bu arada zaman?nda assembly de hesap mak?nes? de yapm?st?m ;) Onu gönderebilirim
Bekliyorum...
Kayıtlı

?smail Pazarba??

  • İleti: 967
Ynt: Mac'te programc?l?k
Cevap #16 - 11 Mart 2008, 13:52

Bir tarafta Microsoft, bir tarafta Apple. ?kisi de ay? terbiyesizli?i yapt??? için ikisine de kulak asm?yorum. Birisi C# diye bir?ey ç?kartt?, birisi de Objective-C kullan?yor (neyse ki kendisi icat etmeye kalkmad?). Herkes kendi "proprietary" programlama dilini kullan?rsa, bu i?in içinden ç?k?lmaz. Standardlar var, "mainstream" programlama dilleri var. Bütün API'? C'de yapars?n, isteyen üzerine C++ kütüphanesi yazar, isteyen Perl kütüphanesi yazar. Ben Apple'da program yazmak için ObjC ö?renmem. Bugün "Hello World" uygulamas? bile yazamam. Windows'ta uygulama geli?tirmek için de C# ö?renmem. Üniversite ö?rencisi olsayd?m, belki ö?renebilirdim. Bu saatten sonra u?ra?mam. Neyse ki Windows'ta daha fazla ?ans?m?z var (C++/CLI - illa ki .NET isteyene - C, C++) ve .NET te yazmak zorunda de?iliz. Ben C++ biliyorum ve ba?ka bir dil ö?renmeye ihtiyaç duymuyorum, zorlanmak ta ho?uma gitmiyor. Ben Apple'?n "madem 'cool' program yazacaks?n, ObjC ö?reneceksin" zorlamas?na kar?? oldu?um için Mac'te (Cocoa veya Carbon) herhangi bir uygulama geli?tirmedim. ?htiyac?m oldu?unda konsol uygulamas? yazd?m. Carbon için C++ ta kullanabilirmi?im ama o eski mimariymi?, yenisi için ObjC ö?renmek laz?mm??... Geçelim... Çok mecbur kal?rsam, Carbon C yada C++ kullan?r?m.

Ben meseleyi tam bilmiyorum; Cocoa, ObjC ile haz?rlanm?? bir kütüphane mi, yoksa i?letim sistemi API'?n kendisi mi? Carbon, sadece bir C kütüphanesi mi? Okuduklar?mdan bunlar? ç?kartt?m ama tam anlayamad???m için soruyorum.
Kayıtlı
Mac Pro 2 x 2.6GHz Quad-Xeon + 7 GiB RAM + ATI Radeon HD5770 + 2.6TB HDD + 10.7 ENU/NO

HAI
CAN HAS STDIO?
KTHXBYE[/url]

neosx

  • İleti: 311
Ynt: Mac'te programc?l?k
Cevap #17 - 11 Mart 2008, 16:48

Standardlar var, "mainstream" programlama dilleri var.

Bahsettiginiz standartlari da programlama dillerini de mutlaka birileri kendi ihtiyacini karsilamak icin ortaya cikarmistir. Microsoft ve Apple'in yaptiklari da bundan farksiz. Apple kendi gereksinimi icin Objective-C'nin daha uygun oldugunu dusunmus, onu kullanmis. Microsoft kendi sorunlarinin C# ile daha kolay cozulecegini dusunmus, onu kullanmis. Mevcut duzen ihtiyaclarini karsilasa zaten boyle bir ise kalkismazlardi.

Bütün API'? C'de yapars?n, isteyen üzerine C++ kütüphanesi yazar, isteyen Perl kütüphanesi yazar.

Zaten C ile ugrasmamak icin icat etmisler bu dilleri. C'de yapmaniz gereken milyonlarca isi zaten bu programlama dilleri kendileri yapiyorlar, C++ gibi.

Ben Apple'?n "madem 'cool' program yazacaks?n, ObjC ö?reneceksin" zorlamas?na kar?? oldu?um için Mac'te (Cocoa veya Carbon) herhangi bir uygulama geli?tirmedim.

Bunu bir zorlama olarak gormemek lazim. Neticede Apple'in ideolojisi bu.

Ben meseleyi tam bilmiyorum; Cocoa, ObjC ile haz?rlanm?? bir kütüphane mi, yoksa i?letim sistemi API'?n kendisi mi? Carbon, sadece bir C kütüphanesi mi? Okuduklar?mdan bunlar? ç?kartt?m ama tam anlayamad???m için soruyorum.

Cocoa, kendisi de Objective-C ile yazilmis bir Objective-C Uygulama Programlama Arayuzu (API). Lakin baska dillerden de kullanilmasini saglayan kopruleri var. Ornegin Java kullanarak Cocoa ozellikleri kullanilabiliyo r. Bildigim kadariyla bu destegi artik kaldirdilar.

Isletim sisteminin Cocoa ile alakasi yok. Cocoa tamamen kullanici uygulamalari icin yapilmis. Ama Cocoa zaten kullanicinin isteklerini yapabilmek icin isletim sisteminin hizmetlerinden yararlaniyor.

Carbon'un islev olarak Cocoa'dan pek farki yok, ama sizin istediginiz duruma daha yakin. C kutuphanelerind en olusuyor ve C++'tan da ulasilabiliyor. Carbon'u Klasik Sistem'den yeni sisteme gecis saglamasi icin yapmislar. Apple yavas yavas Carbon'dan kurtulacak gibi gorunuyor.
Kayıtlı
PB G4 12" 1.5 GHz 1.25 GB RAM 160 GB HD Mac OS X 10.5.8

?smail Pazarba??

  • İleti: 967
Ynt: Mac'te programc?l?k
Cevap #18 - 11 Mart 2008, 18:24

Beni dü?ündüren nokta da zaten ihtiyaç meselesi. ?htiyac?n?z varsa, standard komitesinde ihtiyac?n?z? dile getirirsiniz yada dile eklenti yapabilirsiniz (çirkin durur, ama mümkündür, standard bir yoldur. bkz. Managed Extensions for C++). ?htiyaç dilden kaynakl? m?, yoksa kütüphaneyle çözülebilir mi (C++'ta "lock" keyword ile scope olmamas? gerçek bir sorun mu, yoksa LockHandle my:lock = Platform::Mutex::Acquire() gibi bir yöntem, RAII paternine dayanarak yaz?lan bir kütüphane sorunu çözer mi)? Baz? ?eyleri dilin yap?s? itibar?yla çözmek mümkün de?ildir (mesela compacting garbage collection, pointer de?erlerini de?i?tirdi?i için C ve C++'ta "do?rudan" kullan?lam?yor, yine kütüphane çözümleri mevcut), yada çözüm için öngörülen yöntemi uygulamak imkans?zd?r/zordur/de?i?iklik gerektirir (yine compacting GC örne?i), bu durumda ya yeni bir dil, yada yeni bir run-time ihtiyac? do?abilir (JVM, .NET CLR gibi). C nesneleri kabul etmedi ama halen dillerin ba??nda geliyor. C'de nesneye yönelik program yaz?labilir (fopen, bir FILE* döndürüyor, bu aç?kça belirtilmi? bir "this" pointer ile e?de?er de?il midir? yada socket(), bir tam say? döndürüyor, yada Windows'ta CreateWindow bir pencere tutmac? döndürüyor. Bunlar ard?ndan kullan?lan fonksiyonlara biz bu de?erleri gönderiyoruz), isteyen yazabilir, ama dil deste?inin verdi?i esneklik yerine programc?n?n u?ra?mas? gerekiyor. Bence bu kabul edilebilir. Çünkü nesneye ihtiyac? olan dil de?il, programc?d?r. E?er programc?, nesne deste?i olmayan bir dilde vtable gibi bir yap?ya ihtiyaç duyarsa (ve C'de struct içinde struct, fonksiyon göstericisi (function pointer) kullanmak gibi), nesneye yönelik bir dil seçebilir (C++). E?er programc?, garbage collection yada daha fazla run-time hizmetine ihtiyaç duyoyor ve C++'ta u?ra?(a)m?yorsa, içerisinde GC ve daha fazla run-time deste?i bar?nd?ran bir dil seçer (yine JVM, .NET CLR). Fakat üretici bu tercihi yapmamal?, bence. Apple, yine ObjC ile yaz?lm?? ve desteklenen Cocoa'y? da??tsayd?, ama C API'? da kald?rmasayd?, Cocoa'y? bunun üzerine bina etseydi bence daha geni? bir kitleye hitap ediyor olurdu. Benim ki?isel görü?üm.

Ben üreticilerin karma??k, yüksek seviye API ile u?ra?mamas?n? do?ru bulmuyorum. Windows'ta oldu?u gibi bütün API C deste?iyle yap?labilirdi, bunun üzerine kütüphaneler yaz?labilirdi (.NET BCL). Yüksek seviye kütüphaneleri ek olarak da??tabilirler (MFC) yada ba?kalar? yazabilir (eskiden MSFT taraf?ndan olsa da art?k ba?kalar? taraf?ndan da geli?tirlen WTL gibi).

Ben zorlama olarak gördüm, çünkü sizin dedi?iniz gibi C yada C++ kullanmak imkans?z olacak gibi duruyor. Bu durumda "ya ObjC kullan, yada yazma" demek olmuyor mu? Ben mi yanl?? anl?yorum?

Ben i?letim sistemine at?f yaparken, Aqua'y? kastettim. ??letim sistemi halen C API deste?i veriyor, o yönden bir s?k?nt?m yok. Bu yönden en büyük s?k?nt?m, PPC->i386 geçi?lerini kolayla?t?ran hiçbir?ey göremedim. Mesela PPC thread durumunu (PPC_THREAD_STAT E) i386 thread durumuna (i386_THREAD_STA TE) çeviren fonksiyonlar hatta dökümantasyon göremedim.

Biraz daha okudum ve ObjC ile C++'?n birle?tirilebildi?ini ama sorunlar oldu?unu ö?rendim. Belki en mant?kl? yöntem, kullan?c? arabirimi k?sm?n?n ObjC ile, i?levselli?in kendisinin C yada C++ ile yap?lmas?d?r.
Kayıtlı
Mac Pro 2 x 2.6GHz Quad-Xeon + 7 GiB RAM + ATI Radeon HD5770 + 2.6TB HDD + 10.7 ENU/NO

HAI
CAN HAS STDIO?
KTHXBYE[/url]

neosx

  • İleti: 311
Ynt: Mac'te programc?l?k
Cevap #19 - 11 Mart 2008, 19:26

?htiyac?n?z varsa, standard komitesinde ihtiyac?n?z? dile getirirsiniz yada dile eklenti yapabilirsiniz (çirkin durur, ama mümkündür, standard bir yoldur. bkz. Managed Extensions for C++).

Global olarak standart komitesi diye bir komite yok ki. Ama her standardin kendi komitesi olabilir tabi, ya da bir komite cesitli standartlar gelistiriyor olabilir. "Managed C++" da Microsoft'un gelistirdigi bir sey.

Bu yeni dilleri uretenler belli ki yeni bir dil ihtiyaci yuzunden uretmisler. Yeni dilin getirdikleri kutuphaneler ile de cozulebilirdi belki ama boylesinin daha etkin olacagini dusunmus olmalilar. Objective-C'nin ozelliklerine ve Apple'in onlari nasil kullandigina bakarsaniz, Apple'a hak vereceksiniz.

C nesneleri kabul etmedi ama halen dillerin ba??nda geliyor. C'de nesneye yönelik program yaz?labilir (fopen, bir FILE* döndürüyor, bu aç?kça belirtilmi? bir "this" pointer ile e?de?er de?il midir? yada socket(), bir tam say? döndürüyor, yada Windows'ta CreateWindow bir pencere tutmac? döndürüyor. Bunlar ard?ndan kullan?lan fonksiyonlara biz bu de?erleri gönderiyoruz), isteyen yazabilir, ama dil deste?inin verdi?i esneklik yerine programc?n?n u?ra?mas? gerekiyor.

C, isletim sistemi yazmak icin gelistirilmis bir dil, dolayisiyla basit ve hizli olmasi cok onemli. Yapacaginiz her isi tek tek yaptiginiz icin cok da esnek bir dil. Bu nedenle her amac icin de kullanilabilir hale gelmis.

C'de nesneye yonelik program tabi yazilabilir, hatta Assembly ile de yazarsiniz. Neticede butun programlar Assembly olarak calismiyor mu (aslinda 01 olarak calisiyor :)). Sizin bahsettiginiz yontemler yapisal programlamanin urunleri. Nesneye yonelik olmanin esas mantigi, bir nesnenin bilgi saklamasi ve gonderilen mesajlara cevap verebilmesidir. Ayni siniftan ise birden cok nesne farkli degerler ile yaratilabilir.

Bence bu kabul edilebilir. Çünkü nesneye ihtiyac? olan dil de?il, programc?d?r.

Bir dil bir kere ogrenilir, bir hayat boyu kullanilir. Programci her programinda nesneleri bastan kesfedecegi yerde bir kere dilde kesfeder ve isleri kolaylasmis olur.

Fakat üretici bu tercihi yapmamal?, bence. Apple, yine ObjC ile yaz?lm?? ve desteklenen Cocoa'y? da??tsayd?, ama C API'? da kald?rmasayd?, Cocoa'y? bunun üzerine bina etseydi bence daha geni? bir kitleye hitap ediyor olurdu. Benim ki?isel görü?üm.

Uretici bu tercihleri yapmali tabi ki. Kendi ihtiyaclari dogrultusunda bir programlama dili secmek gayet dogal. Sadece Mac icin program yazacak bir kisi Cocoa kullanir, ama ayni programin Windows'ta da calismasini istiyorsa Java kullanmasi gerekir. Java'da bir suru sinif tanimlamislar ama .NET'te de var bunlardan. Belki birisinden birisi o program icin daha iyi olanaklar sunuyor, o zaman onu secer.

Emin olun oyle olsaydi fazladan hitap edecegi kitle mevcut kitlenin yaninda cok kucuk kalirdi. Ama Apple'in asil yapmak istedigi programlama dilini degistirmek degildi ki, sistemi degistirmekti.

Bu durumda "ya ObjC kullan, yada yazma" demek olmuyor mu? Ben mi yanl?? anl?yorum?

Apple buna soyle cevap verirdi: "Objective-C kullanarak yaz." :)

Ben i?letim sistemine at?f yaparken, Aqua'y? kastettim.

Aqua dedigimiz sey Cocoa'nin gorunen kismi, grafik arayuzu. Aslinda Aqua biraz daha genis bir tabana yayiliyor. Java dugmelerinin de bildigimiz Mac dugmesi seklinde gorunebilmesi gibi.

??letim sistemi halen C API deste?i veriyor, o yönden bir s?k?nt?m yok. Bu yönden en büyük s?k?nt?m, PPC->i386 geçi?lerini kolayla?t?ran hiçbir?ey göremedim. Mesela PPC thread durumunu (PPC_THREAD_STAT E) i386 thread durumuna (i386_THREAD_STA TE) çeviren fonksiyonlar hatta dökümantasyon göremedim.

Bu konuda bir bilgim yok, fakat Cocoa kullanicilari icin boyle bir gecis zaten otomatik olmali.
Kayıtlı
PB G4 12" 1.5 GHz 1.25 GB RAM 160 GB HD Mac OS X 10.5.8

?smail Pazarba??

  • İleti: 967
Ynt: Mac'te programc?l?k
Cevap #20 - 12 Mart 2008, 03:44

Global olarak standart komitesi diye bir komite yok ki. Ama her standardin kendi komitesi olabilir tabi, ya da bir komite cesitli standartlar gelistiriyor olabilir. "Managed C++" da Microsoft'un gelistirdigi bir sey.
Komiteden kast?m, ISO C ve C++ komiteleri. Bu dillerle ilgili bir s?k?nt? varsa, komiteye gidersiniz yada kendi derleyicinize Microsoft'un yapt??? gibi eklenti yazars?n?z, yada yine Microsoft'un yapt??? gibi varolan sintaks? koruyup yeni bir dil sunars?n?z (C++/CLI). Bu durum sadece dille ilgili s?k?nt?larda geçerli. Bizim sorunumuz dil ile ilgili de?il de, dilin dikte edilmesiyle ilgili.

Alıntı
Bu yeni dilleri uretenler belli ki yeni bir dil ihtiyaci yuzunden uretmisler. Yeni dilin getirdikleri kutuphaneler ile de cozulebilirdi belki ama boylesinin daha etkin olacagini dusunmus olmalilar. Objective-C'nin ozelliklerine ve Apple'in onlari nasil kullandigina bakarsaniz, Apple'a hak vereceksiniz.
Henüz sintaks?n? bilmiyorum. Mutlaka bir ihtiyaçlar? oldu ki onu tercih ettiler, onda ?üphe yok. Microsoft neden .NET'e yöneldi?ini ve yöneltti?ini, neden yeni diller getirdi?ini biliyoruz. Ben onlar?n ne tercih etti?inden daha ziyade, bunun programc?ya tercih ettirilmesine kar??y?m. Microsoft, benim bildi?im kadar?yla "sadece C#" demedi ve demeyecek.

Alıntı
C'de nesneye yonelik program tabi yazilabilir, hatta Assembly ile de yazarsiniz. Neticede butun programlar Assembly olarak calismiyor mu (aslinda 01 olarak calisiyor :)). Sizin bahsettiginiz yontemler yapisal programlamanin urunleri. Nesneye yonelik olmanin esas mantigi, bir nesnenin bilgi saklamasi ve gonderilen mesajlara cevap verebilmesidir. Ayni siniftan ise birden cok nesne farkli degerler ile yaratilabilir.

Bir dil bir kere ogrenilir, bir hayat boyu kullanilir. Programci her programinda nesneleri bastan kesfedecegi yerde bir kere dilde kesfeder ve isleri kolaylasmis olur.
Evet. Onlar? da C de dil deste?i olmadan yapabilirsiniz. C++ ilk olarak C'ye çevrilip te derleniyordu (cfront). Dil deste?inin çok önemli oldu?u anlar vard?r. Tercih programc?ya b?rak?lmal?. OOP isteyen OOP yazar. Tekerle?i yeniden ke?fetmek isteyene de kar??mamak gerekir.

Alıntı
Uretici bu tercihleri yapmali tabi ki. Kendi ihtiyaclari dogrultusunda bir programlama dili secmek gayet dogal. Sadece Mac icin program yazacak bir kisi Cocoa kullanir, ama ayni programin Windows'ta da calismasini istiyorsa Java kullanmasi gerekir. Java'da bir suru sinif tanimlamislar ama .NET'te de var bunlardan. Belki birisinden birisi o program icin daha iyi olanaklar sunuyor, o zaman onu secer.
Yada Qt kullan?r :) Üretici böyle tercihleri yapmamal?. O tavsiye eder ve deste?ini gösterir, ama zorlamamal? (C# gibi). ObjC sintaks? gördü?üm kadar?yla akrabalar?n?n sintakslar?na çok benzemiyor. Dolay?s?yla birini bilen, di?erinde yeterli seviyeye gelmi? olmuyor. "Bir lisan, bir insan"d?r, ama insan yine de sürekli kullanmayaca?? bir?eye vakit harcarken iki defa dü?ünüyor (kendim ve eski ev arkada??m için konu?uyorum).

Alıntı
Emin olun oyle olsaydi fazladan hitap edecegi kitle mevcut kitlenin yaninda cok kucuk kalirdi. Ama Apple'in asil yapmak istedigi programlama dilini degistirmek degildi ki, sistemi degistirmekti.
Bu konuda size kat?lm?yorum. Ben lisans e?itiminde Objective-C dersi alan bir yaz?l?m mühendisi görmedim, hatta programlama dilleri dersinde bahsedildi?inden bile ?üpheliyim. Ben kendim elektronik mühendisli?i okudum ama çevremde hep yaz?l?mc?lar vard?. Sizce ObjC bilen mi daha fazlad?r, C yada C++ hatta Java bilen mi? ObjC, sadece özel ilgi üzerine ö?renilebilir, bence. Çünkü Apple d???nda piyasada yayg?n olarak kullan?lm?yor. Apple bugün C deste?ini tamam?yla kessin, piyasada Apple'da çal??an yaz?l?m say?s? bugünkünün yar?s?n?n alt?na iner. Opera, C++ ile yaz?l?yor. Firefox, C++ ile yaz?l?yor daha say?s?z program, C yada C++ ile yaz?l?yor, Adobe Flash plugin C ve C++ ile yaz?l?yor. Muhtemelen Photoshop ta C++ ile yaz?l?yor. Siz bunlar? tamamen gözard? edip "benim platformumda çal??acaksan?z, ObjC ile yazacaks?n?z" derseniz, üreticiler "yok hocam, ben almayay?m" derler, bence. Apple'?n pazar pay? yüzde kaç ki öyle bir yat?r?m yap?ls?n? Bu nedenle Apple'?n C deste?ini tamamen kesece?i de pek mümkün görünmüyor. Ama Microsoft gibi "biz tad?ndan yenmez ObjC ile geli?tirilmi? ve kullan?labilecek Cocoa framework'ünü tavsiye ediyoruz" derse Apple, böyle bir "tavsiye"ye itiraz edilmez. Sistem de?i?ikli?inden kast?n?z budur diye anl?yorum. Geri uyumlulu?u öldürmedikleri sürece, sistemlerini istedikleri gibi de?i?tirsinler, buna muhalefet olmaz.

Alıntı
Apple buna soyle cevap verirdi: "Objective-C kullanarak yaz." :)
Hmm.. Ben de ondan ?ikayet ediyorum i?te :) Zorlanmak ho?uma gitmiyor. Bilakis, tepki verme ihtiyac? hissediyorum. En k?sa yol, bildi?in yoldur. Belki benim dilimde garbage collection yok ama y?llard?r süre gelen farkl? teknikler var. Ben onlara dayanarak yazd???mda, daha h?zl?, etkili ve belki do?ru yazar?m. Ama dil deste?inin yeri ayr?d?r, ona hiçbir itiraz?m yok.

Apple e?er "ObjC daha ho? imkanlar sunuyor, kütüphanelerimiz daha ho?, buyrun onunla *da* yaz?n" diyorsa, benim yine itiraz?m yok, te?ekkür ederim, yazana engel olmayay?m. Ama C deste?ini tamamen kald?r?p sadece ObjC diyorsa, ben küserim, birdaha da konu?mam.

Alıntı
Aqua dedigimiz sey Cocoa'nin gorunen kismi, grafik arayuzu. Aslinda Aqua biraz daha genis bir tabana yayiliyor. Java dugmelerinin de bildigimiz Mac dugmesi seklinde gorunebilmesi gibi.
Ben JVM kodunu incelemedim, ama inceleyen bir arkada??m meselenin "native" aya??ndan bahsetmi?ti. Nitekim ben .NET CLR kodunu biliyorum ve orada da ayn? ?ekilde çal???yor. O nedenle önceki mesaj?mda BCL'e de referans verdim. .NET'teki System::Threading::Thread, CLR içerisinde bir C++ "ThreadNative" s?n?f?na ba?lan?yor.

Alıntı
Bu konuda bir bilgim yok, fakat Cocoa kullanicilari icin boyle bir gecis zaten otomatik olmali.
Sorun, Framework ba??ms?z. PPC için yaz?lm??, exception durumlar?n? sadece yakalamak de?il, mesela, debug etmek isteyen herkes için geçerli. Benim s?k?nt?m; mesela bir exception durumunda PPC'deki register de?erlerinden hangisi frame, hangisi exception adresi, hangisi exception kodu gibi ?eylerdi. Bunlar? Intel mimarisine aktarmam gerekliydi. Benzer baz? dü?ük seviye Unix fonksiyonlar? da, Darwin'in babas? FreeBSD'dekiyle ayn? çal??m?yor. ??in kötüsü, dökümantasyon yok.

Velhas?l, ben California'da birilerinin benim neyi nas?l yap?p nas?l yapamayaca??ma karar vermesinden rahats?zl?k duyuyorum. Buna, Ocak ay?nda ya?ad???m?z NVIDIA 8800 GT güncellemesi de dahil. NVIDIA, PC'ler için 9 serisi kartlar? eskitti, biz hala 8800'e ç?kamad?k.
Kayıtlı
Mac Pro 2 x 2.6GHz Quad-Xeon + 7 GiB RAM + ATI Radeon HD5770 + 2.6TB HDD + 10.7 ENU/NO

HAI
CAN HAS STDIO?
KTHXBYE[/url]

Portakal

    • http://portakal.net
  • İleti: 15
Ynt: Mac'te programc?l?k
Cevap #21 - 14 Mart 2008, 13:05

Acikcasi bir programcinin, "kustum ben, ogrenmicem iste yeni seyleri" demesi, o programcinin, program yazma isteginin kalmadigini gosteriyor bana. Bilgi cagindayiz, hergun, her an yeni seyler cikiyor. Tabii ki takip etmek ve yeniliklere ayak uydurmak zorundayiz, ki hayatta kalabilelim (hayatta kalabilmekten kastim, rekabetci olmak, tercih edilebilir olmak).

Arkadaslar, bu arada, Bilkom'la, Mac uzerinde yazilim gelistirmeyle alakali bir toplantim olacak. Artik, Mac'lerin sadece grafik islerinde kullanilmadigin i kanitlamak gerek. Bununla ilgili de neler yapilabilir bir konusacagiz.

Ilgilenen lutfen benimle irtibata gecsin. Iletmemi, sormami istedikleriniz varsa bana e-mail/pm atabilirsiniz.

Ozkan,
Kayıtlı

?smail Pazarba??

  • İleti: 967
Ynt: Mac'te programc?l?k
Cevap #22 - 15 Mart 2008, 18:24

Ben cevab?ma soruyla ba?layay?m.

A?a??daki dillerden hangileri birbirlerine daha yak?n/akraba duruyor?

(C++, Java, C# ve Objective C'de s?n?f tan?mlamas?. Objective C bilmedi?im için örneklerini Internet'ten ald?m. Kodun derleyebilip derleyememesi yada diller aras? iyi-kötü kar??la?t?rmas?na de?il, sadece sintaks olarak birbirlerine yak?nl?klar?na bak?yorum. Object'in, baz? dillerde tan?ml? bir s?n?f oldu?unu ?imdilik unutal?m, de?ilmi? gibi dü?ünelim. Ayr?ca Objective C'yi di?erleriyle kar??la?t?rmak ta yanl??, çünkü ayn? ligte de?iller. Mesele gramer farklar?n? görmek oldu?u için, böyle konulara temas etmiyorum.)

C++
Kod: [Seç]
class Stack : public Object
{
      StackLink* top;
      unsigned int cur_size;
public:
      void free();
      void push(int);
      int pop();
      unsigned int size();
};

Java
Kod: [Seç]
public class Stack extends Object
{
    private unsigned int cur_size;
    private StackLink top;
    public void push(int i) {}
    public int pop() {}
    public unsigned int size() {}
}

C#
Kod: [Seç]
public class Stack : Object
{
   private unsigned int cur_size;
   private StackLink top;
   public void push(int i) {}
   public int pop() {}
   public unsigned int size() {}
}

Objective C
Kod: [Seç]
@interface Stack : Object
{
  StackLink *top;
  unsigned int size;
}

- free;
- push: (int) anInt;
- (int) pop;
- (unsigned int) size;

@end


(C++, Java, C# ve Objective C'de, s?n?f içerisindeki bir fonksiyon/metod ça??rma - member function call.)


C++
Kod: [Seç]
void foo::bar()
{
   baz();
}

Java
Kod: [Seç]
void bar()
{
   baz();
}

C#
Kod: [Seç]
void bar()
{
   baz();
}

Objective C
Kod: [Seç]
@implementation foo
- (void)bar
{
  [baz]
}
@end

?lk örnekte, Objective C d???ndaki C++, Java ve C# birbirlerine daha çok benziyorlar.

?kinci örnekte de yine Objective C d???ndakiler birbirlerine az çok benziyorlar.

Her?eyden önce, Objective C, yeni bir programlama dili de?il. 1980'lerin ba??nda ç?km??. Apple da bunu Next'ten alm??. Ama Wikipedia'da bahsedildi?i gibi, Apple ve GNU Step d???nda kullan?m? yok (dilin tarihini kulaktan dolma, sa?da solda gördüklerimden biliyorum. Bilenler, yanl???m? düzeltirse sevinirim).

Yeni ç?kan her dili ö?renmeyi de ayr?ca yanl?? buluyorum. Fikir sahibi olacak kadar baz? ?eyleri bilmek yeterlidir. Farkl? dilleri az da olsa görmek, programc?n?n ufkunu açar, farkl? dü?ünmeye sevkeder (Haskell, Simula, LISP, vs.). Tabi bu e?er üniversite günlerinde, yani daha erkenden, yap?l?rsa, daha anlaml? olur, bence. Ama her?eyi ö?renmeye kalk?nca, ö?renmeye kalkt???m?z konularda tercih edilebilir olamay?z. Dilin inceliklerini bilmek için gerçekten kullanmak gerekir. Hergün farkl? dil kullanan birisi her dilin inceliklerini, ayn? çizgideki dillerin inceliklerini bilen kadar iyi bilebilir mi? Yukar?da verdi?im örneklerde görüldü?ü gibi, Objective C sintaks? di?erlerine hiç benzemiyor. Java bilen birisi, büyük ihtimalle rahatl?kla C# ö?renebilir. Biraz daha u?ra?arak C++ ta ö?renebilir. Ayn? ?ekilde, C++ bilen birisi Java ve C# rahatl?kla ö?renebilir. ?? ilanlar?na dikkat ederseniz, yaz?l?mc? pozisyonu ba?vurular?nda C++ yada Java mutlaka aran?r.

Ben ekme?imi C++'tan kazan?yorum. Dolay?s?yla bu dille ayn? çizgideki yeniliklerle ilgileniyorum (buna dünyan?n çe?itli yerlerindeki seminerler de, ç?kan kitaplar ve C++/CLI da dahil). Çünkü konu d???na ç?karsam, zaman israf etmi? olurum. O zaman? pekala konumla ilgili yeniliklere harcayabilirim. Mesela Java 1.5 ö?renece?ime, C++/CLI'a vakit ay?rmam daha do?ru oldu. Her çiçe?i koklayan programc?, bal yapamaz; dilin inceliklerini hergün kullanan, standard kitab?na sahip, C++ kodunu birden fazla platformda çal??t?rmak zorunda olan birisi kadar iyi bilemez. Hergün kullananlardan dahi detaylar? bilen olmayabilir. Bunlar? ukalal?k yada bir eksikli?i göstermek için söylemiyorum, örnek olmas? için veriyorum. Ben kendimin bu dünyada ufac?k oldu?umun fark?nday?m. Kendimden örnek verecek olursam, ben kim sorarsa Java da biliyorum. Ama inceliklerini bilmiyorum, sürekli bir?eyleri Google'dan yada kitaplardan ara?t?rmam gerekir. Bana bir Java projesi verilse, ben bilen birine göre 3-4 kat daha yava? ilerleme kaydederim hatta belki bir yerden sonra ilerleyemem. Bahsetti?imiz konu, "dil" ö?renmek, "kütüphane" ö?renmek de?il. Sintaks? apayr? ve s?n?rl? kullan?m alan? bulunan bir dili ö?renmek için vakit ay?rmak, sizin bahsetti?iniz "yeniliklere ayak uydurmay?" engelliyor. Her alanda, her platformda, her dilde yenilikler oluyor, kaç?n? takip ediyoruz? Beni ilgilendiren, kendi alanlar?mdaki yenilikler anlaml?d?r ve ben belirli alanlarda iyi ve farkl? olmak istiyorum.

C++'ta
Kod: [Seç]
class foo { ... };
foo bar();
...
foo f = bar(); // #1
#1'da operator= mi yoksa copy constructor m? ça??r?l?r, bilmeyen çok. Overload resolution s?ras? nas?l i?ler, template m?, c-v qualified fonksiyonlar m? yoksa global fonksiyonlar m? önceliklidir, bilmeyen çok. Template partial specialization nedir, hangi durumlarda "partial" olmaz, bilmeyen çok. Argument dependent lookup nedir, bilmeyen çok. Daha say?s?z örnek var. Gerçek hayatta kullan?l?yor mu bunlar? Hem de nas?l. Tercih edilebilir olman?n yolu, bir konu belirleyip o yolda ilerlemektir, bana göre. Türkiye'de durum böyle olmayabilir. Java bilen/kullanan geli?tirici, bir sonraki projede VisualBasic kodu yazmak zorunda kalabilir, yada JavaScript yazmas? istenebilir. Hatta ayn? hafta içerisinde 3 dil aras?nda gidip gelebilir. Ben 2005 y?l?nda XSLT ö?rendim, ?imdi unutmu? durumday?m, çünkü onu sürekli kullanan bir i? yapm?yorum. Yola Pascal ile ba?lam??t?m. Onu da Delphi'yi de neredeyse tamamen unuttum, zaten sadece hobi olarak kulland???m için pek detay?na da inemedim. Pascal ve Delpi'ye harcad???m vakti verimli bulurken, XSLT için harcad???m vakiti tamamen israf olarak görüyorum.

Benim Microsoft (Redmond, WA), Opera ve Oracle gibi ?irketlerle i? tecrübem var. Bu adamlar i?e al?rken, birkaç s?nav yap?yorlar. Opera, 3 s?nav yapt?. Birisi online, birisi telefonda, di?eri de Oslo ofisinde. IQ sorusu da soruyorlar, extreme programming örne?i de sordular. Microsoft, telefonda birçok tasar?m ve C++ üzerine test (software testing) sorusu sordu, terminoloji sorular? sordu, IQ sorusu sordu, 3 ayr? MSFT mühendisiyle de ka??t-kalemle s?nav yapt? (verilen big-Oh kriterine göre kod yaz?p ka??t üzerinde debug etmenizi istiyor, kodun testi dahil 10dk süre var), sonra yöneticiler sorular sordular. Böyle ?irketler, her çiçekten bal toplayan programc? aram?yorlar ve hepsi C++ istiyor (ba?vurulan pozisyona ba?l?, ama Windows Shell, .NET BCL, Office vs. gibi konulardan bahsediyorum).

Ayr?ca belirli bir zaman sonra, tecrübe ve akademik geçmi? izin verdi?inde programc? art?k, isim vermeyeyim, Oracle'da ba? mimar olarak görev yapan hocam?n dedi?i gibi "büyük konu?an" bir mimar olmak için kollar? s?var (Ben hocama soruyu yanl?? sordum. "siz burada kod yaz?yor musunuz" dedi?imde, "yok, ben mimar?m, kod yazm?yorum. mimarlar büyük konu?urlar" diye cevap verdi. Ben "bulundu?umuz binada yaz?l?m geli?tiriliyor mu" diye sormak istemi?tim, ama Türkçe'yi unutunca soru da yanl?? oldu). Dolay?s?yla bir süre sonra kod yazmay? b?rakmak ta do?ald?r, tabi bu durum herkes için geçerli olmayabilir.

Konuyu çok da??tmadan ben derdimi tekrar belirteyim. Benim derdim dil kar??la?t?rmas?, o güçlü bu zay?f kavgas?, yada bir kütüphaneyle ilgili sorun de?il. Benim derdim, API'?n C'den eri?ilebilir olmas? ve aksinin zorlanmamas?. Apple'?n Cocoa Framework içerisinde yapabildiklerin in ayn?s? ben fazladan kod yazarak ta olsa C'de yapabilmeliyim. Çünkü C, kabul edelim yada etmeyelim "evrensel" bir dil. Eskiden ObjC ve C++ aras?ndaki köprü de C imi?. Apple'?n bu imkan? sa?lay?p sa?lamad???n? bilmiyorum, zaten bunu ö?renmeye çal???yorum. Sa?lam?yorsa, Apple yanl?? yap?yor diye dü?ünüyorum. Çünkü insanlardan vakitlerini harcay?p mainstream dillerden tamamen farkl?, okullarda belki birkaç ders saati d???nda ö?retilmeyen, s?n?rl? kullan?m alan? olan bir dil ö?renmelerini istemeyi yanl?? buluyorum.
Kayıtlı
Mac Pro 2 x 2.6GHz Quad-Xeon + 7 GiB RAM + ATI Radeon HD5770 + 2.6TB HDD + 10.7 ENU/NO

HAI
CAN HAS STDIO?
KTHXBYE[/url]

atari

    • Soka?a Ç?k!
  • İleti: 262
Ynt: Mac'te programc?l?k
Cevap #23 - 01 Eylül 2008, 20:14

ben istiyorum hemde çok isityorum cahilin cahiliyim bu konuda ama çok istekliyim. Bence de bilet arkada?lar s?f?rdan tepeye forumda makalelerle payla??rlarsa zaten ö?renenlerde yeni ö?renenlere anlatacaklard?r buna inan?yorum
Kayıtlı
MacBook 4,1 - 2.4 GHz Memory 4gb - Mac os X 10.5.4
Lacie 160gb External HDD
?phone 1.0
Imac 7,1 2.8 Ghz Memory 4 Gb

MeKA

  • ogren.tv
    • Interaktif E?itim Portal? [izle-ö?ren] - Ö?ren.tv
  • İleti: 15
Ynt: Mac'te programc?l?k
Cevap #24 - 02 Ekim 2008, 21:31

Bende .net de asp.net ile çal???yorum.Ama MacOS da bu pek rand?manl? olmuyormu?.Mac için uygun bir dili de ö?renmeye aç???m.Ben i?in web taraf?nda oldu?um için Mac yada Windows ta yazd???m uygulamalar çal???yor.Ama geli?time a?amas?nda Windows u kullanmak zorunday?m.
Kayıtlı
Yüksel Türk! Senin için yüksekli?in hududu yoktur. ??te parola budur!
Beni övme sözlerini b?rak?n?z! Gelecek için neler yapacaks?n?z onlar? söyleyiniz!

barsahin

  • İleti: 2.998
Ynt: Mac'te programc?l?k
Cevap #25 - 04 Ekim 2008, 12:57

Bende .net de asp.net ile çal???yorum.Ama MacOS da bu pek rand?manl? olmuyormu?.Mac için uygun bir dili de ö?renmeye aç???m.Ben i?in web taraf?nda oldu?um için Mac yada Windows ta yazd???m uygulamalar çal???yor.Ama geli?time a?amas?nda Windows u kullanmak zorunday?m.

Mac'te IIS olmad??? için "rand?man" kelimesini kullanmaya bile gerek yok. Apache server'lar üzerinden gerekli modifikasyon yap?ld?ktan sonra kullan?ld??? söylense de bunu öneren bir ki?iye bile rastlamad?m.

Ama söz konusu intel i?lemcili bir mac olduktan sonra boot camp veya sitede sürekli ad? geçen emulatör programlar?ndan biri yard?m?yla windows kurulup gerekli ASP çal??malar? yap?labilir.
« Son Düzenleme: 04 Ekim 2008, 12:59 Gönderen: Bar?? ?ahin »
Kayıtlı
i? = MBP mid 2014
ev = MBP Pro mid 2009, mac mini mid 2011

?smail Pazarba??

  • İleti: 967
Ynt: Mac'te programc?l?k
Cevap #26 - 09 Ekim 2008, 15:59

Kodu bir defa yazmak, yaz?l?mda en önemli hususlardan birisi. ?sim vermeyeyim, Türkiye'de bir ?irket, ald??? projelerin her birisi için ayr? "login" uygulamalar? geli?tiriyordu. Hiç bir yönetici yada mühendis, kalk?p ta geni?letilebilir bir komponent yap?p her yerde de?i?tire de?i?tire kullanal?m demedi. Ortada kararl? k?vama gelmi? bir bile?enin olmamas?, tekerle?in her defas?ndan yeniden icat edilmesi iki aç?dan vakit kayb?:
1. Yeniden bir login mekanizmas? yap?lacak
2. Bu yeni yap?lan login mekanizmas?nda bug olacak ve bunlar için ayr?ca emek sarfedilecek.

Bunlar?n önüne geçmek için, ?irketlerin "repository" kurmalar? ve bu kütüphanelerin herkesin eri?ebilece?i bir yerlerde listesinin olmas?, yeni bile?enlerin ve bug fix'lerin anons edilmesi gerekli. Yaz?l?mda, vakit hakikatten nakittir. Genellikle sat??ç?lar ürünleri, "normal" geli?tirilme sürelerinden daha k?sa sürede bitecekmi? gibi satarlar.

??inizin hedefi herzaman Windows ise, ASP.NET mant?kl? olabilir. Ama hedef arada Unix te oluyorsa, hem Windows hem Unix'te çal??an PHP kullanman?z ve iyi bir kaynak yönetimiyle, sürekli kullan?lan k?s?mlar? komponent haline getirip farkl? yerlere yerle?tirebilirsiniz.

1-2 y?l önce, ASP.NET'i Mono ile çal??t?r?yorlar diye duymu?tum. Ben hiç incelemedim. Performansta çok fark etmeyebilir.
Kayıtlı
Mac Pro 2 x 2.6GHz Quad-Xeon + 7 GiB RAM + ATI Radeon HD5770 + 2.6TB HDD + 10.7 ENU/NO

HAI
CAN HAS STDIO?
KTHXBYE[/url]

mactrcn

  • TARCIN
  • İleti: 528
Ynt: Mac'te programc?l?k
Cevap #27 - 09 Ekim 2008, 21:07

Bu arada Mono 2.0 cikmis. Daha stabil olmus diye yorumlar okudum. Tabii download kisminda hala MacOSX icin installer'in hazir olmadigi yaziyor. Ciksin, .NET'i ilk defa mac ortaminda deneyecegim bakalim...
Kayıtlı
MacBook Core2Duo 2.2 Ghz 4GB memory (White) - 10.5.5
iPhone 3G 3.1
Samsung 226BW widescreen
WD MyBook2 Home Edition 500 GB
Toshiba 2.5" 250 GB

?smail Pazarba??

  • İleti: 967
Ynt: Mac'te programc?l?k
Cevap #28 - 09 Ekim 2008, 21:35

Mono 2.0, sak?n CLI 2.0 olmas?n? ?ncelemedim ama tahminim bu yönde. Yani bug fix içeren yeni sürümden daha ziyade, CLI 2.0 deste?i getiren (generics, vs.) bir sürüm olabilir.

Ben Microsoft'un SSCLI 2.0'iMac'e çok say?da kay?pla Intel Mac'e port ettim. ASP.NET deste?i zaten yoktu, ama temel hizmetler dahi aksak çal???yor (mesela exception'lar).

Bu arada, SilverLight, hesapta, .NET üzerine de?il mi? Safari için SilverLight plugin mevcut, herhalde bir ?ekilde CLI byte code çal??t?r?yorlar. Eskisi (Rotor/SSCLI 1.1) çal???yordu zaten, 2.0'da sadece Windows deste?i verdiler. Ama SSCLI, dedi?im gibi, bir nevi "preview", o nedenle ASP.NET ve Windows Forms gibi kütüphaneler yok, ama CLI'?n nas?l çal??t???n? görmek için mükemmel bir örnek.
Kayıtlı
Mac Pro 2 x 2.6GHz Quad-Xeon + 7 GiB RAM + ATI Radeon HD5770 + 2.6TB HDD + 10.7 ENU/NO

HAI
CAN HAS STDIO?
KTHXBYE[/url]

mactrcn

  • TARCIN
  • İleti: 528
Ynt: Mac'te programc?l?k
Cevap #29 - 09 Ekim 2008, 23:48

Ne diyeyim abi, sen daha iyi bilirsin :)
Senden ogrenecek cok seyimiz var. Zaten ben daha Pyhton ve PHP ogrenmeye calisiyorum. .NET'de XP ortaminda kalsin. VMWare sagolsun...
Kayıtlı
MacBook Core2Duo 2.2 Ghz 4GB memory (White) - 10.5.5
iPhone 3G 3.1
Samsung 226BW widescreen
WD MyBook2 Home Edition 500 GB
Toshiba 2.5" 250 GB
 

+ Hızlı Yanıt

Hızlı yanıt'ı kullanarak çabukça ileti gönderebilir, iletilerinizde gülümseme ve bbc kullanabilirsiniz.
Kullanıcı Adı: E-Posta:

Yenilogo Logo ve Kurumsal Kimlik Hizmetleri