Java Ölüyor Mu?
Java Bir Yere Gitmiyor
Java, ortaya çıkışından 22 sene sonra bile halen geliştiricilerinin sevgilisi olmaya devam ediyor. Java, “ Java ölüyor” söylentilerini defalarca yaşamış fakat sonunda her zaman ayakta kalmıştır. Java 9’un Eylül ayında dağıtıma başlaması ile daha fazla Java göreceğimizi söyleyebiliriz.
JNBrigde CTO’su Dr. Wayne Citrin’e kulak verelim.
“Java uzun süredir burada, ve bu sürede kod yazma, bakım ve hata ayıklama için üstün araçlar geliştirilmiştir. Örneğin, çeşitli geliştirme ortamları ( Eclipse veya NetBeans) Java yazmayı kolay hale getirmektedirler. Bunlar aynı zamanda Java tabanlı diğer programlama dillerini yazmaya da elverişlidirler.
Buna rağmen halen neden Java’nın öleceğine dair makaleler görüyoruz? Mark Twain’in söylediği gibi, Java’nın ölüm haberleri büyük abartı ürünleridir.”
Java ve Yazılım dünyasında etkili isimlerle yapılan röportajlarda, Java’nın ölümüne dair yorumları istendiğinde…
Bazı insanlar Node.js’in Java’yı yakın gelecekte “sollama” şansı olduğunu düşünüyor. Java gerçekten tahtından indirilebilir mi?
Markus Eisele, Lightbend’de Geliştirici Destekleme Başkanı ve Java Şampiyonu, bu konu hakkında aşağıdaki gibi cevap veriyor.
JavaScript devrimi bize açıkca gösteriyor ki Dünya’mız çok dilli ve çeşitlilik sahibi olmaya devam edecek. Tek bir dil öğrenme, bir platforma güvenme ve bir takım endüstri standartlarını uygulama geliştirirken varsayılan olarak kabul etme lüksüne sahip olmayacağız.
Java bir dil olarak geniş kitlelerin bilmesi ve geniş kitlelere öğretilmesi açısından halen büyük avantaja sahiptir. Bunların yanında merkezi alt yapılar ölürken full-stack Java uygulamaları ilerlemeye, geliştirilmeye devam ediyor. Bugünlerde front-end için bir numaralı dil JavaScriptir. Bulut ortamlar ve “container-land” için Go dili de bulunmaktadır. Java etkinliğini sürdürdüğü sürece bu liste genişlemeye devam edecek.
Mario Fusco’un, Drools üzerine Red Hat’te uzman yazılım mühendisi ve Java Şampiyonu
Node.js’in neden çok fazla insanı çektiğini anlayamıyorum. Çoklu çekirdek çağındayız, akıllı telefonum bile sekiz çekirdeğe sahip, ve biz sunucularımızda “single threaded framework” ile mi çalışmak istiyoruz? Sekiz çekirdekli bir makinede çalışan tipik bir Node.js uygulamasında, bir çekirdek kendi %100’ünü verirken kalan yedi çekirdek boş kalır.
Eğer geliştiriciler Node.js tarafından uygulanan “event-loop pattern’ini beğeniyorlarsa bu işi yapan daha sağlam ve aklı başında bir çok Java framework’ü bulabilirler. Bazı firmaların neden Node.js üzerine odaklandığını anlayabileceğim tek sebep, çevrede bir çok JavaScript geliştirici olması ve genellikle ucuza iş yapmalarıdır.
10 yıl önce bunun tersini görmüştüm. Web tarafında yazılım geliştirmesi gereken Java geliştiricileri, JavaScript öğrenmek istememişlerdi. Bu nedenle, Java’da web geliştiriciliği için bir kaç frameworke sahip olduk, örneğin GWT. GWT kötü değildi fakat iyi ölçeklenebilir de değildi, aynı zamanda eşzamanlı milyonlarca kullanıcı tarafından kullanabilecek web sitesi yaratmaya da izin vermiyordu. Node.js, GWT’in sunucu tarafındaki muadilir denilebilir ve benzer sorunlara sahiptir..
Bana göre ihtiyaçlarımız için doğru aracı kullanmalıyız. JavaScript web geliştiriciliği için iyi olsa da, back-end için daha iyi birçok alternatif bulunabilir.
Marcus Biel’e, Yazılım Ustası, JCP üyesi ve CleanCode Evangelist
Bana göre, bu karşılaştırma önemsiz, bu elma ile armudu kıyaslar gibi. Java karmaşık (multithreaded) iş sistemleri için en uygunu, Node.js ise gerçek zamanlı web uygulamaları için mükemmel.
Bir Java geliştiricisine sorarsanız Java’yı tercih eder, bir Node.js geliştiricisi de Node.js’i.”
Lukas Eder, Data Geekery GmbH kurucusu, R&D başkanı ve Java Şampiyonu
Bunu savunanlar yalnızca Node.js’in arkasındaki satıcılardır. Java’nın uzun süreli geleceğine (20 yıl gibi) bir şey diyemeyiz fakat yakın gelecekte Java tahtından indirilemez.
Java hala çok popüler ve Valhalla, Grall, Truffle gibi güncelleme projeleri altında kendini geliştirmeye devam edecektir.
Trisha Gee, JetBrains’te Yazılımcı Destekçisi ve Java Şampiyonu
Bence burada elmalar ile portakalları kıyaslıyoruz. Java sunucu tarafıda inanılmaz bir dil, kurumlar tarafından bir çok sebeple yoğun şekilde kullanılır. Bunlardan bazıları “rock-solid backwards compatibility”, çoklu ortam desteği, ve geniş bir Java geliştirici kitlesi olmasıdır.
Node.js kurumsal çevrelerce farklı tip uygulamalar için kullanılır. Daha çok startup’larda, hızlı prototipleme ve atik uygulama geliştirme amacıyla kullanıldığı görülmektedir. Kişisel inancıma göre bu iki dilin hatta bir çok başka dilleri kullanıp çözmemiz gereken sonsuz problemimiz var.
Vlad Mihalcea Hypersistence CEO
Ben öyle düşünmüyorum. Node.js, hızlı prototipleme için çok iyi fakat Java’da sahip olunan bir çok test alt yapısı olgunluğundan yoksundur.
Jake Wharton, Square Inc. Android Mühendisi
JavaScript topluluğu Java’yı söz sahibi yapan bir çok özelliğini desteklemeye başladı. Bunlara örnek olarak, statik tipleme, güçlü araçlar, geniş ve derin kütüphane ekosistemi verilebilir. Bana göre bunlar önemli ve doğru yolda ilerleyen adımlar olsa da Java’nın ayağını kaydırmak için halen yapmaları gereken çok fazla iş var.
Thorsten Heller
Hem evet hem hayır. Java’nın yakın gelecekte tahttan indirilebileceğine ya da en azından büyük yarış içine girebileceğine ikna olmuş durumdayım fakat bunu Node.js ile yapacağı konusunda iddiaya girmem. Eğer girecek olsam, paramın bir kısmını Kotlin’e yatırırdım. Basitliği, zayıf söz dizimi, ve fonksiyonel yaklaşımı gibi bazı özellikleri onun popülaritesini artıracaktır. Ve belki temiz kod yazımını da? Genel olarak, eminim ki yakın gelecek daha heterojen olacaktır: belirli görev için kullanılabilecek en iyi programlama dili kullanılacaktır.
Bana göre, Java dilden daha çok bir platformdur.
Baruch Sadogursky, JFrog Geliştirici Destekçisi
Java ve JavaScript arasındaki ilişki ham ve hamster arasındaki ilişki gibidir. Bir çok programlama dili var ve birbirleriyle yarışmak zorunda değillerdir. JavaScript mükemmel bir ön-yüz programlama dilidir ve tarayıcının gerçek kralıdır, fakat sunucu tarafında genelde Java gibi sunucu tarafa eğilimli dillerin yerini almayacaktır.
Quentin Adam, Clever Cloud CEO
Bunun olması için herhangi bir şans görmüyorum. Node ve Java farklı kullanımlara yönelik farklı araçlardır. Node.js şuanda web’de büyük yapı araçları ve küçük sunucu parçaları ile gerçek bir ekosistem yapmak için önemli rol üstleniyor.
Ancak Java çok güçlü bir ekosisteme ve büyük kod tabanlarına sahiptir, bunların Node ile değiştirilme ihtimali çok düşük. Büyük veri gibi bazı alanlarda JVM platform kalitesi dolayısıyla birinci tercih olmaktadır, gelecekte Node bu alanda güçlenebilir. Java ve Node’un beraber kullandıldığı çok fazla proje göreceğiz. Node genellikle ön yüz kullanıcıları karşılayacak fakat hiçbir zaman Java’nın yerini alamayacaktır.
Stanford Üniversitesi’nin meşhur programlama giriş dersinde artık Java yerine JavaScript tercih edilecek. Bu durum bize Java’ya duyulan ilgi ve Java’nın popülerliği hakkında ne söylemektedir?
Markus Eisele
Java kurumsal alanda bir numara programlama dili olmasıyla birlikte, araçların (tool), standartların ve metodolojilerin ekosistemine liderlik etmektedir. En öz ve en güzel dil değildir. Ancak büyük ekiplerce ölçeklendirilebilir ve üst seviye kalite yakalamaya elverişlidir. Ön yüzde web geliştiriciliği JavaScript’e kaymış durumdadır ve bence uygulamaların görsel parçaları her zaman programlamanın giriş noktası olmuştur.
Bana göre, bu doğal bir süreçtir ve Java’nın popülerliği ve ilgi alanları hakkında bir yorum çıkarmak gerekmiyor. Bu daha çok kullanım ve öğrenme kolaylığı ile alakalı olabilir.
Mario Fusco
Bu seçime şaşırdım. Java’yı bıraktıkları için değil de JavaScripti seçtikleri için şaşkınlığım. Java muhtemelen eğitim açısından iyi bir dil değil ama eminim ki JavaScript bu açıdan çok daha kötü durumda. Çünkü geliştiriciyi net düşünmeye itmek yerine kaçış yolları aramaya sevkeden bir dil.
Üniversitelerin bir programlama dilini endüstride trend olması ve yaygınlığına göre seçmesine değil, bir şeyler öğretmesi ve nedensellik yeteneğini geliştirmesine göre seçmesine gerektiğine inanıyorum. Alan Perils bir keresinde “ Programlama düşüncenizi etkilemeyen – geliştirmeyen bir dili öğrenmenin bir değeri yoktur.” demiştir. Ne yazık ki, Java ve JavaScript bu kategoridedirler. Onları kullanmaktan zevk aldığımız için değil iş için kullanmak üzere öğreniriz. Benim açımdan, nesne yönelimli alanda Smalltalk, fonsiyonel programlamada Haskell ve modern bir Lisp-Esque dili Clojure daha güzel tercinler olabilir.
Marcus Biel
Bana göre, ilk soru, Bu olay Standford hakkında ne söylüyor? olmalı. Stanford Java’yı, programlamaya başlayan birinin ilk dil olarak öğrenmesinin kötü olacağına inanıyor. Bu sadece bunu söyler, ve eğer böyle düşünüyorlarsa sorun yoktur.
Lukas Eder
Kesinlikle hayır. EPFL’de ( Scala dilinin yaratıldığı yer) bilgisayar bilimleri okurken, Ada, PL/SQL, SQL, Java, XSLT, Scala, Prolog, C++ gibi kolay tanınan ( meşhur ) diller kullandık. Eğer şuan okuyor olsaydım eminim ki JavaScript müfredatın parçası olurdu.
Umuyorum ki, eğitim kurumları dahil olarak tüm yazılım endüstirisi olarak tek bir dilin büyük resim için çok önemli olmadığını keşfedeceğiz. Her dil kendine has var olma nedenlerine sahiptir ve Java bir çok farklı sebepten meşhur olmuştur. Üniversiteler bu politikalarını değiştirmezler, neden değiştirsinler?
Trisha Gee
Yine, ihtiyaçlar için doğru aracı kullanma durumudur. JavaScript tartışmasız olarak yeni başlayanlara çok kolay öğretilir, az uğraş, az yazı ihtiyacı ve REPL aracı sayesinde hızlı geri besleme alma bunu etkiler. Java 9 REPL’e sahip olacak olmasına rağmen, halen daha fazla uğraş ( çevreleri düzenleme, classpaths, bir IDE veya editor) , daha fazla yazma ihtiyacı gerektirir. Bu sebeplerden daha hafif ve başlangıç olarak kolay bir dil seçilmesi anlaşılabilir bir durumdur.
Java Stanford’da halen daha ileri kurslarda öğretilir, bu da onun eğitimde hala önemli olduğunu göstermektedir. Özellikle yeni başlayanlar için statik tipleme, sınıf gibi kurallı yapıların öğrenimi kodlamanın nasıl işlediğine vakıf olduktan daha kolay anlaşılacağı düşünülebilir.
Vlad Mihalcea
Kodu derlemek zorunda olmadığından ve tüm örnekleri tarayıcıda çalıştırabiliyor olmaktan dolayı öğretme açısından faydalar getirmesine rağmen, Java’nın popülerliğini etkileyebileceğini düşünmüyorum.
Jake Wharton
Bunun Java’yı kötü etkileyeceğini düşünmüyorum fakat JavaScript’i olumlu etkileyecektir. Dinamiklik ve temel veri tipleri açısından Java’ya göre daha toleranslıdır ve çalışmak için derleme ihtiyacı yoktur. Programlamaya giriş; kritik düşünme, problem çözme gibi temellere odaklanmalıdır ve bunlar için de Java’nın tanınırlığına ihtiyacınız yoktur.
Thorsten Heller
İlk adımlar JavaScript ile daha kolay olabilir, bu yüzden Java’nın yerini almasını kabul edebilirim. İnsanlar daha hızlı kod geliştirerek daha kısa sürede başarılı anlar yaşatabilir. Yine de Java platform olarak Kotlin, Scala gibi bir çok farklı dille beraber gelir. Böyle olması onun popülerliğini koruyacaktır. Java şuan ve gelecekte kurumsal platform olacaktır.
Baruch Sadogursky
Üniversiteler genelde endüstrinin arkasındaki popüler programlama dillerine odaklanırlar. Standford’da, Java’ya 2002’de benimsendi. 5 yıl sonra tanıtıldı ve 2-3 sene sonra aşırı popüler hale geldi. Yani, Stanford genç geliştiriciler arasındaki JavaScript popülerliğini yakalıyor.
Quentin Adam
Bu JavaScript’in popülerliğinden daha fazlasıdır. Yeni başlayan için iyi bir UI’yı elde etmenin en hızlı ve basit yolu JavaScripttir. Java sonrasında gerekli olduğunda insanlar tarafından öğrenilebilir.
Kaynak: https://jaxenter.com/java-influencers-interview-1-135570.html
Genel olarak bende Java’nın uzun süre tahtından indirilemeyeceğini düşünenlerdeyim. Tabiki tahtından indirmek isteyen olacaktır. Javanın güçlü bir dil olmasının başlıca nedenlerini arasında programcıların gözünde popüler olması (Popüler diller sıralaması için : https://www.tiobe.com/tiobe-index/) , zamanında çağ açıcı (nesneye yönelik programlama) bir program olarak görülmesi ve tüm teknolojilerin bu yöne kaydırılması , ve değiştirilmesinin zor olması. Bundan şikayet etmiyorum Java developerların Javayı geliştirmeye yönelik çalışmalarını taktirle takip ediyorum. Gelişen teknoloji ile yeni diller üretilse de Javaya karşı üstünlük sağlayamıyorlar. Belki bundan 60-70 yıl sonra Javayı tahtından sallayacak veya indirecek bir yeni dil üretilebilir.