Django vs RoR (.... eccone un altro... )

15 visualizzazioni
Passa al primo messaggio da leggere

Maurizio Totti

da leggere,
12 ago 2011, 03:30:1912/08/11
a djan...@googlegroups.com
Ciao a tutti,
so che queste sono le classiche mail che non si dovrebbero mai mandare
in una mailing list a tema per evitare inutili flame, e vi assicuro
che mi sto già cospargendo la testa di cenere :-)
Devo dire che d'altra parte non saprei proprio dove fare questa
domanda (confesso che ne farò una uguale anche nella lista Ruby,
quindi pure crossposting .... ahi :-/ ).
Insomma è da un po' che tento di fare una scelta (personale, ma da
condividere magari anche qui dove lavoro) se "puntare" più
sull'accoppiata Python+Django piuttosto che su Ruby+RoR. Un tempo un
amico mi disse che il confronto era tra due linguaggi con un lustro di
vantaggio (e maturità anche della community) di uno sull'altro, mentre
per i framework si poteva fare una discorso simile ma al contrario
(non 5 anni ovviamente). Non so se questo sia ancora un'affermazione
valida.

E' da un po' che seguo questa lista o so essere animata da persone con
una discreta "onestà intellettuale" e sarei veramente contento ci
conoscere la vostra opinione a riguardo.
Immagino che qui si propenda nettamente per la prima coppia, ad ogni
modo quanto mi potrete dire sarà per me prezioso.

Scusate ancora per il massacro che ho fatto delle buone regole che si
dovrebbero seguire in una ML :-)

Grazie mille ed a presto,
--
Maurizio Totti

Giuseppe Caruso

da leggere,
12 ago 2011, 04:12:3212/08/11
a djan...@googlegroups.com

so che queste sono le classiche mail che non si dovrebbero mai mandare
in una mailing list a tema per evitare inutili flame, e vi assicuro
che mi sto già cospargendo la testa di cenere :-)
Devo dire che d'altra parte non saprei proprio dove fare questa
domanda (confesso che ne farò una uguale anche nella lista Ruby,
quindi pure crossposting .... ahi :-/ ).
A parte che questo è "cross-trolling"… :D LOL, scherzo.
Domandare è sempre lecito e rispondere in modo obiettivo dovrebbe essere dovere di ogni sviluppatore degno di questo nome.

Insomma è da un po' che tento di fare una scelta (personale, ma da
condividere magari anche qui dove lavoro) se "puntare" più
sull'accoppiata Python+Django piuttosto che su Ruby+RoR. Un tempo un
amico mi disse che il confronto era tra due linguaggi con un lustro di
vantaggio (e maturità anche della community) di uno sull'altro, mentre
per i framework si poteva fare una discorso simile ma al contrario
(non 5 anni ovviamente). Non so se questo sia ancora un'affermazione
valida.
Parti dal presupposto che penso sia importante nel nostro lavoro essere *poliglotti*, per cui diventare estremisti di un linguaggio piuttosto che di un altro lo trovo ridicolo.
Le differenze principali, a mio avviso, tra Ruby e Python è che il primo è maggiormente criptico e, come loro stessi dicono, troppo *magic* per me. Per magic si intende il fatto che esistono scorciatoie sintattiche (syntactic sugar) che possono rendere il linguaggio un po' oscuro a chi non lo conosce bene. È, in pratica, poco esplicito, e leggere il codice di qualcun altro, con uno stile di scrittura totalmente diverso dal tuo, richiede una buona conoscenza del linguaggio, perchè possa essere facilmente compreso.
In pratica puoi fare la stessa cosa in mille modi diversi. A parte questo, il linguaggio è meno veloce di Python.
Python, dal canto suo, è, quanto meno per me, un linguaggio estremamente chiaro, comprensibile, eplicito (tanto per, avvia python nel terminale e digita "import this" senza virgolette per comprenderne la "filosofia"). Chiunque legga del codice python è capace di comprenderlo (a patto di conoscere il linguaggio…) perchè la sua sintassi è chiara e comprensibile (anche per me…). Python è molto, molto veloce. Molte delle funzioni che accompagnano le (infinite) librerie presenti nativamente in python sono scritte in C, aumentandone notevolemente la velocità di esecuzione per non parlare del fatto che python crea dei file precompilati (.pyc) per snellirne l'esecuzione in runtime.
Trovi, infine, librerie per tutti i tipi di applicazioni che potessero venirti in mente (davvero).
La principale differenza di sensazione tra i due, poi, è che Ruby ha un migliore marketing, migliori grafici e sembra più cool. :D

Personalemente, poi, ho scelto Django rispetto a Rails per la flessibilità e la filosofia su cui è basato il framework. Mentre Rails, infatti, ti costringe (almeno al primo acchitto) a usare "convenzioni rispetto alle configurazioni" per cui hai percorsi abbastanza riconoscibili negli indirizzi (e.g. tipo /model/azione/ per cui /cliente/new/) in Django sei tu che hai "completo" controllo sul percorso della tua applicazione (e.g. potresti avere qualcosa tipo /gestione/anagrafica/crea-nuovo/cliente/ ).
Aldilà di questo, diciamocelo, la funzione di admin ti farà risparmiare "incredibili quantità di tempo" nella creazioni di interfacce crud per i tuoi clienti finali (ovviamente per le interfacce riservate al tuo cliente, per le interfacce pubbliche di applicazioni te le "dovresti" creare tu) e non dimentichiamo che noi, alla fine della giornata, vendiamo "tempo e conoscenza".

Un'ultima considerazione. Essendo Django nato in un ambiente editoriale, si diceva fosse utile soprattutto (alcuni dicevano *del tutto*) per la gestione dei contenuti mentre Rails fosse migliore nella creazione di applicazioni e servizi… ovviamente niente di più errato (per entrambi).
Con Django (e con Rails) ci fai di tutto. Ma tutto tutto. Period.


E' da un po' che seguo questa lista o so essere animata da persone con
una discreta "onestà intellettuale" e sarei veramente contento ci
conoscere la vostra opinione a riguardo.
Immagino che qui si propenda nettamente per la prima coppia, ad ogni
modo quanto mi potrete dire sarà per me prezioso.
Proprio questa, infine, è una delle maggiori motivazioni che mi hanno fatto scegliere Django, la sua comunità internazionale e, soprattutto, quella Italiana.
Tutti gli iscritti a questo gruppo, sono persone preparate. Anzi, estremamente preparate e cortesi. Non importa quanto banale, ripetuta, scontata, sia la domanda: otterrai sempre risposta. Certo, qualcuno ti indicherà la sezione del (dell'ottimo manuale) manuale a cui fare riferimento ma se ciò dovesse accadere sarà stata colpa tua: bisogna spendere sempre 3 minuti su manuale e due minuti su Google prima di chiedere. Io la chiamo la regola dei 5 minuti. :)


Scusate ancora per il massacro che ho fatto delle buone regole che si
dovrebbero seguire in una ML :-)
Se esistessero "certe" regole, sarebbero sbagliate. Una mailing list, come qualsiasi altro luogo di discussione, *dovrebbe* essere aperta al dialogo e al confronto.
Se tutti usassero questa, di regola, si vivrebbe in un luogo migliore. :)

Spero di averti aiutato nella scelta del framework più adatto alle tue esigenze e personalità. Puoi scaricarlo da qui. ;)

Maurizio Totti

da leggere,
12 ago 2011, 04:26:4512/08/11
a djan...@googlegroups.com
Il 12 agosto 2011 10:12, Giuseppe Caruso <peppe...@gmail.com> ha scritto:
>
> A parte che questo è "cross-trolling"… :D LOL, scherzo.
Ach! Credo di essermela voluta :-)
Grazie mille!

--
Maurizio Totti

Rispondi a tutti
Rispondi all'autore
Inoltra
0 nuovi messaggi