Java Ekosistemi Kasım Ayı Notları

Nesrin Asan
2 min readNov 29, 2023

--

Bu yazımda da seçtiğim fotoğrafın bir önemi var. Birazdan buna değineceğim.

Java 21 release olduktan sonra bir sükunet çöktü sanki. Kasım ayı biraz daha sakin geçti diyebilirim.

Spring Boot 3.2.0 sürümü release oldu. Denemek isteyenler için linkini bırakıyorum Bu sürümle birlikte Java 21 desteği artık Spring Boot 3.2.0 ile gelmiş oldu. Snapshot sürümünde belirttikleri RestClient ve JdbcClient’ta yine bu sürümle release oldu. Ben bu standardı gerçekten önemsiyorum. Db erişimleri, servis erişimleri bu sayede fluent API üzerinden yapılacak. Güzel bir standart olduğunu düşünüyorum.

  • Java 21 AWS Lambda üzerinde artık mevcut :)
  • Spring Modulith 1.0 GA release oldu. 5 yıldan fazla süredir arge çalışması olarak süren 2022 yılında deneysel olarak yayınlanan Spring Modulith için şöyle bir tanıma denk geldim: “Monolithic but Manageable”.

Spring Modulith proje lideri Oliver Drotbohm ile yapılan röportajı buraya bırakıyorum. Proje ile ilgili detaylı bilgiyi buradan bulabilirisiniz. Ama proje motivasyonlarını şu şekilde özetlemiş; 3 yıl öncesinde çok büyük bir şekilde projeleri dağıtma eğilimi olduğunu gördük. sistemlerin bazen gereğinden fazla bölünmesi ve bir süre sonra bu sistemlerdeki iş akışlarındaki değişikliklerin monolith projelerde daha rahat yapıldığını gördük. Ben de bu projenin ne kadar kabul göreceğini merak ediyorum açıkçası.

  • Ve benim dikkatimi çeken diğer bir gelişme ise yazımın da kapağı olarak seçmiş olduğum Babylon Project. 6 Eylülde Architect Paulo Sandoz’un bir öneri yayınlaması üzerine yeni bir projenin ayak seslerini duyduk. Proje’nin amacı kısaca şöyle:

Babylon projesi Java'yı GPU'lar, makine öğrenimi modelleri, SQL ve diferansiyel programlama gibi geleneksel olmayan programlama modelleriyle bütünleştirmeyi amaçlayan bir projedir. Bu proje, Java'nın kullanışlılığını ve erişimini genişletmeyi ve Java'yı daha geniş bir uygulama yelpazesine uygun hale getirmeyi amaçlamaktadır.

Bu işler için temelde code reflection’dan faydalanacaklarını ve bununla ilgili birkaç youtube videosu yayınladılar. Ama kısaca ne olduğunu youtube’daki tatlı “java” kanalından takip edebilirsiniz. Project Babylon

Bir önceki yazımda virtual thread’lerin çok rahat debug edilebilmesi, kodunun çok daha anlaşılır ve traditional thread’lere göre karmaşıklığının olmamasından bahsetmiştim. Aslında babylon projesinde de benzer bir amaç var. Yani geliştiriciler GPU proglamla yaparken neden standardı bozmak zorunda kalsın. Ya da derleyicinin yapabileceği bir çok işi neden developer yapsın. işte günün sonunda gelinmek istenen nokta bir java geliştiricisi kendi dilinin standardını bozmak zorunda kalmadan Bir GPU programlama, diferansiyel denklem gibi algoritmik yapıları, model eğitme gibi işleri rahatça, okunabilir şekilde yapabilsin.

Benim bir projede en merak ettiğim şeylerden biri de projelerin isim hikayeleridir. Özellikle büyük projelerde bu isimlerin özenli ve atıflarda bulunarak seçildiğini gördüğüm için bu çiçeği burnunda projede de yaptığım ilk şeylerden biri projenin isminin anlamı/hikayesi.

Hikaye:

“Babil” antik Babil kentiyle bağlantıları olan İbranice ‘Bāḇel’ (בָּבֶל) kelimesinden gelmektedir. Mezopotamya’da bulunan bu şehir, kültürel ve tarihi önemiyle ünlüydü. Tarihte Babil, antik Mezopotamya’daki çeşitli kültürlerin, dillerin ve bilgilerin buluşma noktası olarak hizmet etti. Benzer şekilde, Babylon Projesi farklı programlama modellerini birleştirmeyi, böylece Java’nın çok yönlülüğünü ve çeşitli paradigmalara uygunluğunu artırmayı amaçlıyor.

Bug’sız günler dilerim :)

--

--