Java, en hafif tabirle yaygın olarak kullanılır ve büyük ölçüde güvenilir. Yazılım altyapımızın önemli bir parçasıdır. Kararlılık konusunda ağır bir yükümlülüğü olmasına rağmen, Java platformu değişen koşullara duyarlı kalmayı başardı. Java kullanan kişilerin yaratıcılığı, bunun bir nedenidir. Java, yüksek derecede kararlılık elde ederken değişiklikleri platforma dahil etmek için resmi bir sürece sahiptir.
Java platformunun nasıl geliştirildiğine bir göz atalım. Ayrıca ufuktaki en belirgin yeni özelliklerden bazılarına da bakacağız.
JCP: Java Topluluğu Süreci
Uzun süredir Java geliştiricisi bile, platformun nasıl geliştirildiğini ve sürdürüldüğünü iyi anlamayabilir. Yaklaşan büyük projelere geçmeden önce, Java sürecinin nasıl çalıştığına dair bir fikir edinelim. Buradaki ana paket, bunun gerçekten açık bir süreç olmasıdır. Katkıda bulunma arzunuz varsa, yapılabilir: Bir katkıda bulunanla konuşun, bir gruba katılın, bir teklif gönderin, bir hatayı düzeltin.
Java geliştirmenin temelinde Java Topluluk Süreci (JCP) bulunur. Bu, platformdaki değişikliklerin nasıl yönetileceğini tanımlayan ve aynı zamanda sürecin kendisini değiştirmeye izin veren bir tür kendi kendini tanıyan temel belgedir. JCP’nin en son sürümü, 2019’da kabul edilen 2.11’dir.
JCP, insanların yaşayabileceği çeşitli rollerin tanımlanması dahil olmak üzere, Java’daki yeni özelliklerin ve değişikliklerin (yani teknik özellikler) nasıl önerildiğini, gözden geçirildiğini ve onaylandığını resmileştirir. Bu roller, Java kullanıcı topluluğunun platformun yönetimine katılması için bir yer sunmaya yardımcı olur.
JSR: Java Spesifikasyon İsteği
Yeni özellikler ve değişiklikler önermek için JCP, Java Spesifikasyon İsteklerinin (JSR) oluşturulmasına (“başlatılmasına”) izin verir. Bu bir aracılığıyla yapılır standartlaştırılmış biçim. Forma ulaşmak için ücretsiz bir JCP hesabına kaydolmanız gerekir.
Şaşırtıcı olmayan bir şekilde, form önemli, heybetli bir şeydir. Sonuçta, Java SE özelliği şu anda 852 sayfa ağırlığındadır ve bu yalnızca standart sürümdür!
Bununla birlikte, süreç burada başlar. Mütevazı veya başka türlü pek çok değişiklik, buradan her gün kullandığımız Java teknolojilerine girmenin yolunu buluyor.
Bir JSR geldiğinde, JSR inceleme sürecine girer. Bu, JSR’de önerilen değişikliklerin kademeli olarak daha ciddi olarak kabul edildiği, değiştirildiği, ıstırap çektiği ve nihai olarak benimsendiği veya uyku moduna geçirildiği çok aşamalı bir süreçtir.
JEP: JDK Geliştirme Önerisi
Gelecek vaat eden bir JSR oluşturma süreci önemsiz değildir. Fikirlerin JSR olma yolunda kanalize edildiği birkaç yol vardır. Bunlardan en belirgin olanı JEP’tir. Java’daki en iddialı değişikliklerin çoğu (örn. lambdalar) JEP’ler olarak ortaya çıkar. İşte feshedilmiş olmayan JEP’lerin listesi. Boş bir anda göz atmak için ilginç bir belge.
Yeni bir JDK’yı dünyaya sunma sürecinin kendisi bir JEP’tir. Aynı zamanda büyük bir topluluk olayıdır; kapsama başlar burada.
JDK Projeleri
Bir çaba yeterince geniş olduğunda, bir çaba olarak kabul edilir. JDK Projesi. Bu, genellikle bir veya daha fazla JEP dahil olmak üzere, dokümanlardan koda kadar çok çeşitli eserler için bir şemsiyedir. Projeler bir veya daha fazla çalışmayı içerir gruplar. Gruplar, Java platformunun çeşitli alanlarına ayrılmıştır. Bir projede genellikle yazar rolünde birkaç aktif kişi bulunur.
Büyük JDK Projeleri devam ediyor
kehribar
Amber Projesi daha küçük projelerin bir koleksiyonudur. Gerçek özellikler olma sürecinde bu projeleri başlatmaya yardımcı olmayı amaçlamaktadır. Yani bir tür kuluçka makinesi.
Amber, dokuzu teslim edilen, üçü beklemeye alınan ve biri geri çekilen iki aktif projeyi içeriyor.
Aktif
Teslim edilmiş
Beklemede
geri çekildi
Kayıtlar ve metin blokları gibi son JDK’lardaki daha ilginç özelliklerin çoğunun Amber’in parçası olduğunu görebilirsiniz. İzlemek Amber Projesi anahtar için kalıp eşleştirme gibi yaklaşan sözdizimsel geliştirmeler için.
dokuma tezgahı
Proje Tezgahı muhtemelen mevcut projelerin en iddialı ve geniş kapsamlı olanıdır. Loom’un amacı, JVM için tüm iş parçacığı modelini yeniden tasarlamaktır. Dediğim gibi iddialı.
Tezgah, dönüşmekte olan ayrıntılarla birlikte hala devam ediyor. Temel fikir aynı kalır: Temelde işletim sistemi süreçleri etrafında bir sarmalayıcı olan geleneksel Java iş parçacığı modelini daha hafif bir şeyle değiştirin. Bunun pratikte anlamı, OS çekirdek iş parçacığı oluşturma ve JVM iş parçacığı oluşturma arasında bir soyutlama katmanı oluşturmaktır. Bu yeni katman içinde Loom, yalnızca JVM’nin anlaşabileceği çeşitli optimizasyonlar sağlayabilir.
Kaynakları ileti dizileri arasında paylaşmanın daha akıllı yollarını düşünün. “Kuyruk çağrısı ortadan kaldırılması” adı verilen bir optimizasyonun uygulanması, olası dahil etme yol haritasındadır.
Loom ayrıca, devamlar yoluyla kod akışını daha temiz ve açık bir şekilde kontrol etmenin yollarını arıyor. Java programcılarının sözdizimi değişikliklerini göreceği yer burasıdır.
Loom hakkında daha ayrıntılı olarak burada yazdım.
Panama
Panama Projesi JVM’nin Java olmayan API’lerle etkileşim yeteneğini geliştirmeye odaklanmıştır. Bu size JNI’yi hatırlatabilir (Java Yerel Arayüzü), bu da derlenmiş C veya C++ gibi “yerel” kodu çağırma yeteneğine zaten izin verir. Panama Projesi, JNI’nin yaklaşımını (özellikle geliştirici deneyimini) o ölçüde geliştirmeyi amaçlamaktadır. JNI’nin yerini aldı. Hedefler, ortak plakayı ortadan kaldırmak, bir ByteBuffer alternatifi sağlamak ve kullanılabilecek bazı temel bileşenleri tanıtmaktır.
Genel olarak Panama, FFI olarak bilinen şeyi yapmayı hedefliyor (yabancı fonksiyon arayüzü) daha deyimsel çağırır.
Panama’dan bir tür yan ürün, vektör API’si. Bu, Java’nın CPU’nun vektör desteğiyle etkileşim yeteneğini geliştirme çabasıdır. (İşletim sistemi içindekilerle uğraşırken burada iyileştirme fırsatının keşfedildiğini hayal edin.)
Valhalla
Proje Valhalla’nın Misyon ifadesi, “nesne yönelimli programlamanın soyutlamalarını basit ilkellerin performans özellikleriyle birleştirerek, Java nesne modelini değer nesneleri ve kullanıcı tanımlı ilkellerle büyütmek”tir.
Bir anlamda Valhalla, Java’nın türlerini birleştirmeye çalışıyor, ilkelleri ve sınıfları genel bir şekilde ele almayı mümkün kılıyor. Aslında, jenerikleri ilkellerde kullanabileceksiniz.
Değer sınıfı, normal bir sınıf gibi referanslara izin veren, ancak tüm üye değişkenleri nihai yapan bir sınıftır. Başka bir deyişle, “sığ değişmez”. ile bir değer sınıfı bildirilecektir.
value ön değiştirici
class anahtar kelime. Yeni kullanıcı tanımlı ilkel türlerin aksine, değer sınıfları Yapabilmek boş ol.
Kullanıcı tanımlı temel öğeler boş olamaz; onları ilkel yapan şey budur. Ayrıca, referansları olamaz. Esasen, bunlar özel bir ilkel gruplandırmadır. bu
primitive bunları bildirmek için sınıf değiştirici tanıtılacaktır.
Dolayısıyla, ilkel ve özel türler arasında bir tür köprü görüyoruz. Bu çabanın bir parçası olarak, Java programları, performans faydalarından yararlanmanın yanı sıra jenerikleri hem sınıflara hem de ilkellere uygulayabilecektir.
JDK Projelerini takip edin
Telif Hakkı © 2022 IDG Communications, Inc.
Kaynak : https://www.infoworld.com/article/3662160/better-java-jdk-enhancement-proposals-jep-explained.html#tk.rss_all