13 Haziran 2018

Neden JavaScript?

2004 sonlarında blog yazmaya ilk başladığımda "Neden Java?" sorusuna güzel bir cevap yazdığımı sanıyordum. Neden şimdi JavaScript, ne değişti?

Java dilinin avantajları bugün de geçerli: Daha profesyonel ve disiplinli bir dil, programcıyı istenmeyen hatalara karşı daha iyi koruyor. Üstelik server tarafında en yaygın dil olduğunu düşünüyorum. Ama büyük bir sorun var: Öğrencilerimiz geliştirdikleri yazılıma mobil cihazlardan ulaşamıyorlar. Öğrettiğimiz Java'yı kullanmak için masa-üstü ya da diz-üstü cihazlar gerekiyor.

Geçen dönem verdiğim Automata dersinin dönem ödevinde sınıfı teşvik ettim: "Konuları Java ile anlattım ama isterseniz JS kullanın, faydasını görürsünüz" dedim. Sınıfın üçte biri bu tavsiyeme uydu ve çok güzel işler yaptılar:   maeyler.github.io/Automata-2018/

2002'den beri kullanıp öğrettiğim Java'yı bırakıyor ve JavaScript'e geçiyorum. Sebeplerini aşağıda üç başlık altında özetledim. Bu kararı vermemde etkili olan küçük çalışmaları da ayrıca GitHub'da yayınladım:   maeyler.github.io/JS/


1. JavaScript her platformda çalışıyor

1995'te Java ilk çıktığında bütün masa-üstü bilgisayarlarda (Windows, Linux, Mac) sorunsuz çalışıyordu. Geliştirdiğimiz yazılımı, hiç değiştirmeden her bilgisayarda kullanabiliyorduk. Mobil cihazlar çıkınca durum değişti. Platformların üçlü sınıflandırması artık Android, iOS, Desktop şeklinde yapılıyordu ve Java bu üçün ikisinde çalışmıyordu. Android uygulamalarının çoğu Java dilinde yazılıyor ama iki Java uyumlu değil! Uyumluluk konusunda 1995 öncesine döndük.

https://bgr.com/2016/11/02/internet-usage-desktop-vs-mobile/

Grafiğe göre bir buçuk sene önce, (bildiğimiz Java'nın çalışmadığı) mobil cihazların internet kullanımı, masa-üstü platformları geride bırakmış. Yani, öğrettiğimiz yöntemlerin müşteri bazı giderek küçülüyor.


2. JavaScript daha kolay ve daha eğlenceli

"Kullanımı kolay, kurulumu yok" cümlesi sanırım JavaScript için tam doğru. Web sayfalarına nereden bakıyorsanız JavaScript yazılımı orada çalışıyor. En ufak bir eklenti gerektirmiyor... JavaScript geliştirmek için gereken araçlar da yine aynı browser içinde bulunuyor.

Java öğretenler, aşılması gereken çok dik bir öğrenme eğrisi olduğunu iyi bilirler. Java'yı kurup çalıştırmak zor, hata mesajları ilk başlayanlar için hiç anlamlı değil, yazılım geliştirme aracı olan IDE'ler aşırı karmaşık... JavaScript için ise, öğrenme süreci çok daha kolay, kurulum ve IDE yok, browser içindeki geliştirme araçları daha basit ve kullanışlı.

Geriye bakınca, 2004'te yazdığım "GUI uygulamalarında Java çok yetenekli" cümlesi şimdi komik göründü! Doğru, çok yetenekli, ama o yeteneği kullanmak için ne kadar emek boşuna harcanıyor. JavaScript tarafında ise, GUI zaten web sayfasının bir parçası...


3. JavaScript web tasarımında vazgeçilmez

Java ilk başından beri, hem Server hem de Client tarafında çalışacak bir "web dili" olarak tasarlanmıştı. Lakin Client tarafının ana elemanı olan Applet, sektörün devleri tarafından güvenlik bahanesiyle dışlanınca web sayfalarında Java görünmez oldu. Bir zamanlar Java ders kitaplarında ilk konu olarak öğretilen Applet'ler artık çalışmıyor.

Applet'ten boşalan yeri bir süre Flash ve benzeri teknolojiler aldı. Ama sonra ne olduysa, hepsi gitti, bir tek JavaScript kaldı. 10-15 yıldır en başarılı web sayfaları, birbiriyle etkileşen üç farklı dil birlikte kullanarak geliştiriliyor:
  • HTML ile yapısı tasarlanır
  • CSS ile görünümü düzenlenir
  • JavaScript ile kodlanır

Kendi penceremden dillerin tarihçesi

Yazdığım ilk program (1971) Fortran'da basit bir fizik tablosunu hesaplıyordu -- üç günde çalıştırabilmiştim. Sonra derleyici yazmayı öğrenirken (1982) Pascal'a geçtim. En ilginç yazılım parçalarını, en uzun süre (20 yıl) kullandığım bu dilde yazdım. Ama bugün artık Pascal ile yazabileceğimi sanmıyorum.

Yarım asıra yaklaşan yazılım tecrübemde JS dördüncü dil oluyor:
1971 Fortran -- Boğaziçi Ü'de öğrenci
1982 Pascal -- Boğaziçi Ü'de öğretim üyesi
2002 Java -- Marmara Ü'de bölüm başkanı
2018 JavaScript -- FSMVÜ'de emekli hoca


Bu listeye bakınca, daha en başında Java yerine JavaScript'e geçebilirmişim gibi görünüyor. Bilgisayarımda 2002 Haziran tarihli, çoktan unutulmuş birkaç JS denemesi buldum. Demek ki o zaman denemiş ve beğenmemişim. JavaScript "tasarımı aceleye gelmiş" bir dil olduğu için, terazi o zamanlar Java'nın lehine idi. Zaman geçtikçe JS doğru yönde gelişti ve şu anda web sayfalarının hakim dili olarak "olmazsa olmaz" bir yeri var.

Ref: Bilgisayar cebimize nasıl sığdı