Sculptor – MDA personalizzato

feb 11th, 2011

E’ da poco che sono venuto a conscenza del progetto Sculptor, che rappresenta , secondo me, un modo diverso di programmare. Da tempo si parla tanto dell’approccio MDA e come questo possa influire sul processo di sviluppo, riducendo il ruolo dei real-programmer, ma questo è solo un mio modesto parere. Pare, infatti, che i tempi della noiosa programmazione di codice di infrastruttura stiano sparendo, almeno nelle applicazioni nuove, ossie quelle per le quali non si ha bisogno di mettere mano a codice già scritto, anche diverso tempo fa. Con l’introduzione di XText /Xpand come standard de-facto all’interno della versione di Eclipse per  “modellatori”,  la programmazione generativa o metaprogrammazione è stata finalmente esportata ai settori dell’industria di massa. Ovviamente siamo ancora lontani dalla nascita di un primo tool per la costruzione di DSL facilmente modificabili, ma XText /Xpand è senz’altro uno di quegli strumenti che non devono per forza essere usati dall’intero team, ma possono essere considerati come uno coltellino svizzero in tasca alla singola persona (un coltellino molto potente, a mio modo di vedere, da far invidia a McGyver :) )  Se da un lato abbiamo l’accoppiata : Papyrus o Topcased più  Acceleo,  dall’altra abbiamo EMF o XText +  XPand. Secondo me una scelta non esclude l’altra, ma a volte un semplice profilo UML non basta per generare codice di qualità, o quantomeno tutto il codice generabile. Inoltre, avere uno strumento per UML che non riesce ancora bene a validare i vincoli OCL definiti nel profilo pone maggior lavoro di validazione da parte del generatore.  Un modello fatto male non serve a nessuno, meglio avere del codice fatto male a questo punto!

Sculptor è creato proprio usando XText ed Xpand e fornisce un framework che può essere facilmente customizzato, sia dal punto di vista del metamodello ( la grammatica XText) sia dalla tipologia di codice generato. Il lavoro per customizzare il generatore può essere anche abbastanza oneroso, ma vi assicuro che la vita sarà più semplice quando vi cambiano i requisiti all’ultimo secondo. Tutto questo è vero se , comunque, si avrà una certa accortezza nel separare il codice generato da quello scritto a mano. Eh si!! Avete capito bene, non tutto è generabile,  a meno che non vi leghiate ad una particolare piattaforma o codice (vedasi WEBML), ma anche in quel caso potrebbero esserci degli elementi del vostro modello non previsti nel PIM di webml.

In un successivo post (speriamo di averne il tempo :) ), cercherò di spiegarvi come customizzare Sculptor con del codice vostro e come magari estendere la sua grammatica. Per concludere vi dico che non è assolutamente necessario usare XText per la vostra metamodellazione, ma potete usare un qualsiasi linguaggio che sia in grando di interfacciarsi con EMF, ad esempio Java, Groovy, Scala o Python ( di cui Groovy e Scala sono ottimi per essere estesi per creare dei DSL agganciati al vostro modello ecore).

XDBForms inclusa in softpedia

ago 10th, 2010

E’ per me un onore informarvi che , una delle librerie sviluppate per il master, è stata inclusa in softpedia.

Con XDBForms è possibile generare dei documenti XForm per l’inserimento e aggiornamento di tabelle del database.

Tags:

Scrivere un DSL con Groovy

lug 24th, 2010

Un DSL (Domain Specific Language) è un linguaggio creato e adatto per un particolare dominio sia tecnico che non. Alcuni esempi sono : SQL, HTML ,regex. Altri linguaggi possono essere sviluppati per domini non tecnici come quelli di business, ad esempio: politiche per l’assicurazione sulla vita, regole di sicurezza per bance etc.. Di nuovo Guilluame Laforge in queste slide ci spiega come creare un DSL con Groovy… Awesome!

http://glaforge.free.fr/groovy/QCon-Tutorial-Groovy-DSL-2-colour.pdf

Tags:

[Off-TOPIC] Society

feb 4th, 2010

It’s a mistery to me
we have a greed
with which we have agreed

You think you have to want
more than you need
until you have it all you won’t be free

society, you’re a crazy breed
I hope you’re not lonely without me

When you want more than you have
you think you need
and when you think more than you want
your thoughts begin to bleed

I think I need to find a bigger place
‘cos when you have more than you think
you need more space

society, you’re a crazy breed
I hope you’re not lonely without me
society, crazy and deep
I hope you’re not lonely without me

there’s those thinking more or less less is more
but if less is more how you’re keeping score?
Means for every point you make
your level drops
kinda like its starting from the top
you can’t do that…

society, you’re a crazy breed
I hope you’re not lonely without me
society, crazy and deep
I hope you’re not lonely without me

society, have mercy on me
I hope you’re not angry if I disagree
society, crazy and deep
I hope you’re not lonely without me

written by Eddie Vedder

Tags:

Siti per blog