Siaran Berdasarkan Masa di Jawa

1. Pengenalan

Dalam artikel ini, kita akan membincangkan pelepasan Java berdasarkan masa baru dan kesannya pada semua jenis pembangun.

Perubahan pada jadual pelepasan termasuk memperbarui tahap penyampaian fitur dan sokongan untuk versi Java. Secara keseluruhan, perubahan ini sangat berbeza dengan Java yang telah disokong oleh Oracle sejak 2010.

2. Mengapa Pelepasan Enam Bulan?

Bagi kita yang terbiasa dengan irama pelepasan lambat dari sejarah Java, ini adalah keberangkatan yang cukup ketara. Mengapa perubahan yang begitu dramatik?

Pada asalnya, Java mendefinisikan siaran utamanya mengenai pengenalan ciri-ciri besar. Ini mempunyai kecenderungan untuk membuat kelewatan, seperti yang kita semua alami dengan Java 8 dan 9. Ini juga memperlambat inovasi bahasa sementara bahasa lain dengan kitaran maklum balas yang lebih ketat berkembang.

Ringkasnya, tempoh pelepasan yang lebih pendek menyebabkan langkah ke depan yang lebih kecil dan lebih mudah dikendalikan. Dan ciri yang lebih kecil lebih senang digunakan.

Corak sedemikian berpasangan dengan baik dalam keadaan semasa dan memungkinkan pengembangan JDK berfungsi dengan metodologi tangkas yang serupa dengan komuniti yang disokongnya. Juga, ia menjadikan Java lebih kompetitif dengan waktu berjalan seperti NodeJS dan Python.

Tentu saja, kecepatan yang lebih lambat juga memiliki manfaatnya, dan oleh itu kitaran pelepasan enam bulan juga berperanan dalam kerangka Sokongan Jangka Panjang yang lebih besar, yang kita lihat di Bahagian 4.

3. Perubahan Nombor Versi

Aspek mekanikal perubahan ini adalah skema nombor versi baru.

3.1. Skema Rentetan Versi JEP 223

Kita semua biasa dengan yang lama, dikodkan dalam JEP 223. Skema ini menjadikan nombor versi bertambah dan menyampaikan maklumat tambahan.

 Actual Hypothetical Release Type long short ------------ ------------------------ Security 2013/06 1.7.0_25-b15 7u25 Minor 2013/09 1.7.0_40-b43 7u40 Security 2013/10 1.7.0_45-b18 7u45 Security 2014/01 1.7.0_51-b13 7u51 Minor 2014/05 1.7.0_60-b19 7u60

Sekiranya kita menjalankan java -versi pada JVM untuk versi 8 atau lebih lama, kita akan melihat seperti:

>java -version java version "1.6.0_27" Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0_27-b07) Java HotSpot(TM) Client VM (build 1.6.0_27-b13, mixed mode, sharing)

Dalam kes ini, kita mungkin meneka ini adalah untuk Java 6, yang betul, dan kemas kini ke-27, yang salah. Skema penomboran tidak begitu intuitif seperti yang ditunjukkan.

Pelepasan kecil adalah gandaan 10, dan siaran keselamatan memenuhi semua yang lain. Biasanya, kita akan melihat tali pendek yang dilampirkan ke pemasangan tempatan kita, seperti JDK 1.8u174. Rilis seterusnya mungkin JDK 1.8u180, yang akan menjadi rilis kecil dengan pembaikan baru.

3.2. Skema Rentetan Versi Baru

Skema rentetan versi baru akan " menyusun kembali nombor versi untuk menyandikan keserasian dan kepentingannya, melainkan peredaran masa, dari segi kitaran pelepasan, " menurut Mark Reinhold dalam JEP.

Mari lihat beberapa perkara:

9.0.4 11.0.2 10.0.1

Sekilas ini nampaknya versi semantik; bagaimanapun, ini tidak berlaku.

Dengan versi semantik, struktur khasnya adalah $ MAJOR. $ MINOR. $ PATCH , tetapi struktur versi baru Java adalah:

$FEATURE.$INTERIM.$UPDATE.$PATCH

$ CIRI adalah yang mungkin kita fikirkan sebagai versi utama , tetapi akan meningkat setiap enam bulan tanpa mengira jaminan keserasian. Dan $ PATCH adalah untuk keluaran penyelenggaraan. Tetapi, di sinilah persamaan berhenti.

Pertama, $ INTERIM adalah placeholder, yang disediakan oleh Oracle untuk keperluan masa depan. Buat masa ini, ia akan sentiasa sifar.

Dan yang kedua, $ UPDATE berdasarkan masa seperti $ FEATURE, dikemas kini setiap bulan selepas pelancaran ciri terbaru.

Dan akhirnya, angka nol di belakang dipotong.

Ini bermaksud bahawa 11 adalah nombor pelepasan untuk Java 11, dirilis pada bulan September 2018, 11.0.1 adalah rilis kemas kini bulanan pertamanya pada bulan Oktober, dan 11.0.1.3 akan menjadi pelepasan patch ketiga hipotetis dari versi Oktober.

4. Pengagihan Pelbagai Versi

Seterusnya, mari kita lihat cara memilih versi yang betul.

4.1. Kestabilan

Secara sederhana, Java kini mempunyai saluran yang cepat, setiap enam bulan, dan saluran yang lambat, setiap tiga tahun. Setiap pelepasan tahun ketiga dipanggil pelepasan LTS.

Pada saluran pantas, bahasa melepaskan ciri dalam inkubasi. Ciri-ciri bahasa ini stabil dalam siaran LTS.

Oleh itu, bagi syarikat yang dapat menggunakan turun naik sebagai ganti menggunakan ciri baru, mereka boleh menggunakan saluran cepat. Bagi syarikat yang menghargai kestabilan dan tidak sabar untuk menaik taraf, mereka boleh meningkatkan pada setiap keluaran LTS.

Percubaan dengan versi JDK membolehkan pembangun mencari yang paling sesuai.

4.2. Sokongan

Sudah tentu ada juga masalah sokongan. Sekarang bahawa sokongan Java 8 telah terbenam, apa yang kita lakukan?

Dan seperti yang dibincangkan sebelumnya, jawapannya terdapat dalam versi LTS, Java 11 menjadi pelepasan LTS terbaru dan 17 yang berikutnya . Kemas kini akan tersedia dan disokong oleh vendor seperti Oracle dan Azul.

Sekiranya kita dapat mempercayai sokongan komuniti, maka Redhat, IBM, dan yang lain telah menyatakan sokongan mereka untuk menerapkan perbaikan bug untuk OpenJDK. Juga, projek AdoptOpenJDK menyediakan binari pra-binaan untuk OpenJDK.

4.3. Pelesenan

Satu kebingungan bagi sesetengah orang adalah perbezaan antara OpenJDK dan Oracle JDK.

Sebenarnya, keduanya hampir sama, hanya berbeza dengan perbaikan bug dan patch keselamatan, menurut Brian Goetz.

OpenJDK acts as the source of most derived JDKs and remains free. Starting with Java 11, Oracle will charge commercial license fees for the Oracle JDK with additional support and services included.

4.4. Fragmentation

With more frequent releases, fragmentation may become an issue. Hypothetically, everyone could be running on different versions of Java with different features even more so than now.

Of course, containerization could help address this. From Docker and CoreOS to Red Hat's OpenShift, containerization provides the needed isolation and no longer forces one installation location for Java to be used across the server.

5. Conclusion

Sebagai kesimpulan, kita dapat mengharapkan lebih banyak lagi dari pasukan Java di Oracle dengan pelepasan Java secara berkala setiap enam bulan. Sebagai pemaju Java, prospek ciri bahasa baru setiap enam bulan sangat menarik.

Mari kita ingat beberapa implikasi ketika kita memutuskan apakah saluran peningkatan kita jika kita memerlukan sokongan dan perlesenan, dan bagaimana mengatasi perpecahan.