10 Ağustos 2011 safkan

Objective C: Back to the Future!

Apple patladı, patlattı, gidiyor.
iPod dedi, iPhone dedi, MacBook dedi, iPad dedi, dedi de dedi.
Kullanıcı deneyimi olarak dövebilen, yenebilen yok adamları. Yapıyor ve güzel yapıyor “adamlar”.
Öte yandan, son kullanıcı için sağladıkları konforu, maalesef programcı tayfasına sağlamıyorlar.
iPhone/iPad uygulaması yazmaya kalkanlar, ne dediğimi biliyorlar.
XCode, bu işin IDE’si. XCode 4 daha kabul edilebilir oldu ama, daha geçen sene XCode 3 vardı henüz. Onunla ilgili yorumum, “insan bunu insana yapmamalı” şeklindeydi.
iOS için seçtikleri programlama dili de bizi yirmi sene geri götürdü. Objective C! Kapağını açınca naftalin kokuyor. Objective C dediğin, preprocessor kullanarak C diline Smalltalk’dan feature taşımak için ITT’de icad edilmiş bir dil. Sene 1981. Apple’ın neden seçtiği belli, az RAM’li yerlerde overhead minimum olacak şekilde çalışıyor programlar. Fakat programcıya yazık değil mi ağalar?
Aynı durum ile karşı karşıya olan Google (tamam taraflıyım burada) Java seçerek daha doğru bir seçimde bulunudu. Dalvik JVM de pek ağır siklet değil, dünya da batmadı.
Objective C’de kıl olduğum durumlar:

Arkaik notasyon. Köşeli parantez ile metod çağırma, ya da mesaj gönderme.
İlk maddede de belli olan kavram kakafonisi. Class’a interface, interface’e protocol, protokole Mahmut dememiz gerekiyor.
Kategori diye bir şey var, adı ile kendisi alakasız.
Yeniden manuel memory management’a döndük. Birinci seviye memory leak yine mümkün. Yaşasın!
Ayrı header dosyası, ayrı kod dosyası yaz. Sene 1994 sanki.
Compiler ayrı, linker ayrı arıza çıkartsın. Yine sene 1994.

Tabi esas rezillik, mobil cihazların da kapasiteleri tavanı aştığı zaman olacak. Objective C’nin orijinal seçilme nedeni olan kısıtlı donanımda çalışma gereği ortadan kalkınca, tamamen sebepsiz yere 2011 yerine 1994′te kod yazıyor olacağız programcılar olarak.
Yahu şu Apple’ın bize ettiğini yedi düvel bir araya gelse edemez…
Ha bir de şu mesele var: “Alışınca güzel valla” diyenler falan var. Bu arkadaşlar, çatala karşı Çin çubuğunu, otomatik vitese karşı manuel vitesi savunanlarla aynı kamptan. Maksada göre değişir. Otantik deneyim istiyorsanız, Çin çubuğu kullanabilirsiniz. Ancak çatal daha iyi teknolojidir. Araba yarış cihazı ise, manuel vites sevebilirsiniz (hoş son gelişmelerden sonra bu da yalan oldu; F1 araçlarında tiptronik dedikleri otomatik vites var). Ama otomatik vites gereksiz arkaikliği kaldıran bir teknolojidir. Yani genel olarak, insanı eğitmek yerine makinayı eğitmek, düzeltmek doğru olan opsiyondur. Böylece dikkatinizi ve eforunuzu daha yüksek seviyeden işlere aktarabilirsiniz.
Üç gün compiler’ı mutlu etmek için uğraştım… Neyse ki eski C’cilerden kim kaldı diye sorulunca elini yükseğe kaldıran tayfadanım.
Şimdi kod yazmaya devam…

Source: safkan.org/blog/  

Yorum bırakın