Workshop su Ammentos

Il primo evento “hands on” organizzato dal Jug Sardegna, svoltosi presso il DIEE venerdì 12 Giugno 2009, è stato dedicato ad un framework open source ideato e sviluppato in Sardegna. Ammentos è un ORM lightweight di facilissimo utilizzo, il cui sviluppo è guidato da due principi base:
poca configurazione e nessuna dipendenza esterna. L’intero framework è infatti costituito da un unico file jar.

Davide Deidda, creatore di Ammentos, dopo una breve introduzione sul tema della serata, ha tenuto impegnati gli astanti con un piccolo progetto che ha dimostrato come sia possibile effettuare il CRUD di un modello di dati nel giro di alcuni minuti e con poche righe di codice. Il progetto del workshop era stato creato per Netbeans e db HSQL, ma attraverso uno script di ANT era possibile creare il progetto in maniera indipendente da qualunque tool di sviluppo, seppure con qualche passaggio in più.
La prima cosa che mi ha colpito (e come me, penso diversi altri) è stata la velocità con cui abbiamo i passaggi che ci hanno permesso di scrivere oggetti Java sul database e fare le corrispondenti operazioni di lettura ed aggiornamento.
Per effettuare le query fondamentali sulle tre tabelle coinvolte negli esercizi, non è stato necessario compilare alcun file XML, come avviene in altri framework di persistenza. Ogni configurazione viene infatti sostituita da una serie di annotazioni con le quali si fa il bind tra i dati degli oggetti java e gli elementi del DB. Né è stato necessario scrivere codice SQL, Ammentos si prende cura di creare al volo ed in maniera trasparente allo sviluppatore le query fondamentali. In un secondo momento, quando Davide ha mostrato il caso di una query più complessa, si è resa necessaria la scrittura di parti di codice SQL.

Prima della chiusura, c’è stato il tempo per una sessione di domande e risposte in cui sono stati richiesti chiarimenti sul funzionamento interno di Ammentos e fatti paragoni con altri framework, Hibernate in primis.

Da questa chiacchierata ho potuto ricavare questa considerazione: se il modello di dati non è eccessivamente complesso, Ammentos si rivela una scelta ideale; è rapidissimo da apprendere e mette in grado di essere subito produttivi, al costo di lasciare allo sviluppatore il compito di spostare fuori dal codice Java il poco codice di configurazione o SQL residuo. Questa scelta è stata spiegata da Davide con l’idea di focalizzare l’obiettivo di Ammentos sulla persistenza pura e semplice, senza forzare lo sviluppatore ad adottare modelli di configurazione che possono non piacergli e che possono essere aggiunti, quando necessari, con l’utilizzo di altre infrastrutture o di codice sviluppato ad hoc.

L’idea alla base di Ammentos, a mio parere, rende poco calzante la definizione stessa di “framework”. La libertà di non dover importare alcun altro jar e di non dover creare complesse strutture progettuali per usarlo infatti, rende più calzante la definizione più classica di “libreria”, dove è il software che si adatta alle esigenze del programmatore e non quest’ultimo a doversi adattare ai modelli architetturali imposti dallo strumento, come capita per Hibernate.

Per concludere, il primo workshop del Jug Sardegna può considerarsi un ottimo inizio ed una buona base di partenza per futuri eventi simili. Non avevo praticamente alcuna esperienza su Ammentos, ora sono in grado di poterlo usare in un progetto vero nel giro di pochi minuti. I concetti base di uno strumento si assimilano meglio se li si prova in “tempo reale” e seguire Davide nella dimostrazione è stato abbastanza agevole.
Come unico consiglio, suggerirei, nei prossimi workshop, di inserire una prova “libera” di ciò che si mostrerà, predisponendo un “esercizio non svolto” in cui chi partecipa si potrà cimentare da solo, utilizzando il supporto dello speaker solo in caso di necessità e dedicando al tema più delle due ore previste dal primo evento.

Andrea Castello