15 puan yazan regentag 2024-11-06 | 62 yorum | WhatsApp'ta paylaş

“Programlama dillerinin iki türü vardır. İnsanların şikâyet ettiği diller ve kimsenin kullanmadığı diller.” — Bjarne Stroustrup.

“Java'yı eleştiren ve ondan şikâyet eden kişiler genelde daha genç oluyor ve JavaScript'e diğer her şeyden daha fazla maruz kalmış görünüyorlar. JS ile kıyaslandığında Java biraz ağır ve kısıtlayıcı gelebilir. Her yerde boilerplate vardır, derleyicinin sıkı biçimde uyguladığı bir tip sistemi vardır vb. Ama bana seçim hakkı verilse, JS yerine optimum olmayan bir Java kod tabanını seçerdim. Hiç tereddütsüz.”

Reklam

“Ancak onlarca ya da yüzlerce dosyaya dağılmış kodla ilgili gerçek deneyim kazandıktan sonra, Java'nın sözde 'kısıtlarının' aslında ayağına kurşun sıkmanı engelleyen koruyucu önlemler olduğunu fark etmeye başlarsın.”

“Java'yı keşfedip geri dönmek adeta bir aydınlanma gibiydi. Java'yı ve ekosistemini sevdiğimi fark ettim. Bu yüzden Java ekosisteminde en sevdiğim birkaç şeyi not etmeye karar verdim. Yani biri Java'yı kötülerse, neden haksız olduklarını anlatacak 25 neden burada.”

  1. Olgun ekosistem
  2. WRITE ONCE, RUN EVERYWHERE
  3. Geriye dönük uyumluluk (Backward compatibility)
  4. Güçlü tipli (Strongly Typed) dil
  5. Hızlı sürüm döngüsü, sürekli iyileştirme
  6. İyi IDE'ler
  7. GraalVM Native Image desteği
  8. Açık kaynak kütüphaneler ve framework'ler
  9. Çoklu iş parçacığı
  10. Olgun nesne yönelimliliği
  11. Bellek yönetimi ve çöp toplayıcı
  12. Gözlemlenebilirlik (Observability) ve izleme
  13. Fonksiyonel programlama desteği
  14. Zengin dokümantasyon
  15. Build araçları ve bağımlılık yönetimi
  16. Güçlü test yetenekleri
  17. Devasa topluluk
  18. Anotasyonlar
  19. Güvenlik özellikleri
  20. Zengin API seti
  21. Performans
  22. Yapılandırılmış eşzamanlılık
  23. Sanal iş parçacıkları
  24. switch ifadeleri için örüntü eşleme
  25. String template'leri

62 yorum

 
suckjava 2025-09-24

Java’nın avantajı diye yazılan her şey aslında Java dışındaki dillerin çok daha iyi olduğu yönler gibi görünüyor.

 
sungwoo 2024-11-14

Kimse Spring'den bahsetmiyor.
Java dilinin kendisine dair bir şikayetim yok,
ama Türkiye'deki gerçeklikte Spring öğrenmek zorunda olmak biraz bunaltıcı geldiği için bana cazip gelmedi.

 
regentag 2024-11-14

Java iyi ama Spring... berbat :(

 
nullvana 2024-11-08

25’inin de ayırt edici bir yanı yok. Saygı ayrı; ama bunlar legacy şenliğinin sırtlanları.

 
fau1ty 2024-11-07

2024'te de hâlâ popüler olduğuna dair tam 25 neden sıralanıyor,
ama açıkçası illa Java olmak zorunda değil; onun yerini alabilecek yeterince dil var gibi görünüyor...

 
lazyhack 2024-11-07

Aslında popüler olan JVM.

 
sunrabbit 2024-11-07

Çoğu gerekçe, diğer modern dillerin ekosistemleriyle karşılaştırıldığında
pek de güçlü bir yan sayılmaz; ayrıca yazarın Spring ile Java’yı ayırmadan yazmış gibi göründüğünü düşünüyorum.

 
progdesigner 2024-11-07

Java gibi bir dilin, geliştirme ekosistemi iyi oturduğu için tercih edilmesi gayet doğal.

Aynı şekilde, o ekosistemin içinde çalıştığında ancak performans gösterebildiğin için sadece o ortamda çalışmak istiyorsun; başka bir ortam talep edildiğinde de bir miktar ters tepki oluşuyor.

Ancak bundan sonra bu tür dillerde yapay zeka kodlamayı çok daha iyi yapacak gibi görünüyor ve kişinin kendi rahat ettiği ortamın ötesinde, farklı ortamlarda da hayatta kalabilecek uyum yeteneğine her zamankinden daha fazla ihtiyaç olacak.

Bu açıdan bakınca, farklı dillere uyum sağlama becerisi artık bir tercih değil, zorunluluk gibi duruyor.

 
love7peace 2024-11-06

Entries web app yapmak gerekirse kesinlikle Java kullanırdım. Zaten sadece 1. madde bile yeter... Basit geliştirme, hızlı geliştirme gerekiyorsa Python daha iyi gibi. Js ise... bana fazla karmaşık geliyor, sinir bozucu.

 
newmanjoo 2024-11-06

Java yapacaksam Kotlin yaparım; ayrıca Java adlı dil yerine, Kotlin’in gelişimini daha iyi takip eden dilin .NET ekosistemindeki diller olduğunu düşünüyorum.
Java’nın eskiden Java ile kurulmuş kamu kurumu sunucularının bakım dili olarak kalması daha iyi olur; Kore’deki CEO’lar reklamlarda gördükleri Java kelimesine aşina oldukları için Java’da ısrar etme eğiliminde oluyor. Kotlin ve .NET’i deneyimledikten sonra Java’yı değerlendirin.

 
tsboard 2024-11-06

Java konusu açılmışken ben de bir şey söyleyeyim... Go hakkında ne düşünüyorsunuz? Ben aslında Java'dan çok Kotlin'i daha çok seviyorum ama Gradle yüzünden yaşadığım hayal kırıklığı o kadar fazlaydı ki sonunda Go'ya yerleştim. Kısa da olsa kullanmış biri olarak, Java'nın gerektiği her yerde Go'nun da işi görebileceğini düşündüm.

JS/TS tarafını ben de seviyorum ama ne olursa olsun bunu Java ile aynı düzlemde karşılaştırmak biraz zor değil mi diye düşünüyorum. Sonuçta tek iş parçacığı kısıtı var; pm2 gibi araçlarla çoklu süreç kullandıklarını söylüyorlar ama Java'da da virtual thread oldukça iyi durumda ve bence bu aslında daha iyi. Tabii düşünce akışı bu şekilde giderken goroutine'leri görüp ben Go'ya yerleştim... hahaha;;

İhtiyaca göre dili doğru yerde kullanmanın en iyisi olduğunu düşünüyorum. Ben 2024 yılında bile hâlâ PHP dilini seviyorum; JS, Java(Kotlin) ve Go kadar olmasa da onlara da ilgim var. Sonuçta dil bir araç; aracı amacına uygun kullandıktan sonra sorun yok diye düşünüyorum, o yüzden bu yorumu bırakıyorum.

 
shortstories 2024-11-07

Bence artık gerçekten kullanılabilir bir seviyeye geldi. Ben de şirkette işimi yalnızca go ile yapıyorum.
Eskiden godep, glide kullandığımız zamanlarda dependency bir kez bile şaşsa yerine oturtmak bütün gün sürerdi; bunun bir dil mi yoksa dilimsi bir şey mi olduğunu düşünürdüm.. 😂

 
sunrabbit 2024-11-07

Tek iş parçacığı kısıtı olsa bile, container içine sarıp pod başına CPU’yu çok tüketmeyecek şekilde ayarlayarak orkestrasyon yapılan bir çağda, bu kısıt gerçekten o kadar büyük mü diye düşünüyorum.

Eskisi gibi tek bir sunucuda birden fazla container çalıştırmak yerine, ancak o container CPU’yu çok fazla tüketiyorsa belki sorun olurdu.

Çoğu web sunucusu açısından bakıldığında, CPU tüketimi yüksek değil ve I/O throughput’u yüksek olduğu için Node’un da bir seçenek olarak değerlendirilebileceğini düşünüyorum.

Elbette CPU yoğun bir domain ise, o zaman başka diller düşünülebilir ya da napi üzerinden native kod çağrılabilir.

 
savvykang 2024-11-06

Goroutine'lerle asenkron işlerin iyi soyutlanmış olması gibi bir özelliği olduğu için, bunun asenkron işler için kullanışlı bir dil olduğunu düşünüyorum. Rust ya da Python'ın asenkron kodları bana fazla düşünülmüş gibi geliyor. Hem yazarken hem okurken bilişsel yükün oldukça yüksek olduğunu düşünüyorum.

 
regentag 2024-11-06

Ben sadece generics eklenmeden önceki Go'yu kullandım, ama bunun harika bir dil olduğunu düşünüyorum. Başlarda araçlar gerçekten pek iyi değildi, ama epey gelişmişler.

Sözdizimi kaba, ama bu yüzden öğrenmesi de kolay.

 
seunghaekim 2024-11-06

Kavga etmeyin....

 
moderator 2024-11-06

Tartışma hararetleniyor.
İtirazınız varsa lütfen yalnızca içeriğini yazın.
Site kullanım kurallarına aykırı yorumlar silinmiştir.
Ayrıca, kullanım kurallarına uymayan faaliyetleri tekrarlayan hesaplar engellenmiştir; bilginize.
Lütfen yapıcı bir tartışma yürütün.

 
[Bu yorum gizlendi.]
 
regentag 2024-11-06

Java 1.8 gerçekten harika bir sürüm!

 
roxie 2024-11-06

Bence write once run everywhere artık biraz bırakmanın zamanı gelmiş gibi hissettiren bir slogan.. haha

 
regentag 2024-11-06

Ama işte, bu Java! hahaha

 
secret3056 2024-11-06

IDEA'da Java ile kod yazmak keyifli ama IDEA olmasaydı mutsuz olurdum. (Zaten mutsuzdum da)

 
tested 2024-11-06

Yurt içinde işe alım avantajı da var, e-Government Framework de var; hatta "Java Cumhuriyeti" denecek kadar çok Java geliştiricisi bulunuyor.
Şirketlerde başka dillerden Java'ya geçiş yapan durumlar da çok oluyor ama deneyimime göre bazı Java geliştiricileri sadece Java yapmak istiyor.
Mevcut kurulu başka dillerdeki sistemlerin sorunlu olduğunu, Java'ya geçilmesi gerektiğini söylüyorlar. Ama bir yandan Kotlin de yapmak istemiyorlar.
Yeni bir şey öğrenmeye karşı bir tür isteksizlik varmış gibi görünüyordu. Sonuçta her şeyi Java ile yapabiliyorken neden? gibi bir his.

 
[Bu yorum gizlendi.]
 
dyumadel 2024-11-06

SI işi yapanlar generics kullanmıyor, değil mi?

 
mse9000 2024-11-08

Sanırım asıl meselenin bu olduğunu söylüyorsunuz .. hahaha

 
everyharu 2024-11-06

Bu noktada Java sanki bir din gibi görünüyor.
Java'yı eleştiren ve ondan şikayet eden insanlar genelde genç ve her şeyden çok JavaScript'e daha fazla maruz kalmış gibi görünüyor.
Bu sözü tersinden açarsak, JS kullanmış insanların deneyimleyip Java'nın pek iyi olmadığını düşündüğü anlamına da geliyor.
Neden her birinin kendine göre artıları ve eksileri olduğu gerçeğini kabul etmeyip sadece Java'nın daha iyi olduğu söyleniyor...
Document DB kullanmadan, özellikleri falan hiç umursamadan sadece SQL'in daha iyi olduğunu söyleyen insanlara benziyor.

Zaten Java'nın çok kullanıldığı bir durum vardı ve birçok kıdemli geliştirici yalnızca Java biliyor; o insanlar değiştirmek istemediği için değiştirilemiyor gerçeği sanki göz ardı ediliyor. Bugün baktığımda Java'nın kendine özgü güçlü yanları neredeyse kalmamış seviyede diye düşünüyorum.

 
cosine20 2024-11-06

Uzun yıllara dayanan deneyimime göre, Python ve JS'nin fanatiklerinin oranı daha yüksek.

 
kbumsik 2024-11-06

Muhtemelen Java dili yerine JS/Python’ı öne çıkarmak zorunda oldukları için, size biraz daha iddialı konuşuyorlarmış gibi gelebilir.

Kişisel olarak, Java dışında başka bir dili düşünemeyen bazı insanlar da gördüm. Onun dışındaki dilleri kullananların çoğu ise duruma göre başka dilleri kullanma niyetine sahipti.

 
cosine20 2024-11-06

İlk dili Java ise bunun mümkün olabileceğini düşünüyorum ama çevremde böyle birini hiç görmediğim için gözümde pek canlandıramıyorum.

Ben de üniversiteye girdikten sonra derste ilk öğrendiğim dil C++ idi ve sınıf ilerledikçe diğer dillerle doğal olarak tanıştığım için yeni bir dil öğrenmeyi o kadar da yük olarak görmüyorum... Sonuçta temel sözdizimi (değişken tanımı, kontrol yapıları, fonksiyonlar vb.) aşağı yukarı hepsinde benzer.

Böyle durumlarda muhtemelen dili ilk öğrenirken fazla dar bir çerçevede öğrenildiği için bakış açısı da daralmış oluyor diye düşünüyorum. Ayrıca bunu daha çok, derin öğrenme ya da matematiksel istatistik amacıyla Python'ı ilk dil olarak öğrenen kişilerde gördüm. Benimki de öyle, ikisi de kişisel deneyim olduğuna göre her iki görüş de doğru sayılabilir.

 
moderato 2024-11-06

Ben de benzer bir deneyim yaşadım, bu yüzden aynı fikirdeyim.

 
hobbycoder 2024-11-06

Python sevenler, Python'ın iyi bir dil olduğunu iddia etmiyor. JS için de dilin iyi olduğunu diretmek gibi bir durum yok. Python da JS de sadece belirli alanlarda geliştirme yapmak için ekosistemi güçlü olduğu için tercih ediliyor. Nedense sadece Java tarafındakilerde, ne olursa olsun iyi olduğunu dayatma gibi bir hava var..

 
aer0700 2024-11-07

JS, JS geliştiricilerinin kendilerinin bile dalga geçtiği bir şey. Buna dil mi denir... ts olmasaydı hıçkırık hıçkırık

 
roxie 2024-11-06

İlle de Java'yı savunacak olursak, tersine yalnızca Java'nın özellikle şu ya da bu sebeple sık sık alay konusu olduğunu da düşünüyorum. Herkesin aşina olduğu mahalle amcası pozisyonu...?

 
kandk 2024-11-06

Bugünlerde Google'da Java ile ilgili içerik aratınca
kurslarda öğrenilen aynı şeyleri anlatan Türkçe blog yazıları ortalığı kaplıyor ve
düzgün bir referans bulmak zor olduğu için sinir bozucu oluyor.

 
regentag 2024-11-06

Google araması epey kötüleşti değil mi...

 
jjpark78 2024-11-06

18, 25, 20, 10, 8, 6, 5, 3, 2, 1 vb. yalnızca Java'ya özgü değil. Hatalı karşılaştırma

 
regentag 2024-11-06

Şimdi bakınca, Java'nın da böyle özellikleri olduğu ve eleştirilmesini gerektirecek bir neden olmadığı görülüyor; mesele sadece Java'da olduğu için Java kullanın demek değil gibi.

 
lazydonkey456 2024-11-06

Aksine, okurken aklıma sadece "hmm... .NET daha iyi değil mi?" düşüncesi geliyor.

 
regentag 2024-11-06

Ben de C#'ı seviyorum ama Windows dışındaki ortamlarda özellikle kullanmak gerekir mi emin değilim.

 
lazydonkey456 2024-11-07

Yukarıdaki yorumla aynı içerik. O dönem gerçekten çok uzun zaman önce sona erdi.
MS’in gecikmiş tercihi insanların algısını böyle mahvetti.

 
rabbitcarrot 2024-11-06

Yalnızca Windows uygulamaları geliştiriyorsanız MS ekosisteminin birçok avantajı olduğu için iyi, ama Linux ya da macOS'ta Java'dan daha iyi bir seçenek olmadığını düşünüyorum. MS sonradan destek verse de özellikle kullanmak için bir neden yok. Zamanlama kötü.

 
lazydonkey456 2024-11-07

Artık .NET Framework dönemindeki .NET değil; neden onu Windows uygulamalarıyla sınırlıyorsunuz?
Zaten hepinizin elinde tuttuğu cep telefonlarında .NET tabanlı bir oyun motoru çalışıyor;

 
leetleet 2024-11-06

222

 
bichi 2024-11-06

333

 
gigisusu8888 2024-11-06

Java’yı eleştirdiğimden değil; Java’nın sinir bozucu olmasının nedeni, özellikle Java geliştiricilerinin diğer dillerin geliştiricilerini küçümsemesi, karşılaştırması ve tuhaf bir Java kibri sergilemesi. Java’yı seviyorum ama neden böyle davrandıklarını anlamıyorum. Her dilin kendi felsefesi, artıları ve eksileri, farklı bir ekosistemi var; ama o garip Java kibri aniden ortaya çıkınca itici görünüyor.

 
fooandbar 2024-11-06

Java geliştiricilerinin Java gururunu destekleyecek kanıt olarak sunulabilecek kaynaklara ihtiyaç var gibi görünüyor. Bunu ortaya koymak zorsa, bunun kabul edilmesi güç bir iddia olduğunu düşünüyorum.

 
regentag 2024-11-06

Sanırım her dilin ya da aracın etrafında böyle insanlar mutlaka oluyor. Java, çıktığı dönemde C/C++'a kıyasla daha havalı bir dil olmasının yanı sıra kurumsal tarafta da yaygın biçimde kullanıldığı için geliştirici havuzu büyüdü ve bu yüzden daha çok göze batıyor olabilir.

Ayrıca bugünlerde bu rolü Rust geliştiricilerinin üstlendiği de görülüyor.

 
puersum 2024-11-06

Şaşırtıcı ama Java'nın ana akım haline gelmesinin nedeni pazarlamaya inanılmaz para harcamış olmalarıymış hahaha
https://www.youtube.com/watch?v=NVuTBL09Dn4

 
puersum 2024-11-06

Bir dilin nasıl ana akım hâline geldiğine dair bir YouTube videosu var; sizler de izlerseniz ilginç gelebilir!
https://www.youtube.com/watch?v=QyJZzq0v7Z4

 
limc132 2024-11-06

Java geliştiricisine sinirlenmeniz gerekirken Java'nın kendisine yöneltiyorsunuz...

 
gigisusu8888 2024-11-06

Bu, sizin okuduğunu anlama becerinizle ilgili…

 
limc132 2024-11-06

Ben yanıtlamasam da başka biri yazmış zaten.

 
gigisusu8888 2024-11-06

Öyle değil?

 
secret3056 2024-11-06

Java'nın sinir bozucu olmasının nedeni

 
gigisusu8888 2024-11-06

Galiba okuryazarlığın ne olduğunu bile bilmiyor?

 
kayws426 2024-11-06

Birden, Java ile yapılmış Eclipse ile JavaScript(TypeScript) ile yapılmış VSCode akla geldiyse... bu yanlış bir karşılaştırma mı olur? Elbette özellik açısından Eclipse daha fazla şeye sahip.

 
koxel 2024-11-06

Bu yanlış bir karşılaştırma..
Çıkış dönemine bakmak lazım.
Eclipse çıktıktan sonra bir süre boyunca, Eclipse bugünün VSCode'u ile benzer bir konuma sahipti.
Ben de Eclipse'i kullanmayı gerçekten çok rahatsız bulduğum için kullanmıyorum ama
o dönemde işe yarar tek seçenek Eclipse'ti.

 
[Bu yorum gizlendi.]
 
[Bu yorum gizlendi.]
 
kandk 2024-11-06

JavaScript'in gücü, V8 motorunun Google tarafından yönetiliyor olmasıdır.
Terk edilmiş Java..

 
lazydonkey456 2024-11-06

Electron uygulamasının backend’i de JavaScript değil mi.. Ana süreç ve renderer süreci ayrı çalışsa da ikisi de JavaScript koduyla çalışıyor sonuçta.

Aynı şekilde JVM de nihayetinde native olarak uygulanmış bir runtime değil mi?