In definitiva, il discorso non sottindente cose particolari, nel senso che dimostra che per fare una semplice cosa, sono state create incastellature tali che non si spiega il perchè.
In realtà, da quello che ho riscontrato anche io che, per fortuna ho al momento avuto poco a che fare con tali tecnologie ma ci sono bello bello in mezzo, è che la struttura, idealizzata per semplificare la costruzione di applicazioni, è talmente imponente e non gestibile da farti porre una semplice domanda: ma perchè?!?
Il fatto è che il tutto è stato fondamentalmente creato per le aziende, sempre alla ricerca di riduzione dei costi di sviluppo. Questo però, e in realtà, si traduce in:
1) applicazioni tutte uguali, standardizzate al massimo
2) se si evidenzia un problema nessuno sà chi lo ha causato, nè tantomento dove mettere le mani
3) aumento delle complicanze strutturali, nel senso che la logica viene compressa tutta in un punto
4) abbassamento della qualità del servizio, tradotta in: basta un paio di ragazzini che pago 30/40 euro al giorno, così mi risparmio l'esperto. Ovviamente quando si verifica un problema, alla fine si chiama l'esperto, che ti costa quanto il progetto finitio.
5) conseguente abbassamento della qualità del software. Questo perchè la poca esperienza, e le scarsi basi di questo nuovi schiavi, porta alla produzione di software scadente, aumentando così la possibilità del verificarsi di problemi.
Potrei anche elencare altro, ma penso che già un paio di questi punti faccia pensare...
Tu pensa, che tempo fà ho dovuto metter sù un progetto pilota, con PostgreSQL. Avevo pensato ad una logica di trigger e procedure per implementare una particolare gestione., utilizzando il potente e sicuto motore di questo rdbms. Alla fine ho dovuto cancellare tutto, rendendo il db un puro deposito di dati, perchè l'applicativo, creato con Java su web, utilizzando JBoss con application server, e gestendo le tabelle, le sequenze, le funzioni con vari framework, portava a comflitti tali da obbligarmi a disattivare il tutto, questo perchè il framework doveva avere lui il controllo, e non c'era alcuna possibilità di dividere le cose come avevo pensato.
Il bello è che poi, la ristrettezza di questi framework, si è scontrata con certe logiche applicative, dettate dal cliente, e a questo punto sono nati i problemi. I programmatori che avevano sviluppato il software web non sapevano più cosa fare, il framework non lo permetteva. Il cliente aveva le sue esigenze, e il cliente è quello che paga e che vuole che il lavoro vada fatto come lui dice. Mettere le mani nel framework non voleva farlo nessuno, e comunque nessuno aveva le giuste conoscenze per farlo, e comunque il tutto si sarebbe tradotto in tempi e costi superiori al budget.
Insomma, un bel casino, che si è risolto, inserendo le solite e classiche "toppe".
Credo che questo esempio dica tutto...