NetBeans 6.01 vs Eclipse 3.3.1.1

NetBeans 6.01 vs Eclipse 3.3.1.1

Forse non c’è un’area di programmazione dove la competizione tra i tool è così intensa come per il mercato degli IDE Java. Sebbene ci sono solo quattro principali IDE – Eclipse, NetBeans, IntelliJ IDEA, e Oracle JDeveloper – tutti i vendor eccetto Oracle guardano con attenzione i loro competitori e si affrettano ad aggiungere nuove caratteristiche di differenzazione.

Integrare Apache Tomcat in Eclipse
Sviluppare applicazioni SWT in Eclipse
Disegnare diagrammi UML in Eclipse

In questo post vediamo le differenze tra due ambienti di sviluppo Java molto popolari: Netbeans ed Eclipse. Forse non c’è un’area nel mondo della programmazione dove la competizione tra i tool è così intensa come per il mercato degli IDE Java. Sebbene ci sono solo quattro principali IDE – Eclipse, NetBeans, IntelliJ IDEA, e Oracle JDeveloper – tutti i vendor eccetto Oracle guardano con attenzione i loro competitor e si affrettano ad aggiungere nuove caratteristiche di differenziazione.

La competizione è più accesa tra Eclipse, NetBeans e IntelliJ IDEA, probabilmente perché questi prodotti hanno le più grandi comunità di utenti attive e questi utenti tendono ad essere personalmente attaccati al loro ambiente preferito. Dei tre, solo Eclipse e NetBeans sono completamente free ed Open Source.

L’analisi comparativa riguarda NetBeans 6.01 e Eclipse 3.3.1.1, che saranno analizzati tenendo in considerazione i principali fattori che tipicamente pesano nella scelta di un IDE.

Entrambi gli IDE sono semplici da scaricare ed installare. I siti web del download di entrambi gli IDE offrono varie configurazioni di caratteristiche e plugin che meglio rispecchiano le necessità del proprio progetto.

L’installazione di Eclipse consiste nello scompattare il file scaricato. Se si ha a disposizione Java 5 installato sul sistema basterà semplicemente cliccare sull’icona di Eclipse per lanciarlo. Fatto questo, ci si ritroverà di fronte una particolare seccatura di Eclipse, il workspaces. Una casella di dialogo appare e chiede di specificare il workspace, che è definito in questa casella come il posto dove Eclipse metterà i propri progetti. Non si può non specificarlo ne tantomeno Eclipse lo richiederà di nuovo. Se più tardi si crea un progetto e non lo si posiziona nella sottodirectory di primo livello del workspace di Eclipse, si riceverà un messaggio di errore.

Installare NetBeans è più semplice ma non senza difficoltà. Ad esempio, se durante l’installazione sotto windows, la jdk non è installata in c:/programmi/java, l’installazione fallisce con un messaggio di stato il quale mostra che non è stata trovata alcuna istanza della jdk. NetBeans non chiede dove è installata la jdk: semplicemente non parte. Fornisce la possibilità di riavviare l’installazione da linea di comando specificando anche il percorso di installazione della jdk. NetBeans 6 presuppone che si abbia una certa familiarità con la convenzione GNU dei parametri passati a linea di comando per la JVM.

Una volta installati NetBeans si presenta più facile di Eclipse nel caricare un esistente progetto. Una finestra di wizard chiede l’albero di directory del codice e dei test ed intelligentemente li carica entrambi. Necessita solo di specificare alcune librerie utilizzate che non sono note all’IDE. Si possono avere progetti ovunque sul disco. Come la maggior parte degli IDE Java, NetBeans non ha il concetto equivalente di workspace di Eclipse e non impone requisiti simili sulla posizione dei proprio file di progetto.

 

L’esperienza di editing

Eclipse ha una interfaccia visuale più attraente degli altri due IDE. I font sulla versione Windows sono leggibili ed attraenti. Esso è piacevole senza mai impressionare eccessivamente. Una volta che si iniziano ad usare le caratteristiche di Eclipse, comunque, ci si trova di fronte ad un unico e frustrante problema di progetto: le finestre di dialog hanno una tendenza a presentarsi all’improvviso per mostrare messaggi di errore falsi. Ad esempio, la figura seguente mostra una casella di dialogo nella quale i sorgenti stanno per essere importati in un progetto:

In alto, un messaggio di errore indica che lo spostamento è illegale. Come si può vedere verso la parte bassa della casella di dialogo, la destinazione per questi file non è stata ancora specificata. E ancora, senza conoscere la destinazione, Eclipse ostacola che i file siano importati illegalmente. La maggior parte degli utenti Eclipse hanno imparato a vedere i falsi messaggi di errore e ad ignorarli. Ciononostante, è una cattiva singolarità di progetto che rende il prodotto non amichevole per i nuovi utenti. Per essere chiari, anche in NetBeans capita, ma con una frequenza molto minore e con un miglior supporto dell’utente.

Eclipse usa altre caratteristiche di progetto che sono uniche tra gli IDE Java: la principale è il concetto di prospettiva. L’idea è quella che un utente può cliccare su una nuova prospettiva e tutte le finestre cambieranno rispetto al nuovo contesto. Così, si potrebbe passare da una prospettiva Java ad una prospettiva di debug a tutte (o molte) delle finestre nell’IDE cambiano dal supporto di editing a quello di debug. NetBeans e gli altri ambienti Java generalmente uniscono nuove finestre in pannelli a schede all’interno della finestra corrente. Il beneficio delle prospettive è che se tu carichi un plugin che usa molte finestre è semplice andare avanti ed indietro tra quel plugin ed il settaggio corrente dell’IDE.

Entrambi gli IDE hanno molte caratteristiche utili per quanto riguarda la programmazione pura. È improbabile che un utente necessiti di qualcosa da fare in Java che non può fare in entrambi gli IDE in modo confortevole. Questa è una delle ragioni per cui gli IDE Java sono invidiati dagli sviluppatori degli altri linguaggi di programmazione, con l’eccezione di C/C++. In tabella  possibile vedere che entrambi gli IDE offrono simili opzioni di editing sebbene non identiche:

CaratteristicheEclipse 3.3NetBeans 6.0
Code Refactoring2217
ProduceJavadoc, unità di test, UML, Getter/Setter e similiJavadoc, unità di test, UML, BPEL, Getter/Setter e simili
Verifica commenti e letteraliSiNo
Altri editor Java correlatiJSP, JSF, XML, HTMLJSP, JSF, XML, HTML

In aggiunta all’editing puro, entrambi i prodotti effettuano il monitoraggio della sintassi in background e velocemente informano l’utente di errori nel codice il che previene il successo della compilazione. Entrambi forniscono auto-completamento intelligente e la generazione di semplici elementi, come getter e setter. Eclipse e NetBeans possono anche generare unità di test per JUnit, ma in entrambi i casi questi test non sono altro che stub.

Linguaggi supportati

Eclipse e NetBeans hanno incrementalmente posizionato se stessi per l’uso in un range più ampio di domini di sviluppo fornendo il supporto di altri linguaggi di programmazione. Ad esempio, entrambi gli IDE forniscono buone basi di supporto al C e C++.

Eclipse ufficialmente supporta C/C++, COBOL, PHP, e  AspectJ. Il suo progetto di toolkit di linguaggio dinamico ufficiosamente supporta Ruby.

NetBeans supporta C/C++ e due versioni di Ruby: Ruby regolare e JRuby, che parte nella JVM piuttosto che nella Ruby VM. Il supporto a Ruby è eccellente. Ha eccellenti caratteristiche di editing, più i debugger per entrambe le varianti Ruby nonché per Rails. Queste caratteristiche rendono NetBeans il miglior IDE correntemente disponibile per lo sviluppo Ruby.

Enterprise tools

I tool di tipo enterprise includono funzionalità normalmente usate dalle aziende più grandi. Queste includono il modeling ed il reporting. Il meccanismo di distribuzione per questi tool mette in luce la differenza nell’approccio tra i due IDE. NetBeans tende a pacchettizzare, mentre Eclipse tende a rendere la “piattaforma” disponibile.

Ad esempio, riguardo la modellazione UML, NetBeans ha un tool di modellazione built-in che supporta UML (includendo diagrammi di casi d’uso, classi, collaborazione, sequenza e di attività). Il codice può essere astratto in un diagramma UML e viceversa. Eclipse, per confronto, offre l’Enterprise Modeling Framework (EMF), che è una piattaforma per costruire tool, e il Graphical Editor Framework (GEF). Se un utente installa entrambi questi package, e poi li configura, sarà pronto ad avviare la modellazione della propria architettura enterprise in UML. Avrà molte caratteristiche in più che desidererebbe avere in NetBeans, ma lavorerà più duramente per installarle, configurarle e avviarle.

Il supporto ai profili è lo stesso. NetBeans ha due profili (temporizzazione e uso della memoria) costruiti direttamente in NetBeans. Ad un qualsiasi punto, si può cliccare sul profilo e vedere come il programma sta eseguendo. In Eclipse, si necessita di scaricare il Test and Performance Tools Platform (TPTP), configurarlo e avviarlo. Il risultato finale è equivalente.

I pattern trasmettono completamente l’esperienza IDE: NetBeans tende ad impacchettare importanti plugin cosicché possono essere avviati subito, mentre Eclipse rende la piattaforma disponibile, il che quindi deve essere scaricato, installato e configurato. In pratica, NetBeans è il Mac per i PC di Eclipse: cioè, con NetBeans, tutto funziona a scatola chiusa mentre con Eclipse occorre fare molti più settaggi e configurazioni. Il trade-off è il range più ampio di opzioni disponibili in Eclipse.

Eclipse non ha competizione con NetBeans quando genera i report. Il Business Intelligence and Reporting Tools (BIRT) di Eclipse è una estensione del sistema per formattare e generare report e altri documenti che possono essere integrati in applicazioni aziendali.

 

Plugin

Eclipse domina in tutti gli aspetti dei plugin. Questa posizione di leadership deriva da due decisioni intelligenti prese da chi ne cura lo sviluppo diversi anni fa: la prima era quella di fondare la forza di Eclipse su OSGi framework, che è progettato per rendere la scrittura di nuovi plugin particolarmente semplice. La seconda era la decisione di IBM di lanciare Eclipse, rendendolo più semplice degli altri IDE per attirare partner. Ambo le mosse riuscirono brillantemente ed Eclipse ora gode di una posizione imponente sia nel campo dei plugin commerciali che open source.

Quasi tutti i nuovi plugin commerciali che riguardano Java (come i recenti prodotti Java da Agitar e Enerjy) escono prima per Eclipse. Attualmente, la maggior parte di essi escono solo per Eclipse. Alcuni sono riportati anche in NetBeans, ma non molti. Così se un utente deve avere specifici plugin, come Mylyn, allora Eclipse sarà il suo ambiente di lavoro.

La profusione di plugin Eclipse non è completamente pura di benefici, comunque. Molti plugin si portano dietro altri plugin e requisiti specifici che rendono le release di questi componenti subordinate. Questo albero di dipendenze può condurre a un processo esasperante di loading, unloading e configurazione. Per alcuni utenti, esso tende a rendere l’aggiornamento dell’ambiente di sviluppo un terrore.

Alcuni utenti Eclipse diventano meno disposti ad aggiornare o aggiungere nuovi plugin per paura che i cambiamenti possano causare la terminazione correttamente del lavoro di altre funzionalità.

È anche noto che alcuni ottimi plugin escono prima per NetBeans – da notare l’editor Ruby e il Matisse GUI progettato per Swing. Nessuno di questi è posseduto da Eclipse. In aggiunta, NetBeans offre un plugin che non ha un diretto omologo in Eclipse: collaborazione top-of-the-line.

Il plugin di collaborazione aziendale di Sun abilita il proprio team a comunicare sulla propria rete con il supporto speciale al drag and drop e al codice, come mostrato in figura.

Poiché NetBeans è associato a Sun e non usa una architettura stile OSGi, il suo ecosistema di plugin probabilmente sarà sempre più piccolo di quello di Eclipse – anche se la sua commercializzazione condivide sostanzialmente i miglioramenti. Così, per identificare i plugin occorre prima scegliere NetBeans e poi controllare che esso sia disponibile.

Conclusioni

La preferenza personale gioca un importante ruolo nella scelta dell’ambiente di sviluppo. Conseguentemente, un qualsiasi confronto testa-a-testa che conduce a una possibile percentuale di utilità degli IDE sarà usata solo per dividere i lettori che pesano le caratteristiche fornite allo stesso modo dei revisori. Per facilitare la scelta, vengono elencati i pesi per le caratteristiche ritenute più importanti nella seguente tabella (2.0 è il minimo mentre 4.0 il massimo).

CaratteristicaPesoEclipse 3.3NetBeans 6.0
Facilità d’uso/caratteristiche di editing40%2.93.6
Scripting/altri linguaggi10%3.03.6
Supporto Aziendale20%3.23.0
Ecosistema di Plugin30%3.82.7
Punteggio Totale 3.203.21

 

Riferimenti

http://www.javaworld.com/javaworld/jw-03-2008/jw-03-java-ides0308.html?page=4, autore Andrew Binstock is the principal analyst at Pacific Data Works LLC.

COMMENTS

WORDPRESS: 3
  • comment-avatar
    Johnb639 9 anni ago

    I’m hunting for web sites that contain fantastic recommendations on what’s in fashion and just what top rated makeup products is.. ckdgefkefaeg

  • comment-avatar
    Franco 9 anni ago

    Mamma mia, sapete che certe parole “competizione, competitore” usate in questo articolo mi fanno cadere le braccia? Non è che si voleva dire “concorrenza, concorrente”?
    Non necessariamente dovete pubblicare questo commento, ma prego correggere…

  • comment-avatar
    Alessandro 9 anni ago

    Credo sia stato utilizzato un traduttre automatico…
    Comparazione da rifare comunque… è un articolo del 2010
    ciao ciao