PDA

View Full Version : django vs ruby on rails


gagginaspinnata
01-12-2011, 12:13
Dopo aver ormai esplorato ogni minima parte di php ho deciso che era ora di imparare qualcosa di nuovo.

Non tanto per necessità pure, ma sopratutto per curiosità e per voglia di imparare cose nuove.

Sono 10 giorni che mi documento e leggo su django e ror per capire quale dei due framework (e ovviamente linguaggi relativi) si adatta meglio alle mie esigenze.

Ho provato a smanettare con entrambi ed ho notato due cose:

-l'organizzazione del framework di ror mi piace di più
-il python però come linguaggio mi piace di più, lo trovo più intuitivo

Ora, partendo dal presupposto che conosco tanto (poco) di ruby quanto di python cosa dovrei fare?

Sono arrivato alla conclusione che i due framework sono equivalenti, e che dovrei scegliere in base a quello che mi piace di più.

Ma come dicevo sopra mi piace di più ror come framework ma come linguaggio python :mc:

Avete qualche consiglio?

PS
Non ho inserito il tag nel titolo perchè non sapevo se mettere python o ruby

banryu79
01-12-2011, 13:17
Se io mi trovassi in una situazione simile alla tua penso che farei la mia scelta pigliando l'opzione che comprende il linguaggio che tra i due preferisco.

cdimauro
01-12-2011, 13:50
Infatti. Il mio consiglio del tutto disinteressato è di passare a Django e, ovviamente, Python. :O

Tra l'altro Python ha parecchie librerie, anche di terze parti, per cui ti potrebbe essere molto utile anche in altri ambiti. :cool:

ashram
02-12-2011, 14:00
Sono nella tua stessa situazione da mesi ormai...
Python mi piace molto più di ruby come linguaggio ma Ruby on Rails lo preferisco 10 volte rispetto a Django per questi aspetti :

- alberatura progetto razionale e completa
- generatori da linea di comando semplici per creare uno scheletro di base di ogni modello/controller/vista
- crud istantaneo
- non è necessario importare niente,in Django troppo
- migrazioni incluse senza l'uso di moduli ad hoc (South per Django)
- passaggio di variabili tra controller e vista molto più razionale e sensato
- concetto di MVC più "strict" a mio parere.L'MTV di django anche se sostengono il contrario lo vedo abbastanza lontano
- molti più libri e hype in generale (basta vedere stackoverflow)

Quello che invece mi piace di più in Django :

- admin inarrivabile anche se difficilmente modificabile a fondo (rails_admin inizia vagamente ad avvicinarsi)
- velocità elevata..pure in locale si vede la differenza
- molto più windows friendly di ruby/rails...e se provi a installare il supporto mysql per rails 3.1 sai di cosa sto parlando
- documentazione originale completa ed esaustiva
- supporto incluso a molti modelli e validazioni come upload di file, validazioni di email,carte di credito etc etc in rails sono tutti gemme esterne come paperclip

gagginaspinnata
03-12-2011, 13:41
Sono nella tua stessa situazione da mesi ormai...
Python mi piace molto più di ruby come linguaggio ma Ruby on Rails lo preferisco 10 volte rispetto a Django per questi aspetti :

- alberatura progetto razionale e completa
- generatori da linea di comando semplici per creare uno scheletro di base di ogni modello/controller/vista
- crud istantaneo
- non è necessario importare niente,in Django troppo
- migrazioni incluse senza l'uso di moduli ad hoc (South per Django)
- passaggio di variabili tra controller e vista molto più razionale e sensato
- concetto di MVC più "strict" a mio parere.L'MTV di django anche se sostengono il contrario lo vedo abbastanza lontano
- molti più libri e hype in generale (basta vedere stackoverflow)

Quello che invece mi piace di più in Django :

- admin inarrivabile anche se difficilmente modificabile a fondo (rails_admin inizia vagamente ad avvicinarsi)
- velocità elevata..pure in locale si vede la differenza
- molto più windows friendly di ruby/rails...e se provi a installare il supporto mysql per rails 3.1 sai di cosa sto parlando
- documentazione originale completa ed esaustiva
- supporto incluso a molti modelli e validazioni come upload di file, validazioni di email,carte di credito etc etc in rails sono tutti gemme esterne come paperclip

Concordo su tutto!
Diciamo che hai colpito tutti i pregi e difetti che anche io ho notato.

Aggiungo solo una cosa a favore di django:
Dovendo usare python in django per forza di cose prenderai dimestichezza con esso. E siccome, da quello che leggo, in ambiente desktop python è molto meglio di ruby si potrebbe sfruttare un domani la conoscenza di python per sviluppare applicazioni desktop (e non web).

Di rails mi piace molto la struttura delle app e la sua maggiore automatizzazione per la creazione di modelli ecc.

D'altro canto il python come linguaggio lo trovo più bello e intuitivo.

E' una dura lotta :mc:

Aggiungo infine che, almeno per quanto mi sembra di capire, in giro c'è molta più gente che usa rails. Questo significa che ci sono molte più guide e/o tutorial e una comunità più grande.

Quest'ultimo aspetto è solo una mia impressione oppure è veramente cosi?

ashram
05-12-2011, 08:09
Purtroppo è veramente così.

Paradossalmente con rails è facilissimo iniziare a creare qualcosa di basico come un semplice CRUD ma difficilissimo creare siti avanzati ( basta vedere che casino anche solo per incorporare una autenticazione con authlogic , devise et similia) mentre con Django è difficile creare cose basic ma molto più alla portata creare qualcosa di più complesso.

Sembra quasi che gli sviluppatori di Rails (seguendo un po' la "fede" di ruby) vogliano dirti "non è necessario capire cosa stai facendo e perchè l'importante è il risultato.

Filosofia opposta a Django che mira rendendoti tutto esplicito, import compresi , più consapevole di cosa stai facendo...difficoltà inclusa soprattutto se non sei molto avvezzo al python. Solo a me dopo aver visto Rails la meccanica del render_to_response per passare variabili tra view e template sembra una cosa terrificante ?

gagginaspinnata
05-12-2011, 21:43
Solo a me dopo aver visto Rails la meccanica del render_to_response per passare variabili tra view e template sembra una cosa terrificante ?

No, non solo a te.

Anche io ho notato questa differenza.

In rails il controller carica automaticamente la vista in base al nome del controller. Ed è una cosa molto intelligente.

In django invece devi ogni volta specificare la vista (template) e i dati da passare.

Sto smanettando con tutti e due da diversi giorni ed anche io ho notato la differenza concettuale tra i due.
I django ci sono troppi import ed a volte ne dimentichi uno. Però d'altro canto sono sempre più consapevole di quello che accade.

ashram
06-12-2011, 09:36
Verissimo...editor come pycharm alleviano la rottura però :)