In che modo i developer scelgono il loro IDE? Ci sono molte risposte a questa domanda e ogni sviluppatore tiene in considerazione alcuni paramenti che lo aiutano a selezionare l'ambiente di sviluppo migliore per se stesso, anche perché ogni IDE ha i suoi pro e i suoi contro. Oggi ci vogliamo focalizzare sul mondo degli IDE Java, analizzando i principali progetti dedicati a questo linguaggio di programmazione.
Cosa considerare nella scelta di un IDE
Prima di tutto è necessario considerare alcune caratteristiche chiave di cui si deve tenere conto quando si valuta un IDE Java:
- È multipiattaforma?
- Supporta più linguaggi di programmazione?
- Supporta i web framework più popolari?
- Dispone di un in-built debugger?
- È disponibile una documentazione dettagliata?
- È gratuito?
Eclipse
Avendo in mente questi elementi iniziamo a valutare il primo IDE Java di oggi ovvero Eclipse. Questo progetto, disponibile per Linux, MacOS e Windows, ha tra le feature principali per Java un built-in incremental compiler.
Si tratta di una caratteristica inclusa come parte del Java Development Tools project: il concetto di compilatore incrementale fa riferimento ad un sistema di calcolo applicato al campo della compilazione software. Mentre i compilatori standard generano una "build pulita", ovvero ricompilano tutti i moduli del programma indicati dallo sviluppatore, un compilatore incrementale va invece a ricompilare solo le parti del programma modificate, riducendo notevolmente i tempi di compilazione delle nuove build.
Questo IDE supporta diversi linguaggi oltre a Java, come ad esempio C++ e PHP, senza contare che è compatibile con numerosi Java server come JBoss, WildFly e Tomcat. Dispone comunque di un buon ecosistema di add-on che permettono di aggiungere funzionalità extra in modo semplice ed immediato.
Per quanto riguarda le funzionalità di debugging integra tool per operare il controllo del codice sia localmente che in remoto. La sua documentazione è molto completa ed è anche molto semplice contribuire al suo sviluppo visto che si tratta di un prodotto open source.
Eclipse presenta dunque innumerevoli aspetti positivi come la code completion, il syntax checking ed un buon supporto al refactoring delle applicazioni. Ma anche alcuni punti negativi: diversi utenti hanno riscontrato per esempio una cattiva gestione del sistema di plugin. Spesso capita di dover eseguire varie versioni della medesima estensione sullo stesso sistema per ottenere le feature desiderata e, in alcuni casi, la stessa release di un plugin non è compatibile con altre versioni di Eclipse e vice versa.
Una delle ragioni principali per cui i professionisti scelgono Eclipse è la sua capacità di eseguire più operazioni contemporaneamente, essere multitasking è infatti una killer feature importante. Con Eclipse è possibile eseguire il filtering e il debugging simultaneamente, inoltre per i principianti è davvero facile approcciarsi ad un IDE che supporta tutte le principali tecnologie correlate a Java come Hibernate, Spring e Struts.
NetBeans
Ma passiamo ora al prossimo IDE Java di oggi ovvero NetBeans. Anche questo IDE è multipiattaforma e può essere sfruttato su Windows, Linux e MacOS, inoltre può essere usato per creare applicazioni oltre che in Java anche in diversi altri linguaggi come Javascript, PHP, Groovy e C++.
Una delle principali features di NetBeans è il supporto ai database MySQL, Oracle e PostgreSQL, che spesso lo rende più appetibile di Eclipse. Tramite il tool integrato Database Explorer è possibile creare, modificare ed eliminare tabelle o l'intero database. Anche NetBeans ha un buon ecosistema di plugin e un discreto supporto ai vari frameworks come ad esempio Spring, JSF, Hibernate, Swing e JavaFX.
NetBeans dispone inoltre di un'ottimo sistema di rilevamento degli errori e di una smart code completion ben integrata, senza dimenticare il supporto nativo per i progetti Maven.
NetBeans dunque risulta essere molto interessante per coloro che necessitano di lavorare con i database e vogliono un sistema di plugin migliore rispetto a quello di Eclipse. Tuttavia sembra che le funzionalità del debugger non siano proprio al top visto che risultano essere più lente rispetto alla concorrenza.
Secondo molti professionisti NetBeans è molto appetibile perché ha veramente tante funzionalità incluse out-of-the-box e una buona integrazione con Java EE application server. NetBeans ha anche degli ottimi strumenti per il deploy delle applicazioni e contempla l'hot deployment, dunque è possibile scrivere e compilare codice e l'IDE si occuperà contemporaneamente di distribuire l'applicazione in background sul server indicato. Quando si è pronti per le fasi di test non ci sarà bisogno di implementare il nuovo codice perché sarà già distribuito e pronto all'uso.
IntelliJ IDEA
Andiamo adesso sul terzo IDE di oggi ovvero IntelliJ IDEA. Disponibile per i principali sistemi operativi, IntelliJ IDEA è stato progettato per massimizzare la produttività degli sviluppatori. È disponibile in due versioni una gratuita, chiamata Community Edition, ed una a pagamento, chiamata Ultimate Edition.
La Community Edition è pensata per i developer che necessitano della Java Virtual Machine per realizzare applicazioni Android, mentre la Ultimate Edition ha invece un respiro più ampio e copre l'intero App development. Per quanto riguarda il supporto dei linguaggi di programmazione, la versione gratuita oltre a Java dispone anche dell'integrazione con e Scala e Kotlin oltre a vari strumenti per la gestione del codice con Git, SVN e CVS. La Ultimate edition include anche il supporto a JavaScript, TypeScript, Java EE, Spring, Vaadin, Grails, Play, ai database SQL e a svariati framework.
Le debugging application sono uno dei punti forti di IntelliJ IDEA assieme al suo vasto sistema di plugin. La documentazione è molto completa ed essendo un progetto open source è possibile anche contribuire direttamente con lo sviluppo o con l'invio di patch e bugfix. Ma probabilmente la killer feature di questo IDE è il Gradle build system, si tratta di un sistema open source per l'automazione dello sviluppo basato sulle idee dei progetti Apache Ant e Apache Maven. Gradle prende il meglio di due, implementato un domain-specific language basato su Groovy, al posto della classica modalità XML, per dichiarare la configurazione del progetto.
Il principale aspetto "negativo" di IntelliJ IDEA è il costo della versione Ultimate. Infatti non tutti possono permettersi l'abbonamento, anche se per un'azienda non dovrebbe essere un problema, ed alcune feature sono presenti appunto solo nella versione Ultimate. Tuttavia secondo diversi professionisti la versione standard offre tutto ciò di cui si ha bisogno per realizzare il proprio progetto Java/Android.
Android Studio
L'ultimo progetto di oggi è Android Studio, la suite di sviluppo ufficiale del Robottino Verde creata da Google è una delle più complete tra i vari IDE per quanto riguarda lo sviluppo Java.
Android Studio è un fork di IntelliJ IDEA dunque gli utenti che già hanno familiarità con questo IDE si troveranno a loro agio. Oltre a Java supporta nativamente Kotlin e C++ ed è disponibile per Linux, Windows e MacOS.
Una delle caratteristiche chiave di questo IDE è il suo unified development environment. Gli sviluppatori Google hanno capito infatti che uno dei modi adatti per migliorare sensibilmente la produttività di un programmatore è creare un ambiente unificato che raccolga e gestisca tutte le informazioni necessarie alla programmazione, cosi da automatizzare gran parte delle attività ripetitive.
Android Studio dispone di numerosi tool ed estensioni molto utili allo sviluppo di applicazioni Android, risulta essere perfettamente integrato con JUnit e con altri framerwork. Altro punto di forza di Android Studio è la possibilità di interfacciarsi nativamente con la Google Cloud Platform, cosi da eseguire backup, deploy e altre operazioni sul codice anche da remoto, sfruttando la versatilità dell'infrastruttura di Big G.
Android Studio è in grado di eseguire l'inspecting dei contenuti degli APK cosi da ottimizzarne le dimensioni, riducendo lo spazio occupato sul disco dall'applicazione. Uno dei pochi aspetti negativi di questo IDE è rappresentato dalle importazioni automatiche delle classi Java, per molti developer questo rappresenta un problema perché potrebbe impattare sulle prestazioni dell'IDE stesso.
Tuttavia rimane uno degli IDE più gettonati sul mercato ed essendo sviluppato direttamente dallo stesso team di Android è ormai il punto di riferimento per le aziende che intendono realizzare applicazioni per questo mercato.