[ImoLUG] domande residue intervento linuxday: sviluppo software

Riccardo Govoni ☢ battlehorse@gmail.com
Mar 11 Nov 2008 06:33:46 CET


Ho dato un'occhiata ai link ( in modo molto veloce, devo ammetterlo )
e c'e' una questione che non mi torna.
Il paragone tra Rails e AndroMDA ha senso solo considerando i due tool
( che sono piuttosto differenti come natura ) per quanto bene svolgono
il lavoro che devi fare.

Ora, se li consideriamo meramente come strumenti per raggiungere il
tuo fine ( gestire lo sviluppo del portale micro.bo ed avere un
knowledge riutilizzabile in futuro per esigenze simili ), stiamo
confrontando :

- un baraccotto che prende in pasto UML ( che dovrebbe rappresentare
il tuo codice sorgente, ergo non butti mai l'occhio ai sottoprodotti
di andromda ) e sputa l'applicazione VS
- un baraccotto che prende in pasto un po' di file ruby e sputa l'applicazione.

Quello che non ha mai funzionato nella mia esperienza e' che ogni
astrazione, per quanto buona, tende a leakare da qualche parte.
Tradotto, non si riesce _mai_ a fare tutto con UML e si finisce sempre
a mettere mano ai sottoprodotti, con grande sofferenza dello
sviluppatore perche' tali sottoprodotti non sono generalmente intesi
per elaborazione umana.

Per questo preferisco strumenti che aiutano lo sviluppatore
_rimuovendo_ strati, piuttosto che aggiungendone altri ( tradotto:
perche' avere un generatore che genera Hibernate, che genera mappings
che genera SQL , quando posso usare un linguaggio molto piu' vicino ai
dati ma altrettanto espressivo ( ActiveRecord nell'esempio specifico
)).

Quanto e' vero questo per andromda ? Quanto piu' questo e' vero, tanto
piu' preferei la scelta di un linguaggio diretto tipo ruby / python.
Se invece non capita mai e UML rappresenta il solo "codice sorgente" a
cui guardi, allora la scelta tra i due tool perde un po' di valore.
Dipende da quale ti permette piu' in fretta di tradurre idee in pezzi
di codice funzionante.

Per quanto dici circa il "capire i confini" e la riutilizzabilita' ...
posto che secondo me non c'e' una soluzione che vada bene per tutto,
nel caso dello specifico settore di sviluppo di applicazioni web Rails
e' veramente centrato. Puo' non essere lo strumento ideale per altri
tipi di progetti ( esempio ? ) ma e' comunque flessibile. Io l'ho
visto integrato a Flex e Ruby lo vedo piu' o meno a tutti i livelli (
da job batch , a collante per altri linguaggi,  a linguaggio embedded
in altri tool etc ).
Che tipo di cose ci dovrai fare ? Se si tratta di chiamare web
services, per me sei a casa. Se ci vuoi fare un ESB, probabilmente non
e' lo strumento ( o la filosofia ) adatta.

Mi intriga la tua soddisfazione per AndroMDA, perche' io da tool del
genere ci ho sempre e solo cavato degli insulti. Mi piacerebbe vedere
come ci si lavora e/o quanto tempo richiede lo sviluppo di una
funzionalita' qualunque, per avere un paragone.

/R.

2008/11/10 virgilio pierini <virgilio.pierini@gmail.com>:
> :)
> comunciamo con ordine
> AndroMDA si trova qui: http://www.andromda.org/ e se scorri le immagini
> presenti qui
> http://galaxy.andromda.org/docs-3.3/andromda-cartridges/andromda-spring-cartridge/howto7.html,
> qui
> http://galaxy.andromda.org/docs-3.3/andromda-cartridges/andromda-bpm4struts-cartridge/howto6.html
> e qui
> http://galaxy.andromda.org/docs-3.3/andromda-cartridges/andromda-bpm4struts-cartridge/howto3.html
> dovresti farti un'idea di come lo strumento intende la modellazione.
>
> Il punto (di forza o debolezza a seconda dei punti di vista, ma
> indubbiamente cruciale) è che si parte unicamente da un UML, in cui (a volte
> con forzature a volte con una chiarezza d'insieme invidiabile) vengono
> modellati gli oggetti del sistema, siano essi delle tabelle su db che delle
> pagine web che gli utenti che accedono.
>
> Da quello che ho capito RoR è più forte nella gestione del cambiamento;
> sulla questione dei linguaggi tipizzati proporrei un pareggio nel senso che
> (avendo sempre in mente lo scenario micro.bo e non una qualunque esigenza
> complicatissima) lo strumento riesce a "sobbarcarsi" una fetta molto ampia
> di coding e me non costa fatica se ci pensa lui ai datatype (non è per
> ignorare il problema che tu sollevi, quanto per "pesarlo" sull'applicazione
> specifica che dobbiamo sviluppare)
>
> Tornando sul punto che ci sta a cuore (sempre ansioso anche del feedback di
> altri) proverei a spostare il discorso dalla scelta dello strumento (visto
> che dovevamo partire e che su ruby eravamo completamente a zero mentre su
> andromda avevamo esperienza...) a come capire i giusti confini. Ovvero, una
> critica che muoverei ad andromda è che nella parte di frontend (web o rich
> client) è un po' farraginoso, la presenza di tante properties da settare che
> compaiono solo quando si seleziona l'oggetto UML, alcune convenzioni sul
> passaggio dei parametri etc etc mi suggerisce di stare attento. Sul fronte
> di modellazione del db, dao e servizi di business sono invece iper
> soddisfatto.
>
> Allora, visto che l'utente finale non si dovrebbe :) accorgere della
> tecnologia che sta dietro un sito web e che noi, dal prossimo anno, potremmo
> di nuovo aver bisogno di sviluppare soluzioni custom per l'operatività,
> vorrei capire se, prendiamo RoR tanto per dirne uno, esiste poi
> interoperabilità. Non posso imparare nuove tecnologie e riscrivere ogni
> volta tutto (se avessi scelto RoR e mi fossi poi scontrato con un problema
> risolto emglio da XYZ?), posso però usare appieno le possibilità che mi
> offre lo strumento e sia andromda che pentaho sono abbastanza maturi lato
> webservices...
>
> insomma, tanti pensieri, spero di non ingarbgliare troppo le acque ma mi
> piace questa fase di definizione strategica :))
>
>
> ps: ingarbugliamo ingarbugliamo... avete mai visto http://www.webratio.com?
> virgilio (&c)
>
>
>
>
>
> On Fri, Nov 7, 2008 at 12:57 AM, Riccardo Govoni ☢ <battlehorse@gmail.com>
> wrote:
>>
>> Per quanto riguarda Ruby On Rails:
>>
>> Io conosco e uso RoR, ma non ho mai fatto una mazza con AndroMDA o con
>> il model-driven basato su UML in generale. Se stai sviluppando siti
>> web che non siano esageratamente fuori dal comune, secondo me ha
>> vantaggi induscutibili, a prescindere da quale sia l'alternativa.
>> Pero' mi piacerebbe che tu mi descrivessi pregi e diffetti di AndroMDA
>> e/o il tipo di siti che vai a sviluppare per poter dare un parere un
>> po' piu' razionale.
>>
>> Quello che apprezzo di Rails e' sostanzialmente:
>> - il tempo di turnaround praticamente 0 ( fatta una modifica, voglio
>> vedere subito i risultati, a qualsiasi livello ),
>> - l'espressivita' : se sei bravo, qualunque cosa vuoi fare a) richiede
>> meno di 100 caratteri di codice e b) alla fine si legge come se fosse
>> inglese
>> - e' basato su ruby : sono abbastanza convinto che qualsiasi
>> linguaggio statically-typed ( Java ) sia la scelta _sbagliata_ per
>> lavorare sul web. E' che gli stack web, per loro intrinseca natura,
>> richiedono tanti salti tra i diversi layer, che non avere tipizzazione
>> dinamica e' un po' come spararsi nei piedi.
>>
>> Potrei partire per una guerra di religione su questi argomenti, ma mi
>> fermo qua e aspetto tuoi input.
>> Intanto, per farti un'idea di cosa vuol dire sviluppare su rails, dai
>> un'occhiata a http://railscasts.com/ . Sono i migliori esempi che
>> abbia mai visto. Sintetici e spettacolari. Pescane un po' a casaccio
>> dall'elenco.
>>
>> Per quanto riguarda i progetti pubblicati su sourceforge et similia :
>>
>> Da un po' di tempo io ospito i miei progetti praticamente solo online.
>> Ho usato Sourceforge in passato, uso Google Code hosting e
>> Assembla.com attualmente.
>>
>> A parte sourceforge, che e' un po' una schifezza ormai, secondo me
>> sono estramemente comodi. Si setuppano in 2 secondi, si imparano in
>> altri 2 e ti risparmiano il dover avere un altro sistema da gestire.
>> Ovviamente c'e' il contro che il tuo codice sorgente se ne va a spasso
>> per il mondo, cosa che non tutti potrebbero apprezzare.
>>
>> In particolare, Assembla.com e' un pratica un Trac + Svn/Git/Mercurial
>> out-of-the-box. Molto comodo, hai gli activity stream di Trac ( cosa
>> e' cambiato negli ultimi x giorni? ), hai gli hook per chiudere
>> automaticamente i ticket con gli opportuni commenti nei commit, hai il
>> wiki, ecc ...
>>
>> Google Code hosting offre piu' o meno le stesse features, con in piu'
>> il sistema piu' flessibile che abbia mai visto per la gestione degli
>> issues e la possibilita' di fare code reviews ( che a te puo' non
>> interessare ).
>>
>> /R.
>>
>> On Thu, Nov 6, 2008 at 3:39 AM, virgilio pierini
>> <virgilio.pierini@gmail.com> wrote:
>> > amici, in previsione di sabato butto qualche altro elemento nella
>> > discussione...
>> >
>> > Come descritto nella presentazione abbiamo scelto un tool MDD (model
>> > driven
>> > development) quale AndroMDA per non solo velocizzare alcune fasi di
>> > sviluppo, ma anche per mantenere una buona standardizzazione del
>> > codice/pattern/leggibilità
>> > E'  nato un interessante paragone con Ruby on Rails, sia sul tipo di
>> > approccio (banalizzando -> Rails più semplice e naturale da descrivere
>> > usando testo, UML più chiaro ma brigoso per le forzature imposte dagli
>> > strumenti) che sulla liveness della tecnologia (quanti contribuiscono a
>> > rubyonrails?) e quindi sulle prospettive di un tale investimento.
>> >
>> > Vi rinnovo la domanda: qualcuno di voi ha mai usato direttamente
>> > AndroMDA?
>> > riusciamo a creare una rete di conoscenza?
>> > E riguardo RoR, che in questo momento per noi rappresenterebbe un fermo
>> > per
>> > imparare una nuova tecnologia, sapete però se ha dei vantaggi talmente
>> > indiscutibili da motivare (nei prossimi mesei) un tale switch?
>> >
>> > Altre esperienze Model Driven ?!?! (io una volta mi ero addirittura
>> > iscritto
>> > alla newsletter di webratio ma ora farei fatica a descrivervi cosa
>> > fa!!!)
>> >
>> > cioa e grazie ancora
>> > per chi viene ci vediamo sabato
>> >
>> > Virgilio
>> >
>> >
>> >
>> > Ps: avete mai gestito progetti pubblicati su sourgceforge o 37signals?
>> > aiuta
>> > sul serio a dedicare meno ore alla gestione dell'ambiente di sviluppo
>> > (per
>> > impiegarle nella programmazione) o, su periodi di pochi mesi, la curva
>> > di
>> > apprendimento annulla i benefici?
>> >
>> > Ps2: chi fa presentazioni all'imolug usando RoR è moralmente obbligato a
>> > rispondermi su RoR :)
>> >
>> >
>> >
>> >
>> > --
>> > Mailing list info: http://lists.linux.it/listinfo/imolug
>> >
>> >
>> >
>> --
>> Mailing list info: http://lists.linux.it/listinfo/imolug
>>
>
>
> --
> Mailing list info: http://lists.linux.it/listinfo/imolug
>
>
>


Maggiori informazioni sulla lista ImoLUG