La settimana scorsa ho avuto un’esperienza unica ed entusiasmante: essere co-trainer fianco a fianco di Lars Vogel per il primo Corso di sviluppo con Eclipse e4 in Italia. Sono stati cinque giorni di formazione intensiva e coinvolgente, alternando presentazione di slide per illustrare i concetti a scrittura dal vivo di codice da zero. Inoltre, dopo ogni presentazione i partecipanti avevano modo di fare pratica, svolgendo apposite esercitazioni, sui concetti appena appresi, chiedere chiarimenti, condividere dubbi e tecniche di approccio alla soluzione.
Fin dai primi momenti è emerso quanto potente sia questa nuova piattaforma di sviluppo; ecco alcuni tra i principali vantaggi rispetto alla prececente versione 3.x.

Il Modello Applicativo

In e4 l’intera applicazione è modellata con una istanza di un modello EMF, il chè rende molto pi├╣ intuitivo modificare i vari aspetti e contenuti. Dai menu alle parti (niente pi├╣ distinzione fra viste ed editor), dai command agli handler, ogni elemento è semplice da definire e da usare. Inoltre, la possibilità di modificare a run-time il modello applicativo rende possibile, e spesso sorprendentemente facile, realizzare diverse cose molto utili (come ad esempio personalizzare la toolbar o la status bar).

Dependency Injection

Niente pi├╣ modi complicati di recuperare la shell, il display oppure per trovare una parte: ora il meccanismo di dependency injection, basato su un potente sistema di annotation, fornisce quello di cui c’è bisogno ed esattamente dove c’è bisogno; semplicemente avete gli oggetti che vi servono pronti all’uso.

Servizi

Potete definire servizi OSGi e renderli disponibili in modo estremamente dinamico e disaccoppiato. Niente dipendenze esplicite tra i plug-in, ma un sistema di rilevazione automatica dei servizi disponibili aiuta a rendere le applicazioni altamente e dinamicamente configurabili.
Inoltre, la nuova piattaforma rende disponibili servizi per la comunicazione di eventi, l’interazione con un sistema gerarchico dei contesti, con il service selection, così come con il servizio che gestisce le varie parti e numerosi altri.

Estendere il Modello Applicativo

Qui è dove troviamo una sorta di rivoluzione innovativa: ora, dato che il modello applicativo è basato su EMF, per contribuire ad una applicazione esistente e4 si procede, conseguentemente, come si fa normalmente con EMF, cioè creando un sotto-albero del modello che semplicemente andrà ad estendere quello dell’applicazione stessa.

Utilizzo di CSS per applicare lo styling

Una delle pi├╣ interessanti e apprezzate caratteristiche di e4 consiste nel poter personalizzare lo stile e l’aspetto estetico dell’applicazione non semplicemente con qualche tecnica dichiarativa, bensì esattamente via CSS! Ora quindi potete modificare il look&feel della vostra applicazione sfruttando tutta la potenza dei CSS, una tecnica ampiamente consolidata, non pi├╣ relegata allo sviluppo web.

Renderer Framework Pluggabile

Ancora, l’interfaccia grafica di e4 è stata completamente disaccoppiata dal modello applicativo e resa pluggabile! Quindi SWT è solamente una delle possibili scelte per l’interfaccia grafica; potreste decidere di usare JavaFX ad esempio, oppure Swing, o … beh, dipende veramente da voi: vi basti pensare che esiste un progetto (Vaaclipse) che permette di trasformare la vostra applicazione e4 (con tutti i vantaggi che questo comporta) in una Applicazione Web.

Le reazioni dei partecipanti

Fin dal primo giorno, non appena i partecipanti hanno iniziato a mettere in pratica le nozioni apprese attraverso gli esercizi, le reazioni sono state spesso le seguenti:
ÔÇ£Troppo facile!ÔÇØ, ÔÇ£Sembra magia!ÔÇØ, ÔÇ£Non può essere così forte!ÔÇØ, ÔÇ£PotenteÔÇØ, ÔÇ£FantasticoÔÇØ
Per non parlare di chi aveva un background di sviluppo con Eclipse 3.x:
ÔÇ£Ora non riuscirò pi├╣ ad usare Eclipse 3.x per lo sviluppo RCP!ÔÇØ

Alcuni problemi temporanei

Il solo problema messo in evidenza è che il nuovo modo di sviluppare non può essere usato facilmente per estendere l’IDE stesso. Ad ogni modo questa caratteristica mancante è già in fase di studio (vedi Bug 376486).

Conclusioni

L’annuncio della Fondazione Eclipse sul fatto che non ci sarà pi├╣ supporto per lo sviluppo 3.x rappresenta decisamente l’affermazione di una innovativa e potente piattaforma per lo sviluppo del software. Se fra voi c’è chi sta pensando “La nostra azienda ha investito così tanto in Eclipse 3.x, perchè mai dovremmo ora ricominciare da capo con questa nuova tecnologia?” risponderei che, prima di tutto, ci sono diversi modi di migrare (a seconda del grado di migrazione desiderato) le vostre applicazioni Eclipse 3.x ad e4. Ma soprattutto direi che potete trovare numerosi casi reali dove la manutenzione ora, grazie ad e4, è molto, ma molto pi├╣ veloce di prima.

Per una introduzione ad e4 vi invitiamo a seguire i seguenti tutorials, sia nostri che di Lars Vogel.

RCP Vision

Lars Vogel