Mar 12

Appunti dal Java Ide Day - Genova 10 Marzo 2008

Tag: GeneraleGiampiero Granatella @ 20:37

La giornata del 10 Marzo organizzata dal Java User Group di Genova, ha visto la soddisfatta partecipazione di circa 150 partecipanti.
p3100482n.jpg
Il programma è stato il seguente
14.30 Benvenuto da parte del JUG Genova
14.45 Roman Strobl (RS) di Sun NetBeans
15.40 Paolo Ramasso (PR) per Oracle JDeveloper
16.35 Coffe Break
17.05 Vaclav Pech (VP) per jetBrains IntelliJ Idea
17.55 Estrazioni dei libri dell’O’Reilly e delle licenze di IntelliJ
18.05 Panel sul futuro degli ambienti di sviluppo

Di seguito sono riportati gli interventi della giornata.

Carlo Bonamico (CB) Java User Group Genova
CB inizia il suo intervento ringraziando l’Università di Genova - facoltà di Ingegneria per il supporto all’organizzazione e le aziende sponsor: Eptamedia, Finsa Consulting, ManyDesigns, NIS e k-tech. CB illustra le attività svolte dal JUG Genova (http://groups.google.com/group/jug-genova) fra cui il prossimo evento su Maven 2 del prossimo 20 Maggio.

Roman Strobl (RS), Netbeans
RS mostra come sviluppare un’applicazione con NetBeans. NetBeans dalle ultime versioni supporta diversi linguaggi e non più solo Java, è quindi un IDE per Java, ma anche per Ruby, C++, Javascript, ecc… Netbeans è inoltre disponibile per diversi Sistemi Operativi.

Uno dei vantaggi dell’IDE è la forte comunità di sviluppo e i molti plug-in che permettono di estendere le già molte funzionalità. Dalla versione 6.1 (ancora per developer) si è posta l’attenzione alle performance, migliorando i tempi di avvio di NB.

In maniera molto divertente e piacevole, Roman mostra come sia facile costruire un’applicazione swing con NB. L’applicazione si basa su un Database (in Mysql, ancora più supportato dopo l’acquisizione si Sun) si brani musicali. Con pochi click vengono realizzare le maschere per la ricerca, l’inserimento, la modifica e la cancellazione.  Interessante è vedere come il NB faciliti l’uso della persistenza JPA, attraverso i framework Hibernate, TopLink, … interfacciandosi direttamente con lo schema del Database.
Con uguale facilità viene mostrato come realizzare l’applicazione con WebStart o la stessa versione utilizzando le Java Server Faces.

RS mostra anche alcune interessanti caratteristiche quali il profiling all’interno dell’IDE, con cui monitorare l’utilizzo delle risorse e andare a vedere quali parti di codice usano con più insistenza particolari risorse (memoria, CPU o tempi di esecuzione). E’ interessante vedere come sia possibile inserire all’interno del codice profiling point, simili ai break point utilizzati per il debugging. Il profiling è applicabile anche a web application che girano su un application server (tomcat, glassfish o alttro).

Da maggio (circa) sarà possibile avere anche un debugger per Javascript.

Alla fine della sua presentazione RS mostra brevemente come creare un progetto per lo sviluppo di una plug-in

Finita la presentazione Roman risponde alle domde della platea. Nelle sue risposte RS afferma che NB
supporti lo sviluppo tramite Ajax permettendo di scaricare componenti JSF che supportino Ajax.
NB non supporta ancora PHP, ma si sta svluppando anche questa funzionalità di editing
i requisiti minimi sono 512M di Ram anche se ne sono consigliati 1024
la programmazione visuale (per webapplication) è molto comoda, ma di difficile applicabilità per grossi progetti
RS mostra l’uso del debugger all’interno di NB

Paolo Ramasso (PS), Oracle JDeveloper
Paolo spiega come JDeveloper accompagni lo sviluppatore in tutte le fasi dello sviluppo di una applicazione: design, codifica, debug, tuning, deploy e versioning.
Nella sua presentazione PR mostra principlamente come utilizzare EJB 3.0 e JPA con Oracle JDeveloper. Per la persistenza Oracle supporta di default il suo prodotto TopLink che nella versione Essential è gratuita.

JDeveloper è gratuito per i componenti di base, ma per quanto riguarda le parti dell’ADF (Application Developing Framework) c’è un costo di licenza. ADF è un framework che facilità la programmazione attraverso il paradigma MVC (Model-View-Controller).

Anche Paolo mostra come costruire Web Application attraverso Java Server Faces in particolare con i componenti (free) di Oracle. Anche Paolo puntualizza come sia facile ad utilizzare l’IDE per lo sviluppo di applicazioni che usino JPA per la persistenza e JSF per la parte di visualizzazione. Anche questo IDE si interfaccia a qualsiasi DBMS attraverso JDBC.

jDeveloper facilita la creazione di WebServices, JAX WS, SOA con BPEL.

Come obiettivo nello sviluppo di jDeveloper sono stati posti come obiettivi l’interoperabilità anche su application server diversi da quelli di Oracle, quali WebSphere, Tomcat e Gassfish.

Vaclav Pech(VP), IntelliJ Idea
VP inizia la sua presentazione affermando come anche IntelliJ sia un IDE per più linguaggi : Java, Ruby, Groovy, Html, CSS, XML e jsp.

Obiettivo di VP è dimostrare come IntelliJ cerchi di facilitare la vita dello sviluppatore facilitando la scrittura del codice e cercando di pensare come lui. Attraverso la creazione di una semplice classe swing, VP mostra la facilità di navigazione fra i file, il refactoring e la cancellazione di metodi e variabili. I controlli che IntelliJ fa sono assolutamente non banali e vengono fatti check anche all’interno delle stringhe di testo (ad esempio nella scrittura di istruzioni SQL). L’aiuto è anche nella digitazione dell’HTML, ad esempio mostra come per inserire il riferimento ad un immagine, l’IDE trovi il riferimento della stessa all’interno del progetto.

Impressionante è la velocità di digitazione e come tutte le operazioni di refactoring siano state effettuate solo attraverso l’uso della tastiera.

Nella seconda parte della presentazione anche VP mostra l’uso dell’IDE per realizzare applicazioni J2EE con framework quali Hibernate e Spring.

Fra le interessanti caratteristiche evidenziate ci sono la possibilità di condividere progetti con i repository di eclipse e il versioning (sono supportati CVS, Subversion e altri). Riguardo al versioning la possibilità di creare delle versioni shelf (ad esempio prototipali)  che possono essere messe da parte e riprese successivamente.

Anche IntelliJ si basa fortemente su plug-in sviluppate internamente o dalla comunità.

ge1.jpg
Le domande poste dalla platea attraverso il JUG sono state:
1. Principali differenze fra gli IDE
RS esprime soddisfazione dal fatto di avere più IDE che stimolano la concorrenza e la voglia a migliorarsi. NB per suo conto un supporto maggiore alle proprie tecnologie
PS evidenzia il forte e preciso supporto di Oracle alle sue applicazioni
VP pensa che tutti gli IDE mostrati nella giornata siano buoni, IntelliJ cerca rispetto agli altri di pensare come penserebbe lo sviluppatore

2. Da dove nascono le vostre idee per gli IDE
PR Dalle segnalazioni sui siti di Oracle e dai propri clienti sia interni che esterni
VP Dagli utenti, da ingegneri del software nell’azienda e dal mercato stesso
RS Essendo un progetto open source NB trae forte stimoli dalla comunità a supporto

3. Molti framework permettono il binding di thier diversi. Questi binding portano spesso ad errori a runtime. E’ stato affrontato questo problema
VP IntelliJ effettua già controlli su questi errori che si possono verificare a runtime
RS NB sta lavorando su questo aspetto che è sicuramente interessante
PR Non ci sono questi controlli, ma i wizard di sviluppo limitano questi problemi.

4.Cosa manca all’IDE?
RS Integrazione e pieno supporto ai vari linguaggi
PR Manca ancora un buon supporto ai linguaggi di scripting
VP Anche per me manca un miglior supporto ai vari linguaggi di programmazione

3 Responses to “Appunti dal Java Ide Day - Genova 10 Marzo 2008”

  1. kr1zz says:

    Grazie Giampiero, all’ultimo m’è uscito un lavoro e non sono riuscito a venire :(
    Visto che NB supporta anche C++ mi hai fatto venire voglia di provarlo…

  2. Giampiero Granatella says:

    Per C++ l’avevo provato anche io. Mi serviva interfacciarmi a una libreria C++ da Java con JNI. Funziona bene.

    Ciao

  3. Java IDE Day: slides, screencasts and a full report are online « Genova Java User Group says:

    [...] (Per un resoconto in Italiano, vedi http://www.giampierogranatella.com/blog). [...]

Leave a Reply