Bu lafımız geliştiricilere.
Geçen günkü bir yazıma, ismini vermek istemeyen bir izleyici, biraz kaba yorumlar yazmış. “Java öldü” dememe alınmış. Aslında link verdiğim yazıdaki kanaate katıldığımı belirtmiştim.
Şimdi diyeceğim o ki… bir platformun ölmesi demek, o platformdaki vatandaşların işsiz kalması, endüstrinin çökmesi, tezgahın durması demek değil. Bunu duygusal geliştiriciler, fazlaca yanlış anlıyor.
Bir platformun ölmesi, aslında o platforma rağbetin azalması şeklinde yorumlanmalı. Söyleyenler de öyle söylüyor. Yoksa, hâşâ, “siz artık cenazesiniz, yaşayan ölüsünüz” diye lakırdılar serdetmiyor.
Sevgili Javacı kardeşim,
Sen değil miydin yıllar evvel, Java’nın her yerde çatır çatır çalıştığını gururla söyleyen. Doğruydu. Gömülü sistemlerden internet tarayıcılarına kadar her değişik aurada Java kendine yer buluyordu. O zaman cross-platform, en muteber kelimeydi.
Dedim ki ben işte, ne günlere geldik. Devir değişti.
Şimdi artık kimse, cross-platform derdinde değil. Dünyalılar öğrendi ki, her platformun kendi karakteristiği, kendi kalıpları ve kendi kuralları var. Windows’ta “tamam” tuşu sağdadır; Mac’te soldadır; misâl. Sen cross-platform derdinde ortak bir GUI yaparsan, bir tarafın geleneğini çizmiş olursun. O nedenle, cross-platform, istemci tarafta artık “bal dök yala” bir kavram olarak görülmekten çıkmıştır.
Martin Fowler üstad bile, bunları tekrar ediyor müridlerine. Bir kod yazayım ki tüm evrende çalışsın derdine düşmeyin diyor. Ne kadar farklı istemci varsa o kadar GUI yapın… masraftan kaçınmayın diyor.
Tam bu noktada, bu masrafı azaltmak için bazı yenilikler devreye giriyor. Ölü uykusundaki HTML, oluveriyor HTML 5. Javascript’in yetenekleri artıyor, framework’ler coşuyor derken, kimse sizin sanal makinenize, Java motorunuza hasret kalmıyor.
Her cihaz, yaklaşan bulutların altında, kendi grafik arayüz geleneğini oluşturmuş durumda. Bu arayüz geleneği, o cihaza özgü. Onun alamet-i fârikası. Tüm bunlardan dolayı, ben hepinize aynı arayüzü sunarım diyen birisi, ancak kâle alınmamakla ödüllendirilir.
Javacı kardeşim,
Çok sevdiğimiz Java da .NET Framework gibi sunucu taraflı bir güç olarak yoluna devam edecek. O tarafta ikisine de kimse ses etmeyecek. Cross-platform derdi de zaten olmayacak. Sunucu size ait olduğu ve platformu siz seçtiğiniz için platformlar arası kaygı taşımayacaksınız.
Ya front-end’ler… orada malesef, ikinize de yer yok.
Eğer uygulamanızın yüksek erişilebilirlikte olmasını istiyorsanız, HTML5+Javascript+CSS teknolojileriyle her internet tarayıcıda çalışabilen, nefaset abidesi bir web uygulaması düşüneceksiniz. Arkasında Ruby olsun, ASP.NET olsun ya da Servlet olsun. Çok sevdiğiniz Wicket da olabilir. Hiç farketmez. Dedim ya az önce. Sunucu tarafı, sizin çiftliğiniz. İstediğiniz binayı dikebilirsiniz. Ön tarafı HTML5 tuttuğunuz sürece, sorun yok.
Uygulamanız, donanımsal destek istiyorsa bu sefer platforma özgü kodlamaya geçeceksiniz. iPhone’lara ayrı, Android’lere ayrı, Windows 8’lere ayrı (Metro), Mac OS X’lere ayrı (Cocoa) ve de Linux’lara ayrı bir front-end yazacaksınız. Arka tarafta servislerin teknolojisi, yine size kalmış.
Lamı cimi yok. Sene 2011 ve doğru patika budur.
Örnek var mı?
Var: Dropbox ve Evernote. Bir inceleyin bu arkadaşları. Neden başarılı olduklarını düşünün. Java’yla mı sağlamışlar acaba bu kadar yayılmayı?
Ölenle ölmeden, her aracı doğru yere koymalıyız… ve yola devam etmeliyiz. Yol uzun, şartlar çetin.
İlkokul seviyesinde görüşler belirttiğimi iddia eden Java direnişçisine sevgilerimle.