JavaRush /Java Blog /Random-IT /A cosa porterà il frequente rilascio di nuove versioni de...

A cosa porterà il frequente rilascio di nuove versioni del JDK?

Pubblicato nel gruppo Random-IT
È un'era di cambiamento per Java. Le versioni JDK verranno ora rilasciate in base a una pianificazione anziché quando diventano disponibili nuove funzionalità. Questo approccio ha i suoi pro e i suoi contro, ma in che modo tali cambiamenti influenzeranno JDK 8? Simon Ritter, rinomato promotore di Java, campione di Java e CTO associato presso Azul Systems, spiega perché il "nuovo Java nei tempi previsti" è un compromesso tra stabilità, sicurezza e costi.
A cosa porterà il frequente rilascio di nuove versioni del JDK - 1
Nel 2018 cambiamenti significativi attendono il mondo Java. Come annunciato l'anno scorso, ci stiamo muovendo verso il rilascio delle versioni JDK su base programmata, anziché rilasciare versioni non appena diventano disponibili nuove funzionalità. Questa è un'ottima notizia perché ora le nuove funzionalità verranno incluse nelle versioni non appena saranno pronte e gli sviluppatori potranno accedervi molto più velocemente. Il rilascio di JDK 10 è previsto per marzo e siamo già entrati nella fase due delle correzioni dei bug, quindi tutto sta andando secondo i piani. La Java Specifica Richiesta (JSR) è già in fase di sviluppo attivo e disponibile per commenti pubblici. Esistono già proposte di miglioramento del JDK (JEP) mirate al JDK 11 . Sembra che Java stia andando alla grande.

I tempi cambiano

Tuttavia, ci sono molti altri cambiamenti associati a questo programma di rilascio che si manifesteranno quest'anno e potrebbero non essere così piacevoli. In 22 anni e mezzo siamo riusciti ad abituarci al fatto che Java, come piattaforma, ha tre proprietà fondamentali legate direttamente al modo in cui è supportato.
  1. Stabilità . In precedenza, le funzionalità aggiunte con una nuova versione di JDK, sebbene testate approfonditamente, richiedevano test in produzione. Ciò ha contribuito a identificare le carenze che necessitavano di correzione. Per garantire che gli utenti potessero continuare a lavorare con build stabili mentre ne testavano una nuova, gli aggiornamenti erano sempre parzialmente sovrapposti nel tempo.

    Se guardiamo le ultime versioni a partire da JDK 6, vediamo che gli aggiornamenti per JDK 5 hanno continuato a essere rilasciati per quasi altri 3 anni (2 anni e 11 mesi per l'esattezza). Con l'introduzione di JDK 7, sono stati rilasciati aggiornamenti pubblici per JDK 6 per un anno e 9 mesi. E gli aggiornamenti per JDK 7 sono stati rilasciati entro 13 mesi dal rilascio di JDK 8.


  2. Sicurezza . I team di sviluppo e supporto di OpenJDK, Oracle e prima di loro Sun Microsystems (l'azienda che ha creato Java, ndr) hanno sempre messo in primo piano la sicurezza della piattaforma. Come ricorderete, Java era originariamente destinato ai dispositivi mobili (in particolare, PDA Star7).



    Uno degli obiettivi chiave dello sviluppo era garantire che il codice potesse essere trasferito sulla rete ed eseguito in modo sicuro. Vengono regolarmente pubblicati aggiornamenti per JDK, che includono patch per i problemi di sicurezza rilevati. Se installi questi aggiornamenti immediatamente dopo il loro rilascio, sarai completamente al sicuro.


  3. Costo zero . Uno degli aspetti positivi di Java è che è sempre stata una piattaforma gratuita, ancor prima di essere rilasciata come software open source nel 2006. C'erano alcune restrizioni su dove Java poteva essere utilizzato senza royalty, ma questo si applicava sempre alle applicazioni mobili e integrate; per i client desktop e i server aziendali, la versione corrente di Java era sempre gratuita. Una delle modifiche già in corso per JDK è il rilascio degli eseguibili OpenJDK sotto la licenza GPLv2 con l'eccezione "Classpath". Questa licenza non impone alcuna restrizione su come è possibile distribuire Java Runtime Environment.

Tuttavia, i cambiamenti nel modo in cui JDK viene sviluppato e rilasciato richiedono un'attenta considerazione dei piani per la migrazione delle applicazioni alle nuove versioni di Java. Con questo nuovo programma di rilascio, gli sforzi per garantire la disponibilità degli aggiornamenti per più versioni precedenti potrebbero non essere fattibili. Per soddisfare le esigenze di due diversi gruppi di utenti (coloro che richiedono nuove funzionalità rapidamente e coloro che apprezzano la stabilità a lungo termine), Oracle ha deciso di passare a un modello di supporto a lungo termine (LTS). Versioni specifiche di JDK saranno considerate versioni LTS, il che significa che riceveranno aggiornamenti per tre anni. Tutte le altre versioni intermedie sono chiamate versioni di funzionalità e ricevono aggiornamenti solo per 6 mesi. Per rimanere in sincronia con questo nuovo sistema, JDK 8 è stato classificato come versione LTS. La prossima versione sarà JDK 11, prevista per settembre 2018. Il cambiamento più grande apportato da questo nuovo modello è che gli aggiornamenti tra le versioni non si sovrapporranno più nel tempo . L'ho messo appositamente in corsivo grassetto perché era assolutamente chiaro. Ecco un grafico che mostra la disponibilità degli aggiornamenti per le versioni JDK fino a JDK 19.
A cosa porterà il frequente rilascio di nuove versioni di JDK - 2?
Nella figura: Ciclo di vita Java SE – Calendario di oltre 5 anni Aggiornamenti pubblici con sovrapposizione zero ("support Cliff") Supporto commerciale Oracle Supporto commerciale esteso Oracle
Ciclo di vita Java SE - Pianificazione di oltre 5 anni Aggiornamenti pubblici Zero sovrapposizioni di tempo Eseguibili pubblici da Oracle (nessun supporto) Supporto commerciale Oracle Supporto commerciale esteso Oracle
Come diretta conseguenza di questi cambiamenti, la piattaforma Java è ancora stabile, sicura e gratuita, ma ora devi scegliere due di queste tre funzionalità. Nelle future distribuzioni Java, tutte e tre le proprietà non saranno disponibili contemporaneamente.

Lasciami spiegare un po' di più

Diciamo che sei preoccupato per la sicurezza (come dovresti essere), ma non vuoi spendere soldi. In questo caso, è necessario migrare alle nuove versioni JDK non appena vengono rilasciate. Nei casi in cui il supporto non si sovrappone nel tempo (versioni Funzionalità e LTS), dovrai farlo per ricevere nuove correzioni di sicurezza. Purtroppo, senza la sovrapposizione temporale, dovrai passare immediatamente a release JDK non ancora testate in produzione, quindi perderai la stabilità precedente. Un’altra opzione è scegliere la stabilità a costo zero. Anche in questo caso, questo è possibile: tutto quello che devi fare è continuare a utilizzare la versione LTS precedente dopo il rilascio di quella nuova. Ottieni la stabilità che ti è familiare, non devi pagare nulla, ma non riceverai alcuna patch di sicurezza poiché non sono più disponibili per questa versione. Infine, se vuoi stabilità e sicurezza, devi pagare. Puoi continuare a utilizzare la versione LTS precedente, ma l'accesso alla sicurezza e alle correzioni di bug sarà disponibile solo tramite un contratto di supporto commerciale.

E un piccolo blocco pubblicitario dell'autore :)

Azul (la mia azienda) ha creato una serie di eseguibili OpenJDK con il marchio Zulu Enterprise, creati dal codice sorgente, testati con test TCK/JCK e persino analizzati con utilità che abbiamo sviluppato per garantire che non vi sia corruzione del codice open source a causa di intestazioni errate File. Forniamo l'opportunità di scaricare gratuitamente la versione corrente, nonché supporto commerciale per chi è interessato. Recentemente abbiamo iniziato a offrire una nuova serie di opzioni di supporto per Zulu, volte a fornire ai clienti la massima flessibilità. Vogliamo fornire agli utenti la possibilità di migrare a una nuova versione di JDK che si adatti alle esigenze aziendali e dei clienti. Per questo, forniamo tre opzioni di supporto:
  1. Supporto a breve termine (STS). STS offre agli utenti l'accesso più rapido alle nuove funzionalità Java, con supporto sufficiente per una transizione graduale alle versioni JDK più recenti. Zulu Enterprise fornisce alle versioni STS l'accesso a correzioni di bug, aggiornamenti di sicurezza e altre correzioni secondo necessità ("supporto alla produzione") per 12 mesi, oltre a 6 mesi di supporto aggiuntivo incentrato sulla consulenza e sull'aiuto agli utenti nella migrazione a una versione più recente di JDK (“supporto esteso”). Ciò equivale a un ciclo di vita di 18 mesi.

  2. Supporto a medio termine (MTS). Le versioni MTS ti consentono di utilizzare le nuove funzionalità disponibili nelle versioni di funzionalità in produzione senza dover attendere una nuova versione LTS. Azul pianifica un rilascio MTS all'anno tra i rilasci LTS e fornisce supporto alla produzione per 18 mesi dopo la successiva data di rilascio LTS con disponibilità generale. Ciò garantisce una sovrapposizione temporale e una transizione "agevole" durante la distribuzione in produzione. Al termine del supporto alla produzione, vengono forniti altri 12 mesi di supporto esteso.

  3. Supporto a lungo termine (LTS). Viene fornito per le versioni considerate LTS dalla comunità OpenJDK e fornisce 8 anni di supporto alla produzione con ulteriori due anni di supporto esteso.
Ecco un altro disegno per renderlo più chiaro.
A cosa porterà il frequente rilascio di nuove versioni di JDK - 3?
Nella figura: Ciclo di vita Java SE – Calendario di oltre 5 anni Oracle File binari disponibili pubblicamente (non supportati) Supporto commerciale Oracle Supporto commerciale esteso Oracle Supporto commerciale Azul Zulu Production Supporto commerciale Azul Zulu esteso (passivo)
Ciclo di vita Java SE - Pianificazione di oltre 5 anni Eseguibili pubblici da Oracle (nessun supporto) Supporto commerciale Oracle Supporto commerciale esteso Oracle Supporto alla produzione commerciale da Azul Zulu Supporto commerciale esteso (passivo) da Azul Zulu
Se attualmente utilizzi JDK 8 senza un contratto di supporto commerciale e mantieni il tuo sistema stabile e sicuro tramite aggiornamenti pubblici, potresti pensare a cosa farai a partire da settembre. Azul si impegna ad aiutarti in questo, quindi non esitare a contattarci se hai bisogno di supporto.

conclusioni

Diversi aspetti della piattaforma Java cambieranno quest'anno, la maggior parte in meglio. Accesso più rapido a nuove funzionalità, rilascio aperto di utilità come Flight Recorder e Mission Control, rilascio di eseguibili OpenJDK sotto la licenza GPLv2 con l'eccezione "Classpath". La triste verità, tuttavia, è che il solito generoso supporto gratuito per la piattaforma Java sta diventando un ricordo del passato. Java è ancora stabile, sicuro e gratuito. Quali di queste tre qualità sono più importanti per te e i tuoi utenti?
A cosa porterà il frequente rilascio di nuove versioni di JDK - 4?

Circa l'autore

Simon Ritter è vicedirettore tecnico presso Azul Systems. Simon opera nel settore IT dal 1984 e ha conseguito una laurea in fisica presso la Brunel University nel Regno Unito.

Simon è entrato in Sun Microsystems nel 1996 e ha dedicato del tempo allo sviluppo e alla consulenza Java. Dal 1999 ha dimostrato le tecnologie Java agli sviluppatori, concentrandosi sia sulla piattaforma Java principale che sulle applicazioni client e integrate. Ora presso Azul Systems, continua ad aiutare le persone a comprendere meglio Java e i prodotti JVM di Azul. Puoi seguirlo su Twitter: @speakjava .

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION