Questo articolo è il primo di una rubrica specificamente dedicata alla comparazione tra framework differenti scritti con un linguaggio di programmazione comune. In questo primo articolo prenderemo in considerazione Il linguaggio back-end per eccellenza dell'ambiente Web, PHP, confontando vantaggi e svantaggi di Code Igniter e Laravel.
Una nota importante: lo scopo di non è quello di proporre un prodotto vincente a scapito di un prodotto perdente. Al contrario, se un framework viene preso in analisi in questo contesto, significa implicitamente che la sua qualità è elevata, tanto quanto l'appeal di cui gode tra gli sviluppatori.
Code Igniter: i vantaggi
Partiamo con Code Igniter. Abbiamo già parlato recentemente di questo framework.
Beginner-friendly, curva d'apprendimento ridotta
Code Igniter è spesso definito come "framework per principianti". Anche se questa definizione è ridondante e non propriamente corretta, la semplicità e l'immediatezza con cui arriva Code Igniter sono dati di fatto. Una volta scaricato e decompresso il package associato, la procedura di configurazione di base risulta decisamente immediata, e dal momento del download al setup di una semplice pagina di benvenuto, intercorrono pochi minuti.
Leggero
Code Igniter si presenta con un footprint leggerissimo. La cartella pesa 3MB, ed è comprensiva dei file dedicati alla documentazione. Più leggero di cosi, è impossibile.
Community nutrita ed attiva
Dato che Code Igniter è un prodotto creato nel lontato 2006, ai tempi di PHP4, possiede una community molto ampia alle sue spalle. E' molto arduo per un bug passare inosservato o rimanere irrisolto. Nel forum ufficiale, uno sviluppatore può trovare le risposte a praticamente qualsiasi domanda relativa al framework, ed osservare come Code Igniter venga utilizzato in moltissimi e differenti ambienti di produzione.
Ottima documentazione
La documentazione di Code Igniter si presenta in linea con le sue caratteristiche fondamentali: chiara, concisa, essenziale. Vengono presentate più o meno tutte le feature del prodotto, dalla più generica alla più specifica ed avanzata, con tanto di demo che coprono le nozioni presentate. In Rete inoltre, sono presenti innumerevoli tutorial ed esempi reali che mostrano chiaramente il suo funzionamento.
Sviluppatori a domicilio
Per sviluppare o gestire un'applicazione utilizzando Code Igniter risulta molto semplice reperire in qualsiasi parte del globo programmatori specializzati in questo framework.
Code Igniter: gli svantaggi
Passiamo ora ad analizzare gli svantaggi di Code Igniter.
Datato
Come anticipato, Code Igniter è stato rilasciato un decennio fa, ai tempi di PHP4. Questo significa che molte delle importanti feature che sono arrivate con le successive versioni del linguaggio di programmazione di casa Zend, come ad esempio i namespace, non sono disponibili di default.
Modernità da aggiungere manualmente
Sebbene Code Igniter possa comunque essere utilizzato con le ultime versioni di PHP, le features non sono state aggiunte appositamente per non creare disastri di compatibilità con i milioni di progetti realizzati con le release precedenti. Se uno sviluppatore vuole aggiungere un tocco di modernità a Code Igniter, deve estendere manualmente il core engine, con buona pace del risparmio di tempo che viene implicitamente garantito dall'utilizzo di un framework.
Applicazioni di grandi dimensioni
Se per sviluppare applicazioni Web di dimensioni ridotte o medie Code Igniter risulta essere un ottimo prodotto, questo non rappresenta la scelta ottimale nel caso in cui occorra prendere in considerazione progetti di grandi dimensioni. La sua fama di "framework per principanti" fa in modo che Code Igniter venga privilegiato per applicazioni di impatto minore rispetto a queste soluzioni.
Laravel: i vantaggi
Passiamo ora al noto framework PHP Laravel.
Laravel è quasi certamente il framework PHP che gode attualmente di maggior popolarità, utilizzato da innumerevoli sviluppatori di qualsiasi generazione e da qualsiasi parte del globo.
Vediamo i suoi vantaggi principali.
Recente ma rispettato
Rispetto a moltissimi altri framework PHP famosi, tra cui Code Igniter, che sono abbastanza grandicelli, Laravel è un prodotto molto più recente: la prima versione è stata rilasciata nel 2011. Tuttavia, il suo ritardo nel presentarsi sulla scena non ha assolutamente impedito a Laravel di guadagnare fin dalle prime battute enorme rispetto tra gli sviluppatori.
Sviluppatori ricercati
Data la popolarità e l'attualità del prodotto, gli sviluppatori Laravel sono molto richiesti e ricercati. Se sei un utilizzatore esperto di questo framework, non avrai problemi a trovare un lavoro come freelance.
Artisan
Laravel si presenta con la sua CLI personale, chiamata Artisan. Grazie ad esssa, gli sviluppatori possono eseguire una moltitudine di task di differente complessità, come la migrazione di database, il caching, la schedulazione di task differenti, il queuing e molto altro ancora.
Funzioanlità moderne, applicazioni di grandi dimensioni
Laravel supporta praticamente tutte le più moderne funzionalità richieste per sviluppare un'applicazione di ultima generazione. E' ottimo per applicazioni ed API RESTful, applicazioni Web provviste di autenticazione di alto livello, o per gestire il queuing di eventi.
Grazie alla sua modernità, unita alla professionalità ed alla qualità dei suoi componenti, Laravel è una scelta adeguata per lo sviluppo di applicazioni Web di grandi dimensioni e di differenti tipologie.
Ampia libertà di configurazione
Laravel consente la massima libertà di azione in fase di configurazione, evitando di forzare lo sviluppatore ad utilizzare una struttura preimpostata.
Può utilizzare i componenti di Symfony
Laravel utilizza svariate librerie che sono state progettate, sviluppate e testate per un altro importante e famoso framework PHP, Symfony. Il vantaggio che ne deriva è immediato: non occorre reinventare la ruota quando si utilizzano framework, e queste componenti sono ottime e molto solide.
Template engine super-potente
Laravel è provvisto di un potente template engine chiamato Blade, il cui potere primario deriva dall'uso del codice PHP direttamente nelle View. Tramite Blade, i template vengono compilati direttamente in PHP e vengono elaborati nel server quando viene ricevuta una richiesta.
Laravel: gli svantaggi
Passiamo ora ad analizzare gli svantaggi di Laravel.
Una moltitudine di cartelle e file
Mentre la velocità di esecuzione non rappresenta un problema su test locali, in produzione questa potrebbe essere rallentata. Laravel genera una moltitudine di file e cartelle, alcuni dei quali potrebbero non essere nemmeno utilizzati dall'applicazione. Se non ami avere una struttura ingombrante, questo è decisamente uno svantaggio.
Curva di apprendimento medio-elevata
A differenza di Code Igniter, Laravel comporta un certo periodo di studio, addestramento e presa di confidenza, prima di poter essere utilizzato a dovere. La documentazione copre buona parte del compito in questione, ma l'abbondanza di componenti, unita agli aggiornamenti che non sempre vengono documentati in contemporanea, possono generare confusione, almeno all'inizio.
Costo di sviluppo più elevato
Tendenzialmente gli sviluppatori free-lance che producono utilizzando Laravel hanno un salario orario più elevato rispetto a quelli che producono usando Code Igniter.