Dopo il primo anno di lavoro in informatica ho iniziato ad apprezzare i framework, specialmente quelli a diffusione globale con forte orientamento allo sviluppo cooperativo. Il primo che ho usato è stato Django per il progetto di maturità consistente di una web-app con db, era il primo progetto complesso senza una commessa precisa da parte di una esercitazione. Il framework era stato suggerito dal professore per semplificare la gestione della connessione al DB e l’avviamento del server web con l’applicazione,all’epoca non avevo paragoni con una soluzione personalizzata e pensavo che lo sviluppo avesse questo pattern.
Subito dopo la maturità ho iniziato a lavorare in un’azienda dove si faceva molta manutenzione a software esistenti e mi era capitato di aver sviluppato alcuni progetti nuovi senza l’uso di framework. In tutto quello che facevo mi tornava in mente come era semplice con Django: sicuramente anche il php doveva avere sistemi analoghi e dopo un po’ di insistenza siamo riusciti a introdurre Laravel, anche se io avrei preferito Zend framework, non tanto perché migliore ma leggendo varie recensioni lo paragonavo a Django per php. In ogni caso non era un problema mio dal momento che dovevo sviluppare un sistema di configurazione per lampade in 3D: non conoscevo molto il framework JS e avendo moltissimo lavoro da fare solo per implementare le funzionalità base con la libreria Threejs è stato scelto jQuery per tutto il resto, entrambi nuovi per me.
Alla fine il progetto ha richiesto un anno di sviluppo in part-time 12 ore settimanali (era un lavoro extra per mantenermi negli anni universitari), utilizzando Angular o qualcosa di simuli il risultato sarebbe stato migliore ma avrebbe richiesto sicuramente più tempo, jQuery era meglio consolidato e documentato rispetto a un Angular in crescita.
Dopo aver visto il risultato del mio progetto custom-tailored e quelli degli altri ho notato come siano più o meno organizzati e più difficili da mantenere rispetto ai progetti con un framework alla base. Un requisito indispensabile è capire anche il loro funzionamento oltre al linguaggio di implementazione e in alcuni casi richiedono una conoscenza più avanzata. Su quest’ultimo punto in realtà ho sempre pensato che il problema non sia tanto il framework ma la tecnica utilizzata perché i framework spesso semplificano introducendo metodologie particolari per migliorare e questo stesso codice scritto da un programmatore capace di farlo è comunque incomprensibile per uno privo delle competenze necessarie e in alcune situazioni non ci sono soluzioni alternative.
Technical Team: Lingyong Sun