Fondamenti di Informatica T-2 - Corso di Laurea in Ingegneria Informatica - A.A. 2023-2024
Informazioni generali Materiale didattico Esami Link utili  
Sei in: Home > Strumenti

  

Strumenti fondamentali per Java

Gli strumenti fondamentali sono il Java Development Kit (JDK) ed Eclipse.

  • Il JDK contiene tutta l'infrastruttura Java e gli strumenti (compilatore, interprete) da riga di comando

  • Eclipse è uno strumento di sviluppo visuale che contiene il proprio compilatore autonomo:  richiede comunque, per eseguire applicazioni, la presenza sottostante dell'infrastruttura Java (JDK o JRE).

Tempistiche e modalità di rilascio delle versioni del JDK

IMPORTANTE: a partire da Java 9, Oracle ha modificato i termini di licenza, le tempistiche di rilascio e la metodologia di numerazione delle nuove versioni, in particolare separando la versione commerciale (JDK) da quella open source (OpenJDK). E' quindi essenziale comprendere le differenze, sia per orizzontarsi fra le versioni disponibili sui diversi siti, sia per non violare i termini di licenza.

  • fino a Java 8 (2014), le "major version" (Java 6, Java 7, Java 8) venivano rilasciate con una cadenza non predeterminata: ogni rilascio corrispondeva a un salto tecnologico con modifiche di sostanza al linguaggio e/o alle librerie annesse. Tipicamente ciò corrispondeva anche all'uscita di edizioni aggiornate di libri e manuali. Fra una major release e la successiva venivano spesso rilasciati, con cadenza grosso modo semestrale, aggiornamenti talora anche rilevanti. Tale schema evidenziava con chiarezza i salti tecnologici, ma ritardava l'adozione di nuove caratteristiche (dovendo aspettare la successiva "major release") e rendeva poco pianificabili i necessari aggiornamenti degli strumenti di supporto (Eclipse, Netbeans, IntelliJ IDEA, etc.).

  • a partire da Java 9 è stato perciò cambiato radicalmente approccio, stabilendo una cadenza semestrale (marzo/settembre) per il rilascio di nuove versioni, con relativo aggiornmento di numerazione. Ciò velocizza l'incorporazione delle novità e soprattutto consente la pianificazione dei corrispondenti aggiornamenti degli strumenti di sviluppo.
    Di conseguenza, ciascuna versione è supportata e scaricabile solo fino al rilascio della successiva
    La versione attuale è Java 17 (LTS): a marzo 2022 è atteso il rilascio di Java 18. Per la versione commerciale, ogni tre anni è prevista una versione a supporto prolungato (Long Term Support, LTS): lo sono stati Java 8 e Java 11 (supporto fino al 2026), lo è appunto l'attuale  Java 17, pubblicata a settembre 2021.

  • maggiori dettagli sulla roadmap di rilasci e supporto

Vecchi e nuovi termini di licenza

  • in passato, fino a Java 8, il Java Development Kit (JDK) scaricabile dal sito Oracle poteva essere usato gratuitamente anche per uso commerciale e in produzione, come avvenuto dalla nascita di Java;
    questo non è più vero dal gennaio 2019, in cui anche gli aggiornamenti di Java 8 sono soggetti allo stesso modello di licenza adottato da Java 10 in poi.

  • a partire da Java 10 sono state separate la versione destinata a uso commerciale (JDK, scaricabile dal sito Oracle) da quella disponibile per uso libero (OpenJDK, disponibile sul sito specifico).
    Le due versioni sono identiche a livello di codice: differiscono solo per la licenza d'uso, le modalità di distribuzione (installer vs zip file) e il supporto. In particolare, il JDK del sito Oracle non può più essere usato gratuitamente per uso commerciale e in produzione.
    E' opportuno quindi scaricare sempre la versione OpenJDK.

Cosa scaricare a casa e in laboratorio

  • nei laboratori, dove è necessario garantire la compatibilità con decine di applicazioni e corsi, non è possibile ripetere l'installazione ogni semestre: la versione perciò potrebbe non essere l'ultima e lo stesso avviene per Eclipse.

  • a casa propria, si suggerisce l'utilizzo di

Strumenti per C#

Altri strumenti per linguaggi a oggetti

  • IntelliJ IDEA: ottimo IDE, alternativo a Eclipse, per Java e Kotlin

  • Scala IDE: plugin per Eclipse per il linguaggio Scala

  • Editplus: shareware, editor di testo configurabile per più linguaggi, pratico per semplici esempi

  • TextPad: shareware, efficace editor di testo per Java e altri linguaggi, utile per semplici esempi

UML editor o plugin

  • ObjectAID UML Explorer plugin Eclipse, semplice e leggero, class diagram gratuito (notazioni classi non standard, Eclipse-oriented), mantenuto sincrono col codice Java. Non supporta aggregazioni, composizioni (visualizzate come dipendenze generiche), né colorazione di classi, né package con classi innestate; non offre funzionalità di generazione di codice.

  • Astah disponibile in più versioni, di cui una gratuita (Community Edition); supporta svariati tipi di diagrammi, con eccellente possibilità di personalizzazione; utilizza la notazione UML standard. Reverse engineering e generazione di codice sono disponibili solo nelle versioni superiori.

Strumenti evoluti:

  • Visual Paradigm for UML disponibile in più versioni, di cui una gratuita (Community Edition); supporta svariati tipi di diagrammi, in notazione UML standard. Le funzionalità di reverse engineering e generazione di codice sono disponibili per più linguaggi (Java, C#, C++) ma solo nelle versioni superiori.

  • Modelio strumento open source nella versione base (modeller), con moduli aggiuntivi a pagamento. Stand alone, disponibile per Windows e Linux, supporta molti tipi di diagrammi, in notazione UML standard. Le funzionalità evolute (generazione di codice e documentazione Java, reverse engineering, etc) sono disponibili solo nei moduli extra.