Panoramica IDE per Ruby e Rails

Per chi sviluppa in Ruby on Rails è possibile scegliere fra differenti IDE da utilizzare durante tutta la fase di sviluppo. In questo articolo vengono elencate le IDE per Ruby on Rails attualmente disponibili, cercando di individuare per ognuna i punti di forza e di debolezza. Sono stati prese in esame sia soluzioni Open Source che proprietarie.

Sommario

1. Ruby on Rails IDE: Caratteristiche comuni

Differentemente da un editor di testo un IDE di norma facilita lo sviluppo della propria applicazione rendendo automatiche o facilmente attivabili alcune operazioni di routine specifiche per un linguaggio o per un framework.
IDE per Ruby on Rails - Programmazione assistitaTutte le IDE che andremo a scoprire di seguito hanno alcune caratteristiche in comune:

Colorazione del codice - La lettura del codice scritto nel linguaggio Ruby o in Rails viene facilitato dalla colorazione del codice che mette in evidenza parole chiave e costrutti. Nel caso di Rails è importante oltre alla colorazione del codice Ruby anche la colorazione del codice ERB (il linguaggio di template per la generazione di pagine HTML compreso in Rails) che intervalla codice HTML a codice Ruby.

Generazione assistita di modelli, controller e altre componenti dell’applicazione - Rails offre una serie di script per la generazione automatica del codice; quando ad esempio di crea un nuovo modello con il comando ruby script/generate model Thing… vengono creati file di migration, del modello, delle fixtures e di unit test abbinati a quel modello. Le IDE che andiamo a prendere in considerazione rendono accessibili script di questo tipo tramite interfaccia grafica, rendendo le operazioni più agevoli se non si ha molta dimestichezza con i parametri messi a disposizione.

Esecuzione assistita di task - Ogni progetto Rails ha un numero di task che svolgono determinati compiti (creazione del database, esecuzione dei test, pulizia dei file temporanei, deploy automatizzati). Le IDE che abbiamo preso in esame permettono di avviare queste procedure automatizzate per mezzo di comodi menu a tendina da cui è possibile raggiungere il task desiderato.

Navigazione semplificata del codice - Esiste un legame molto stretto fra controller e relative viste, e fra controller, modelli e view e relativi test. Le IDE prese in considerazione danno la possibilità di navigare il codice utilizzando queste logiche così da avere un percorso agevolato nella scrittura del codice.

Integrazione SCM - Tutte le IDE prese in considerazione offrono, direttamente o tramite l’installazione di plugin dedicati, l’integrazione con gli SCM più diffusi quali SVN, GIT, Preforce. L’utilizzo degli SCM è considerato fondamentale in ogni team di sviluppo moderno e la presenza di simili strumenti è quindi una caratteristica cruciale nella scelta IDE da adottare.

Tutte le IDE per Ruby e Rails prese in esame si sono rivelate stabili e sufficientemente veloci da non compromettere la normale interazione fra lo sviluppatore e il proprio codice, anche se sicuramente non raggiungono i livelli di velocità degli editor per Ruby e Rails di testo che non hanno la pretesa di offrire un’interfaccia grafica per qualsiasi operazione si voglia fare.

2. Netbeans

Netbeans offre pieno supporto a Ruby e Rails dalla versione 6.0. Una delle particolarità più interessanti è la possibilità di scrivere codice utilizzando jRuby, l’implementazione in Java di Ruby, e di utilizzare un web server integrato nella IDE per avere l’applicazione Web in esecuzione in ambiente Java. Ottima anche la funzione di completamento automatico del codice e di individuazione degli errori, funzioni che utilizzano proprio il rapporto privilegiato che Netbeans ha con jRuby. Peri programmatori più esigenti inoltre è possibile attivare il debugger sia su script Ruby che su progetti Rails.

NetBeans è una piattforma estendibile, ed è possibile aggiunge funzionalità installando plugin. Il supporto per Ruby e Rails è fornito come plugin che può essere installato su richiesta anche su una installazione di NetBeans esistente, e d’altro canto è possibile aggiungere nuove funzionalità alla propria installazione di NetBeans per Ruby.

Leggi articolo su Netbeans 6 e Rails oppure Scarica NetBeans dal sito ufficiale.

3. Aptana / RadRails

RadRails è stata la prima IDE apparsa sul mercato esplicitamente dedicarta a Rails, ed è stata poi incorporata nel progetto Aptana che comprende IDE per HTML/CSS, Python, PHP, JavaScript, puntando ad essere una IDE completa per lo sviluppo Web. Si tratta di una estensione di Eclipse, molto diffusa fra gli sviluppatori Java.

Aptana offre tutte le funzionalità base descritte in precedenza è può essere estesa tramite i plugin sviluppati per la piattaforma Eclipse. Per un programmatore che abbia già buona confidenza con Ecplise l’uitlizzo di Aptana per Rails potrebbe essere la soluzione ideale per evitare di dover cambiare del tutto il proprio ambiente di lavoro.

Scarica Aptana dal sito ufficiale.

4. 3rdRail

3rdRail è una delle due soluzioni commerciali prese in esame. 3rd Rails si distingue per la presenza di widzard che accompagnano il programmatore nella stesura del codice ma è a oggi una soluzioni sconsigliata; viste le vicissitudini legate a Borland e Code Gear sembra non essere certo lo sviluppo e il supporto nel tempo per questa piattaforma.

3rdRail come detto è una soluzione commerciale; è stata comunque sviluppata sulla piattaforma Eclipse e il suo utilizzo non dovrebbe quindi essere problematico per chi ha dimestichezza con questa piattaforma.

Accedi al sito ufficiale di 3rdRail

5. JetBrains RubyMine

RubyMine è da poco disponibile nella versione 1.0 ed espone alcune caratteristiche che la pongono come IDE di prima qualità. Il completamento del codice e in generale la gestione di progetti Ruby e Rails risulta essere particolarmente rapida e leggera, senza appesantire troppo la memoria del computer e offrendo risposte agli utenti istantanee. RubyMine vanta un’integrazione con jRuby molto vicina a quella presentata da NetBeans, cosa che rende questa IDE particolarmente adatta per lo sviluppo di soluzioni basate su jRuby e jRuby on Rails.

L’ambiente offerto dalla soluzione di JetBrains è in generale confortevole anche nelle operazioni meno comune. La piattaforma IntellJ si dimostra decisamente flessibile e all’altezza delle aspettative.

Accedi al sito ufficiale di RubyMine.

Tempo di passare a Ruby 1.9

Che il passaggio da Ruby 1.8 a Ruby 1.9 non sarebbe stato immediato era qualcosa di dato per scontato; alcune delle differenze fra le due versioni si ripercuotono sul corretto funzionamento di alcune librerie e l’aggiornamento della moltitudine di applicazioni che utilizzano Ruby 1.8 (soprattutto applicazioni basate su Rails) stenta a manifestarsi per il sano principio per cui se qualcosa funziona, non bisogna provare ad aggiustarlo.

La nuova versione di Ruby offre però alcuni ottimi motivi per essere presa in considerazione:

A tutto questo si aggiunge la comparsa di buona documentazione sia on line sia in forma cartacea.

Se l’upgrade a Ruby 1.9 per progetti già realizzati può essere quindi non conveniente,l’adozione di Ruby 1.9 per i nuovi progetti in sviluppo potrebbe a lungo andare essere la soluzione ideale.

Tanto sui server quanto sulle workstation è possibile installare le due versioni di Ruby - Ruby 1.8 e Ruby 1.9 - da utilizzare in parallelo, quindi perché non iniziare ad utilizzarlo?

Wikipedia usa Ruby e cerca rubisti

Wikipedia e RubyHampton Catlin - rubista di nota fama per progetti quali Haml,  Sass e make_resourceful - è stato assunto da Wikipedia per realizzare la versione mobile dell’enciclopedia libera. Nello spirito che contraddistingue Wikipedia (che ricordiamo rende disponibili sotto licenze open le pagine redatte dalla community e la piattaforma per gestirle) anche questa applicazione web è disponibile al download e tutti possono contruibuire alla sua realizzazione. Negli intenti l’applicazione è composta da Merb con qualche script dedicato; si pressupone quindi un prossimo passaggio a Rails non appena la fusione fra Merb e Rails sarà completata.

Se possedete buona dimestichezza con le applicazioni web per mobile, ottime conoscenze di Ruby e molto tempo libero potete unirvi alla scrittura di quest’applicazione prelevando il codice del progetto e iniziando subito a lavorare.

Merb e Rails si fondono

Ruby on Rails accoglie il core development team di Merb. Dopo il rilascio della versione 2.3 di Rails gli sforzi di entrambi i gruppi saranno coordinati nell’integrazione di Merb in Rails, che produrrà Ruby on Rails 3.0.

Buon anno; anzi ottimo :)

Link

Rails & Replicated database environment

technoweenie ha rilasciaro un plugin per Rails che permette di configurare con facilità le connessioni verso i database in queste situazioni. Il plugin, disponibile presso github, sostituisce l’oggetto connection di ActiveRecord con ConnectionProxy, che si occupa di gestire le connessioni ai database configurati in modalità Master / slave.
Continua »

Rails 2.2.2 finalmente rilasciato

Rails - framework Ruby

L’attesa nuova versione di Rails è stata finalmente rilasciata. Attualmente le gemme della nuova versione si stanno propagando per i server; per procedere all’installazione basta digitare il classico ruby gem install.

Questa versione è particolarmente importante perché aggiunge alcune delle caratteristiche al framework che sono sempre state desiderate da alcuni utenti:

Rails 3.0

Con il rilascio della versione 2.2.2, lo sviluppo procede ora verso la versione 3.0 di Rails. Come si addice ad una major release sarà possibile imbattersi in problemi di incompatibilità e procedure di migrazione delle vecchie applicazioni scritte in Ruby on Rails.

Aggiornare Rubygem alla versione 1.3.x

Rubygem ha raggiunto la versione 1.3; richiedendo l’aggiornamento con il classico comando gem update --system utilizzando la versione 1.2.x si ottiene come risposta un laconico Nothing to update.

Per procedere al corretto aggiornamento è necessario digitare il comando:

$ gem install rubygems-update
Successfully installed rubygems-update-1.3.1
1 gem installed

e quindi

$ update_rubygems

Ora Rubygem è aggiornato correttamente:

$ gem -v
1.3.1

thor: task remoti in Ruby

thor rubyPer tutti coloro che utilizzato Ruby, rake è un tool usato quotidianamente. rake nasce per fare le veci del comando make per l’esecuzione di task ripetitivi; si prepara un task utilizzando il DSL di rake, che può invocare tanto metodi Ruby quanto comandi di sistema, e si ha a disposizione una “ricetta” da utilizzare all’occorrenza. Utilizzando Ruby on Rails si ha a che fare quotidianamente con rake per la gestione del database, dei file temporanei, della cache e così via.

thor cerca di migliorare le funzionalità già offerte da rake dando la possibilità di eseguire task remoti (ad esempio conservati in un repository), migliorando il supporto per i parametri da riga di comando e offrendo un sistema di mapping parametri da riga di comando / metodi decisamente più chiaro di quello offerto da rake. Nell’ultima release thor offre anche il supporto a rspec per scrivere test che controllino il corretto funzionamento dei task.

Anche se il progetto è molto giovane offre degli spunti decisamente interessanti; difficilmente thor sarà in grado di sostituire l’onnipresente e il robusto rake, ma è sicuramente in grado di dimostrarsi un valido strumento per la distribuzione di task automatizzati.

Per installare thor è sufficiente eseguire sudo gem install thor da riga di comando; il progetto è open source e raggiungibile a questo indirizzo.

Clustering trasparente di jRuby con Terracotta

jRuby, l’implementazione di Ruby su piattaforma Java, riesce a sorprendere con una soluzione decisamente interessante per la distribuzione di workers a memoria condivisa.

Il concetto che sta alla base della soluzione è che più istanze di jRuby possano condividere oggetti in maniera trasparente e transazionale; in questo modo le differenti istanze possono lavorare condividendo gli stessi oggetti pur essendo distribuiti su ambienti differenti. L’idea apparsa sulla mailing list di jRuby e’ stata implementata da Fabio Kung che l’ha documentata in questo video.

JRuby + Nailgun and JRuby + Terracotta

Framework MVC in ASP.NET di Microsoft

Sono tornato dopo qualche mese alla pagina ufficiale del progetto ASP.NET MVC, un framework realizzato con tecnologia .NET per la realizzazione di applicazioni web secondo il modello MVC. La sensazione che ebbi era di un progetto decisamente in ritardo che cercava di inseguire concetti e tecnologie consolidate in altri ambienti da quattro anni (pattern MVC, convention over configuration, generazione del codice… ricorda qualcosa?) e una generale immaturità del framework, ancora in fase di sviluppo.
Continua »

keep looking »