İlk programlama dili olarak Javanın tehlikesi

Web uygulamalarındaki popülerliği dolayısıyla ve yeni başlayanların kolayca grafiksel programlama yapmasına izin vemesinden dolayı Java, programlamaya giriş derslerinde en yaygın gösterilen bir dil haline geldi. Bunu programlamanın daha eğlenceli hale getirilmesinde yanlış bir çaba olarak görüyoruz. Belki de dot-com iflaslarına reaksiyon olarak CS kayıtları düştü. New York Üniversitesinde gözlemlediğimiz şey, Java programlama dersleri öğrencilerimizi ilk sistem dersine hazırlamıyor, en gelişmiş olanlarında bile. Öğrenciler grafik arayüzü olmayan ortamlarda program yazmakta zorlanıyorlar, kaynak kod ve program arasındaki ilişkiyi kuramıyorlar ve donanımın aslında ne yaptığını bilemiyorlar ayrıca (ve de en tehlikelisi) göstericilerin anlamını tam olarak bilmiyorlar. Bu da C ile sistem programlamayı tamamen imkansız hale getiriyor doğal olarak.

Şimdi şu öneriyi dikkate alalım: Programlamanın karşı konulmaz güzelliği, karmaşık formal işlemlerin çok küçük ilkel işlemlere dönüştürülmesinden gelir. Java bu güzelliği göstermek yerine programcıyı donanım satan bir firmadaki teknisyen gibi problem çözmeye yönlendirir: bir dolap yığını içinde aranmalar (Javadaki paketler) ve istediğimizi yapan bir donanım parçasının bulunmasıyla sonlanır (javadaki sınıflar gibi). Nasıl yaptığı ilgi alanımızda değildir! Bunun sonucu basit programları bir araya getirmesini bilen fakat bunun aslında nasıl çalıştığını bilmeyen öğrencidir. Javanın erken öğretilmesinin daha ileri bir tehlikesi ise öğrencinin yazdığı programın çalışma anı yükünü anlamasının imkansız olmasıdır. Çünkü herhangi bir metodun çalıştırıldığında neyi çağıracağını bilmek oldukça zordur. Bu problemin daha açık bir izahı için bkz[4].

Bu yaklaşıma tepkilerin de olduğunu görüyoruz. Örneğin Bjarne Stroustrup Texas A & M Üniversitesinden şöyle bildiriyor: Endüstri bu yaklaşımdan gittikçe artarak memnuniyetsizlik duyuyor.

Özellikle şuna dikkat çekiyor:

Endüstriden Javanın ilk programlama dili olarak kullanılması hakkında bir çok şikayetler alıyorum, özellikle AT&T, IBM, Intel, Bloomberg, NI, Microsoft, Lockheed-Martin şirketleri ve diğerleri[5].

Bu konudaki özel bir tartışmada şunları söylüyor:

Texas A&M öyle yaptı (Javayı başlangıç programlama dili). Sonra ben elektrik mühendisliğine C++ anlatmaya başladım ve bu öğrenciler CS öğrencilerine out-program'a başladığında onlar da C++'a döndüler. [5]

Kaç bölümün bu şekilde değişikliğe gittiğini görmek ilginç olurdu. AdaCore'da benzer sebeplerle bir çok üniversitenin başlangıç dili olarak Ada'yı kullandığının kesinlikle farkına vardık.