Secondo me ci sono delle riflessioni da fare su questa pletora di ambienti Railsish.
Anzitutto è la dimostrazione che le buone idee si diffondono in fretta ;) ma c’è anche da riflettere che in effetti non si tratta di un sistema rivoluzionario (Seaside2, ad esempio) è più un insieme evoluzionario di buone pratiche, c’è da chiedersi perché ancora nessuno si fosse reso conto di come usarle.
Secondariamente, anche se capisco che la gente possa avere dei motivi per voler fare pseudoporting di Rails su altri linguaggi/piattaforme, dubito che essi possano essere alla pari in molti casi.
Ad esempio, rails ha un meccanismo molto simpatico che è quello dei breakpoint, ovvero il codice in esecuzione può venire interrotto, collegato ad una console interattiva dove si può cambiare qualcosa ed è poi possibile riprendere dallo stesso punto. La stessa console è anche disponibile per un po di sano hack da console “al volo”.
Il meccanismo è basato su funzionalità disponibili in Ruby (callcc per la manipolazione di continuazioni, set_trace_func per impostare una funzione globale di tracing e gli oggetti di classe Binding, che rappresentano uno scope, sostanzialmente) che possono essere piuttosto complessi da emulare in altri ambienti/linguaggi.
Lo stesso dicasi per il corposo pacchetto di DSL che ci sono dentro Rails. Probabilmente questi sono implementabili, ma difficilmente possono raggiungere l’espressività permessa da Ruby
(non sono un fan di Ruby come “piattaforma”, ma è un bel linguaggio)
unico mio dubbio è che la cosa che non viene (quasi) mai detta è che ruby (almeno nella sua incarnazione on rails) ti ammazza la macchina :( Dubito quindi che si possa mettere su un server di produzione che deve macinare milioni di pageview/giorno… cmq appena ho tempo voglio dare un occhio a cake
è Rails che ammzza la macchina. E ti dirò di più, secondo me lo fa per iperingegnerizzazione, ci son parti altamente snellibili, solo che se ne fregano quasi tutti perché tanto ha un buon sistema di caching, specie in accoppiata con memcached.
Ruby nei miei test è più veloce di php5, specie nel codice OO, anche se non è neanche lontanamente comparabile a piattaforme come VisualWorks o AllegroCL (restando nell’ambito dei linguaggi dinamici), si parla di un paio di ordini di grandezza.
3 replies on “*-on-rails”
Secondo me ci sono delle riflessioni da fare su questa pletora di ambienti Railsish.
Anzitutto è la dimostrazione che le buone idee si diffondono in fretta ;) ma c’è anche da riflettere che in effetti non si tratta di un sistema rivoluzionario (Seaside2, ad esempio) è più un insieme evoluzionario di buone pratiche, c’è da chiedersi perché ancora nessuno si fosse reso conto di come usarle.
Secondariamente, anche se capisco che la gente possa avere dei motivi per voler fare pseudoporting di Rails su altri linguaggi/piattaforme, dubito che essi possano essere alla pari in molti casi.
Ad esempio, rails ha un meccanismo molto simpatico che è quello dei breakpoint, ovvero il codice in esecuzione può venire interrotto, collegato ad una console interattiva dove si può cambiare qualcosa ed è poi possibile riprendere dallo stesso punto. La stessa console è anche disponibile per un po di sano hack da console “al volo”.
Il meccanismo è basato su funzionalità disponibili in Ruby (callcc per la manipolazione di continuazioni, set_trace_func per impostare una funzione globale di tracing e gli oggetti di classe Binding, che rappresentano uno scope, sostanzialmente) che possono essere piuttosto complessi da emulare in altri ambienti/linguaggi.
Lo stesso dicasi per il corposo pacchetto di DSL che ci sono dentro Rails. Probabilmente questi sono implementabili, ma difficilmente possono raggiungere l’espressività permessa da Ruby
(non sono un fan di Ruby come “piattaforma”, ma è un bel linguaggio)
unico mio dubbio è che la cosa che non viene (quasi) mai detta è che ruby (almeno nella sua incarnazione on rails) ti ammazza la macchina :( Dubito quindi che si possa mettere su un server di produzione che deve macinare milioni di pageview/giorno… cmq appena ho tempo voglio dare un occhio a cake
è Rails che ammzza la macchina. E ti dirò di più, secondo me lo fa per iperingegnerizzazione, ci son parti altamente snellibili, solo che se ne fregano quasi tutti perché tanto ha un buon sistema di caching, specie in accoppiata con memcached.
Ruby nei miei test è più veloce di php5, specie nel codice OO, anche se non è neanche lontanamente comparabile a piattaforme come VisualWorks o AllegroCL (restando nell’ambito dei linguaggi dinamici), si parla di un paio di ordini di grandezza.