Com\’è dura la professione!

11 maggio 2006

Java vs Ruby (J2EE vs RubyOnRails)

Filed under: Java,RubyOnRails — lbell @ 21:32

La filosofia di Ruby e Java e' opposta ed i loro framework più famosi (Rails e J2EE se e' corretto confrontarli dal punto di vista operativo) lo testimoniano. In Java ogni energia e' dedicata a gestire la vita degli oggetti di base di cui si occupa a partire dall'infrastruttura, alla sicurezza, all'autenticazione, al deployment. Java costruisce una architettura di tipo enterprise in cui si può pensare, rispettando una serie interminabile di specifiche, di rendere indipendenti e sostituibili gli ambienti di produzione di un componente da quello di installazione e di funzionamento tanto da lasciar utilizzare diversi compilatori e application server anche se la pratica dice che le cose non sono mai così semplici. Il prezzo di questo meccanismo e' la presenza di una quantità di files di configurazione che diventano un incubo da controllare e manutenere e l'uso obbligatorio di IDE o strumenti di automazione dei dettagli delle fasi di configurazione dei componenti. Con J2EE assume importanza la figura dell'integratore di sistemi il cui scopo e' di configurare e legare fra loro i vari componenti.

La configurazione e' quanto più possibile separata dagli oggetti su cui deve operare e cio' ha una sua importanza in termini di complessità. RoR al contrario sembra fatto apposta per costruire programmi in modo veloce. E' pieno di convenzioni di tutti i tipi e la configurazione viene posta quanto più vicino possibile agli oggetti.

Le relazioni fra i models vengono vengono inserite non in un file di configurazione in balia dell'integratore, ma nei models stessi. Ogni aspetto del framework e' pienamente configurabile ma e' tutto studiato per intervenire il meno possibile, utilizzando generatori di codice e convenzioni basate su corrispondenze tra nomi delle classi e degli oggetti su database e files.

Le due filosofie di base sono cosi' diverse da far ritenere i due ambienti come complementari. A Ruby probabilmente manca un ambiente di tipo enterprise, con tutto quello che comporta (transazioni distribuite ecc. ) con varie funzionalità che Java e .Net hanno acquisito con il tempo e con uno sforzo di design non indifferente. Un ambiente di questo tipo tuttavia spesso non e' indispensabile nel caso di siti di dimensioni medio-piccoli in cui quello che conta e' minimizzare il tempo di sviluppo e di consegna. Un punto a favore di Ruby e' che la sua concisione aiuta il programmatore a fare meno sforzi mnemonici nel ricordare i dettagli degli oggetti su cui lavora, di contro le trappole tese dalle numerose convenzioni utilizzate, sono insidiose.

Lascia un commento »

Non c'è ancora nessun commento.

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.

%d blogger cliccano Mi Piace per questo: