Her altı ayda bir güncelleme – mevcut Java Sürüm Dizisine giden yol

Adanali

Member


  1. Her altı ayda bir güncelleme – mevcut Java Sürüm Dizisine giden yol

Java 9’un 2017’de piyasaya sürülmesinden bu yana, Java platformunun yeni sürümleri, yeni ve çok daha iyi tanımlanmış bir yayın treni kullanılarak yayınlandı. Ne yazık ki, Serbest Bırakma Trenindeki çeşitli değişiklikler ve iyileştirmelerle ilgili açıklamalar genellikle çok belirsizdi ve ayrıca toplulukta yanlış söylentiler de vardı. Özellikle Oracle, burada basın açısından kötü bir iş çıkardı ve yeni sürüm trenini olması gerektiği kadar şeffaf ve temiz bir şekilde açıklamadı. Java 17’nin piyasaya sürülmesi, sürüm treninde yeniden değişiklikler getirdiğinden, bu gönderiyi belirli süreci açıklamak için kullanmak istiyorum.







Hendrik Ebbers (@hendrikEbbers), JCP Uzman Grubunun bir üyesi olan Java Şampiyonu ve birçok kez JavaOne’ın Rockstar Konuşmacısı olarak ödüllendirildi. Hendrik, Open Elements şirketi aracılığıyla şu anda Hedera Hashgraph’ın tasarlanmasına ve hizmetlerinin halka sunulmasına yardımcı oluyor. Hendrik, JUG Dortmund ve Cyberland’in kurucu ortağıdır ve dünya çapında Java üzerine dersler ve atölye çalışmaları yapmaktadır. “Mastering JavaFX 8 Controls” adlı kitabı Oracle Press tarafından 2014 yılında yayınlandı. Hendrik, JakartaEE veya Eclipse Adoptium gibi açık kaynaklı projelerde aktif olarak yer alıyor. Hendrik, AdoptOpenJDK TSC ve Eclipse Adoptium WG’nin bir üyesidir.







güzel eski dünya


Ancak yeni sürüm dizisine bakmadan önce, eski Java sürümlerinin sürümlerine bakmak mantıklıdır. Aşağıdaki diyagram, Java 6, 7 ve 8’in yayın tarihini ve yaşam döngüsünü göstermektedir. Sürümlerin yaşam döngüsü, ilgili sürüm için ücretsiz güvenlik güncellemelerinin kullanılabilirliği ile tanımlanır. Sürümlerden biri için artık ücretsiz güncelleme kalmadığında, süresi şemada sona erer.








Diyagramda birkaç nokta görülebilir. İlk olarak, her zaman güvenlik güncellemelerine sahip en az iki sürümün desteklenmeye devam ettiği bir dönem olması önemlidir. Bu süre, platform kullanıcılarının uygulamalarını Java’nın en son sürümüne geçirmeleri için bir süre olarak hizmet eder. Ayrıca, yeni sürümlerin sürümleri arasındaki aralıklar farklıdır. Bunun nedeni, bu Java sürümlerinin, her sürüm için tanımlanan tüm özellikler uygulanır uygulanmaz piyasaya sürülmesidir.

Java’nın bu eski sürümlerinin her biri için uygulanacak özellikler, Java Topluluk Sürecinde (JCP) bir Java Belirtim İsteği (JSR) içinde tanımlandı. Örneğin, Java 8 için, özelliklerin listesi için bölüm 3’teki JSR 337’ye bakın. Bunlar, Java’da JSR 335’te tanımlanan lambda ifadelerinin ve JSR 310’da tarih ve saat API’sinin tanıtılmasıyla JSR olarak da belirtilir.


Java’nın yeni bir sürümünde hangi JSR’lerin uygulanacağı önceden tanımlandığından, çıkış tarihi hiçbir zaman kesin olarak tanımlanamadı. Bu bazen sürümler arasında uzun sürelere yol açmıştır.


Süreç boyunca, bu sürümlerin, örneğin Oracle JDK’nın belirli sürümleri olmadığına dikkat etmek önemlidir. Tüm bu sürümler OpenJDK’ye entegre edilmiştir. Bu, her Java satıcısının işlevsellikte herhangi bir farklılık olmaksızın mevcut sürümle kendi çalışma zamanlarının bir derlemesini sunabileceği anlamına gelir.

Daha hızlı sürümler sayesinde daha dinamik


Ancak Java 9 ile bu prosedür önemli ölçüde değişti. Belirsiz bir çıkış tarihi ve yaşam döngüsü olan uzun ömürlü sürümler yerine, Java platformunun yeni bir ana sürümü artık her altı ayda bir yayınlanıyor. Bu, OpenJDK’da daha önce olduğu gibi gerçekleşir, ancak OpenJDK kaynakları, tam iş akışlarını çok daha iyi anlayabileceğiniz Java 17’den bu yana tamamen GitHub’a taşınmıştır. Bir sürümün yayın tarihi sabit olduğundan, özellikler artık önceden belirlenemez. Çok daha fazlası, Java’nın yeni bir sürümü şu anda tamamlanan tüm özellikleri içeriyor. Bu özelliklere JDK Enhancement Proposals (JEP) denir ve tümü OpenJDK web sitesinde görüntülenebilir. Bu PEC’ler, Epik Sayılara benzer olarak kabul edilebilir. Java 10’dan başlayarak, sürümde yer alan JEP’lerin listesini ilgili yayın sayfalarında da görebilirsiniz (Java 11 için örneğe bakın).

özellik önizlemesi


Bu özelliklerden bazılarının geliştirilmesi daha uzun sürdüğü ve Java platformu üzerinde güçlü bir etkiye sahip olduğu için, JEP’ler için Önizleme ve Kuluçka durumları kullanıma sunulmuştur. İkincisi, yeni API’lerin gelecekteki bir sürümde Java sınıf kitaplığının son bir parçası haline gelmeden önce test için Java sürümlerinde yer almasına izin verir. Bu API’ler özel bir inkübatör paketindedir ve ancak son sürümle birlikte doğru pakete taşınacaktır. Önizleme durumu, Java platformunun yeni dil özelliklerini önceden kullanıma sunmak için kullanılabilir. Bu özellikler bir komut satırı parametresiyle etkinleştirilmelidir:


$ javac HelloWorld.java 

$ javac --release 14 --enable-preview HelloWorld.java
$ java --enable-preview HelloWorld


Uzun vadeli destek ve kritik yama güncellemeleri


Her altı ayda bir yeni bir sürümle, Java sürümlerinin ömrü önemli ölçüde değişti. Artık uzun vadeli destek (LTS) ve normal (LTS olmayan) sürümler arasında bir ayrım yapılmaktadır. İkincisi, bir sonraki sürümün yayınlanmasına kadar tam olarak altı aylık bir süreye sahiptir. Örneğin, Java 14, Mart 2020’den Eylül 2020’ye kadar sürdü. LTS olarak işaretlenen sürümler, OpenJDK’de daha uzun süre tutulur ve güvenlik güncellemelerini daha uzun süre alır.

Mevcut bilgilere göre, Java 17 LTS sürümü için güncellemeler 2027’de kullanıma sunulacaktır. Eclipse Adoptium, desteğe genel bakış bölümünde LTS sürümleri hakkında iyi bir genel bakış sağlar. LTS güncellemeleri yeni özellikler içermemekle birlikte bilinen tüm güvenlik açıklarını giderir. Bu nedenle, bu tür yayınlara Kritik Yama Güncellemesi (CPU) de denir. LTS yayınları olarak tanımlanmayan Java sürümleri için iki planlanmış CPU yayını görüntülenir. Java 16 için Mart 2021’deki ilk sürümün ardından Nisan 2021’de CPU 16.0.1 sürümü ve Temmuz 2021’de 16.0.2 yayınlandı. Java 17’nin piyasaya sürülmesiyle birlikte Java’nın yeni bir LTS sürümünün olacağı belirlendi. iki yılda bir Bu, Java 21’i Eylül 2023’teki bir sonraki LTS sürümü yapacak.

Bu tanımlara dayanarak, Java 9’dan bu yana Java sürümlerinin yayın tablosu şöyle görünür:








Tüm işler OpenJDK’da yapıldığından, bireysel Java dağıtımlarının çıkış tarihi biraz farklılık gösterebilir. OpenJDK’da sürüm onaylanır onaylanmaz Eclipse Temurin, Oracle JDK veya Azul Zulu gibi dağıtımların oluşturulması için çalışmalar başlar. Her satıcı, benzersiz bir satış noktasıyla kendilerini ayırt etmek için OpenJDK kaynaklarını ek özelliklerle genişletmekte özgürdür. Örneğin, Azul veya Bellsoft gibi bazıları JavaFX’i yapılarında toplar.

Önceki sürümlerde Oracle, özellikle WebStart veya Mission Control gibi araçlarla kendisini diğer OpenJDK yapılarından ayırmaya çalıştı. Ancak bu, toplulukta uyumluluk sorunlarına yol açmıştır ve neyse ki günümüzde artık uygulanmamaktadır.


(rm)



Haberin Sonu
 
Üst