Questo articolo non è un confronto tecnico (sia chiaro fin da subito che Laravel e Symfony sono entrambi eccellenti) ma un'analisi di governance e sostenibilità.
Ogni stack tecnologico porta vari attributi:
- Un modello di governance
- Una ipotesi di sostenibilità
- Una filosofia di funzionamento
Questi aspetti, spesso tralasciati, sono parte integrante del processo decisionale che seguiamo quando periodicamente rivediamo le nostre scelte tecnologiche per progetti futuri.
Siccome abbiamo una fortissima esperienza nel mondo PHP, che peraltro negli ultimi anni si sta evolvendo a velocità vertiginose, prendiamo in considerazione Symfony e Laravel, i due punti di riferimento maggiori nel mondo PHP-based.
Foundation vs Company: chi decide il futuro?
- Symfony è governato da SensioLabs, ma attraverso una governance aperta con core team distribuito
- Laravel è sostanzialmente Taylor Otwell (e Accel, che ci ha investito 57 milioni di dollari, e che probabilmente si aspetterà un ritorno dall'investimento)
Quando scegli un framework stai anche scegliendo: se domani la direzione cambia, chi decide? La community? o un singolo individuo? Una azienda?
Mentre da un lato Taylor porta avanti la sua visione personale per Laravel, Symfony adotta invece un approccio plurale e meritocratico, dove il timone è in mano a un core team distribuito, le decisioni architetturali passano attraverso discussioni pubbliche e c'è un processo formale per le RFC e breaking changes.
Symfony si porta dietro vari vantaggi: ha resilienza istituzionale (non dipende ciecamente dal suo fondatore Fabien), c'è una rappresentanza da parte delle grandi aziende (Spotify, Blablacar, ecc) nel core team, e infine c'è separazione degli interessi (SensioLabs vende consulenza Symfony, ma non ha SaaS proprietari che creano conflitto di interessi sul design del framework, come invece succede con Laravel).
Modello di sostenibilità
Laravel di base si sostiene vendendo servizi (Laravel Forge, Laravel Vapor, Laravel Nova, Laravel Cloud, ecc). Il meccanismo è quindi semplice, il framework gratuito attira developer, questi usano Laravel in produzione, comprano Forge/Vapor/ecc, la revenue finanzia il framework.
Funziona, ma ha conseguenze. In primis architetturali: la direzione dello sviluppo di Laravel può seguire logiche di business, in generale, si allinea con ciò che può vendere bene, non solo best-practice tecniche.
Symfony si sostiene invece diversamente: SensioLabs vende consulenza ma il framework non è in alcun modo ottimizzato per vendere supporto.
I componenti di Symfony sono di fattura talmente alta che sono utilizzati da Drupal, Magento, Joomla, e Laravel stesso. Questi progetti a loro volta co-finanziano attraverso contributi, bug fixes, feature development.
La sostenibilità di Symfony è forte grazie alla distribuzione non solo del framework, ma anche dei suoi componenti.
Ragionare sempre sul futuro
La sostenibilità di progetti for-profit, dipende appunto dalla loro capacità non solo di attrarre sviluppatori, ma anche di incassare denaro (specialmente a fronte di ingenti investimenti).
La sostenibilità di progetti guidati da community distribuite invece si è storicamente dimostrata la più stabile e affidabile.
C'è anche un aspetto formativo: con Laravel si impara un framework, con Symfony si imparano design pattern universali. La differenza? Quando Laravel sarà superato (come tutti i framework), le competenze Symfony resteranno valide.
Naturalmente ci sono molti altri fattori che entrano in gioco nella fase di selezione di un framework; Laravel è notoriamente molto più semplice da imparare e Symfony ha notoriamente una documentazione ostile a chi lo conosce poco.
Come agenzia, il nostro compito non è (solo) costruire velocemente, ma costruire bene. E "bene" significa anche: su fondamenta che non dipendono dal successo commerciale di un singolo player, che non creano lock-in proprietario, che rispettano principi di open source e governance distribuita. È il nostro credo tecno-politico, e si riflette in ogni scelta tecnologica che facciamo.