Perchè IGSuite nonostante sia webbased non utilizza un sistema di templating ? (Documento scaduto)

Perché IGSuite nonostante sia webbased non utilizza un sistema di templating ?

Luca Dante Ortolani

Sin dagli inizi dello sviluppo di IGSuite ho combattuto con e-mail che criticavano il mancato uso di un sistema di Templating. La mia posizione al riguardo, è che considero l'uso di un Framework che definisce GUI o comunque "strumenti grafici", una soluzione altrettanto valida a quella di un sistema di templating. Detto questo, chiaramente sia l'una che l'altra soluzione, hanno a parer mio pregi e difetti differenti.

Chi propende per l'uso di sistemi di templating lo fa in virtù di una delle caratteristiche principali che un buon software dovrebbe avere, e cioè la divisione di tutto ciò che è "logica/elaborazione" da quello che è "presentazione". Questa è certamente una buona pratica, ma non è la soluzione migliore in assoluto per ogni situazione.

Se si riesce a creare un FrameWork (come fatto in IGSuite) che offra degli strumenti ben definiti, l'applicazione sarà composta da una parte dal codice che compone il Framework (che per capirsi stamperà l'html) e una parte (che è poi la maggior parte del codice) che definisce la logica di funzionamento dell'applicazione, e si avvale quindi del framework per la presentazione.

In questo modo riusciamo ad avere una divisione "parziale" tra logica e presentazione che apporta maggiori vantaggi rispetto ad una soluzione template based.

Chiaramente i template offrono più flessibilità da un punto di vista grafico e di elaborazione della presentazione, ma a parer mio tale flessibilità è la stessa per quel che riguarda la logica all'interno dell'applicazione. C'è poi da dire che a volte il rimanegiamento di Template non risolve alcune necessità di presentazione.

Tanto per citare un esempio, ultimente ho definito un nuovo skin di IGSuite adatto per essere visualizzato su palmari. Tale skin non solo altera la presentazione ma anche la logica di funzionamento di alcuni widget. In una situazione analoga con l'uso di Template forse non avrei avuto la stessa flessibilità che ho avuto per risolvere il problema.

Un grande vantaggio che offre un sistema di templating è la possibilità di controllare finemente ed in maniera abbastanza semplice (in alcuni casi persino utilizzando editor visuali) il layout delle pagine web. Questo è certamente comodo per quei pochi utenti che vogliono customizzare il look ma soprattutto per gli sviluppatori, che possono editare o lasciar editare a terzi dell'HTML puro anzichè andarlo a ricercare all'interno di codice di programmazione.

Questo è chiaramente uno degli enormi vantaggi di una soluzione del genere. Di contro però ne deriva uno svataggio non trascurabile. Utilizzare un sistema di template pesa da un punto di vista delle prestazioni molto di più di un sistema a FrameWork (se così lo possiamo definire) ogni pagina deve subire un parsing che inevitabilmente appesantisce i tempi di risposta. Inoltre i moderni sistemi di template sono oramai talmente elaborati che obbligano i poveri grafici ad imparare sistemi di scripting quasi complicati quanto il linguaggio di programmazione stesso.

Spero con questo documento di non essere frainteso. Ripeto che la soluzione di un sistema di templating E' UNA SOLUZIONE PIU' CHE VALIDA. Ma a parer mio lo è altrettanto un sistema a Framework.

Per tutti gli sviluppatori che inorridiscono quando vedono del codice HTML ho scritto una piccola applicazione che mostra le potenzialità del Framework di IGSuite. E' possibile vederne il codice qui http://www.igsuite.org/live/3.2.0/demo1 e l'esecuzione qui http://demo.igsuite.org/cgi-bin/demo1 .

Ortolani Luca