On 11/16/06, Luigi P. [email protected] wrote:
imho rails non è semplice. non certo perchè abbia regole difficili da
apprendere, complesse o incoerenti ma perchè 1) si basa su un modello
(activerecord ed mvc), che (semplifica certo la vita) non è banale, 2)
mette insieme molte tecnologie: web, db, template, ajax, etc.
Ragazzi, ma siamo programmatori, non salumieri (senza avere nulla
contro i salumieri, solo non sono programmatori – non male come
affermazione, salvo che potrebbe esistere almeno un salumiere
programmatore).
Voglio dire io mi aspetto che sapere cosa sia il paradigma MVC sia
nelle conoscenze (almeno teoriche) di chi si vende come programmatore.
E’ una cosa che a me e’ sempre venuta abbastanza intuitiva e quando
l’ho visto teorizzato ho detto: “emminghia”.
Certo, a programmazione 1 in universita’ si vedono quelli che
consegnano i progetti con delle funzioni che fanno tutto, calcolo e
stampa valori. Ma e’ programmazione 1 (e io li boccerei comunque).
Alla fine capiscono che devono fare fare una cosa per funzione. Che
diventa una cosa per oggetto (Single Responsibility Principle). E qui
in pratica abbiamo gia’ MVC. Un oggetto che modellizza i dati, uno che
controlla l’interazione con l’utente e uno che e’ in grado di
presentare i dati (eventualmente piu’ oggetti per presentarli, visto
che abbiamo schermo, carta, eventualmente diverse visualizzazioni).
Non mi pare una cosa esoterica insomma. E quindi non vedo in quello la
complessita’ di Rails. IMHO e’ molto piu’ complesso buttare tutto in
unico PHP e poi debuggare il casino. Quello si che e’ complesso.
Non solo, ma ActiveRecord entro certi limiti ti risparmia anche dalla
conoscenza in dettaglio di come implementare integrita’ referenziale e
tutto (certo, sapendolo si vive meglio… ma anche li, mi aspetto che
chi utilizzi i db sappia come funzionino).
Tutto ciò è difficile da imparare a prescindere dal linguaggio.
Ma e’ necessario. E’ una cosa che chi si vende come programmatore
dovrebbe conoscere. Il tempo di
GOTO 20
e’ passato da un po’.
Non sono daccordo sul criterio dell’esperienza (sennò pure unlambda
[1] può essere facile per uno molto esperto). Io guarderei al numero
di regole che il linguaggio definisce ed alla loro “coerenza”, e Ruby
mi pare che stia messo bene da questo punto di vista.
Voglio dire… Prolog ha una manciata di regole. Per dire
un’interprete Prolog in Prolog lo scrivi con un pugno di righe (e
questo ti da l’idea delle regole che vanno capite). Ma non direi che
programmare in Prolog e’ facile di per se. Per lo meno programmare
decentemente in Prolog. Io programmo in Prolog, ma complessivamente lo
faccio da schifo.
Haskell per me non e’ stato particolarmente facile da imparare (e lo
sto tutt’ora imparando). Ma suppongo che per programmatore ML esperto
non sia difficile (anche se diverso).
Io Ruby lo ho imparato in tre giorni (ma conoscevo Python e anche Perl).
Python ci ho messo diciamo due settimane stando larghi. Imparando
mentre scrivevo del codice. E credo sia il linguaggio piu’ facile che
ho visto.
Ovviamente ricordiamoci di paragonare linguaggi a parità di feature
espresse. PHP dicono che è facile perchè tutti pensano ad un sorgente
php stile BASIC, ma se lo si prende con la sua crescente estensione
OO, allora è pieno di regolette anche lui.
Infatti. Con la differenza che e’ pure un linguaggio che ti limita in
mille modi. Poi se si vuole ridere si puo’ chiedere agli sviluppatori
del PHP di Zend se le classi sono o meno oggetti. Fino a poco tempo fa
non erano in grado di rispondere. Magari adesso hanno studiato.
Poi è anche questione di gusti. Io credo che il Lisp ad esempio abbia
una sintassi semplicissima, ma pare che sia un opinione molto in
controtendenza 
No. E’ evidente. Lisp ha una sintassi semplicissima. Anzi, quasi non
ha sintassi. Personalmente trovo che la sintassi non sia delle piu’
leggibili, ecco tutto. Eppure non direi che programmare bene in Lisp
sia facile.