Sviluppare per il Web sta diventando eccessivamente, e inutilmente, complicato? Troppe tecnologie che consentono di eseguire le medesime procedure, un gran numero di framework tra i quali scegliere e librerie spesso sovradimensionate rispetto agli obbiettivi per cui vengono utilizzate, starebbero rendendo via via più complesso il lavoro dei coders? Per rispondere a queste domande è necessario tenere conto di un panorama dove con il moltiplicarsi degli strumenti disponibili non facilita necessariamente l'implementazione dei progetti.
La programmazione "Vanilla", è per esempio il caso di JavaScript, potrebbe rappresentare un'alternativa al proliferare dei framework, ma questa soluzione non riduce necessariamente la complessità e non garantisce una produttività più elevata. I framework, d'altra parte, offrono librerie complete già pronte per eseguire immediatamente procedure specifiche, strutture modulari per l'integrazione di funzionalità addizionali tramite plugin e curve di apprendimento (in genere) non particolarmente ripide.
I framework, quindi, diminuiscono la complessità massimizzando la produttività? Non necessariamente, caricare AngularJS sulle spalle di una pagina Web per il parsing di un file JSON potrebbe, per esempio, non rappresentare una metodologia ottimale potendo ottenere in alcuni casi lo stesso risultato con poche righe di PHP/JavaScript. Il discorso diventa ancora più articolato quando si utilizzano più framework per la medesima Web application, strumenti che spesso integrano librerie che eseguono lo stesso compito determinando ridondanza.
Il problema è che non è possibile considerare i framework come una scorciatoia per bypassare le complessità, anche perché spesso ciò che si guadagna in termini di produttività lo si perde in termini di ottimizzazione e performance. Estendendo il discorso ai CMS si potrebbe fare riferimento a WordPress, perché una cosa è risolvere un progetto installando l'applicazione, acquistando un tema e ricorrendo ad un plugin diverso per ciascuna richiesta del cliente, un'altra è conoscere WordPress, saperlo ottimizzare e personalizzare.
Per contro, le soluzioni "Vanilla" richiedono spesso implementazioni prolungate, perché se non si riesce a produrre sorgente ottimizzato tanto vale ricorrere ad un framework, salvo il precedente discorso riguardante la necessità di non sacrificare la qualità in nome della produttività. Soluzioni come il già citato AngularJS garantiscono almeno un'architettura che consente di caricare le risorse su richiesta, supporta la dependency injection e la riutilizzabilità del codice, molte problematiche dello sviluppo vengono quindi risolte a monte.
In conclusione, è possibile proporre un approccio pragmatico in grado di conciliare "Vanilla" e framework: se la curva di apprendimento di un framework non dovesse essere particolarmente ripida, sceglierlo per il proprio progetto potrebbe rappresentare una buona soluzione per massimizzare la produttività senza influire negativamente sulle prestazioni e la sicurezza, altrimenti si dovrebbero preferire le soluzioni from scratch.
Per approfondire: Arguman