FINO AL 30 SETTEMBRE TUTTI GLI EBOOK COSTANO LA METÀ

Scegli il tuo ebook e risparmia!
Home
Sboccia un ramoscello

13 Giugno 2014

Sboccia un ramoscello

di

I sistemi di gestione contenuti (CMS - content management systems) sono tantissimi e diversissimi, eppure…

Negli anni novanta ho cominciato lo sviluppo di un mio CMS. Allora i dinosauri si muovevano maestosi sulla Terra (e nel Web), grattandosi perplessi la testa quando trovavano a stampa una scritta che cominciava con www.
Il mio principale problema parlando coi clienti era spiegargli cosa fosse un CMS (il termine infatti non esisteva ancora). Bei ricordi.

Ma è un programma come Claris Home Page o Adobe Pagemill? mi chiedevano, facendo riferimento ai primi programmi per scrivere HTML in modo visuale (dovete infatti sapere, ragazzi, che Dreamweaver sostituisce GoLive che rimpiazzò PageMill che scacciò il gatto che si mangiò il topo che alla fiera dell’est per tre soldi mio padre comprò).

Scrivere un CMS semplice, per un programmatore che sappia parlare a un motore di base dati non è così difficile e negli ultimi venti anni ne sono nati a centinaia come funghi dopo una pioggia. Alcuni ben scritti e costantemente mantenuti, altri tenuti assieme con il nastro adesivo e la sputazza. Alcuni di successo e altri no. Secondo me, che ogni tanto sollevo il cofano di uno di questi cosi per vedere com’è fatto il motore, con nessuna correlazione tra la prima caratteristica e la seconda.

All’inizio del decennio scorso ero del tutto convinto che fossero inevitabili ed imminenti tre cose. Primo, quasi tutti i CMS sarebbero morti lasciandone sul mercato solo due o tre, come è successo in tutte le altre categorie software. Secondo, avrei dovuto abbandonare di conseguenza la mia creatura in favore di un’altra meglio scritta e più diffusa. Terzo, uno dei CMS superstiti sarebbe stato sviluppato e diffuso gratuitamente da Google con lo scopo di permettergli di accedere in modo nativo al contenuto della sua base dati senza dover interpretare lo HTML con cui il CMS lo veste. Tutto aveva assolutamente senso e nulla è accaduto.

In questo oceano brulicante di pesci tutti diversi l’uno dall’altro che è il mondo dei CMS, oggi succede però una cosa inaudita: un segno di convergenza. Un CMS di medio cabotaggio, Symfony, ha gemmato un linguaggio dedicato alla realizzazione dei template (le pagine mastro, quelle che il designer progetta da vuote e che il cliente finale riempie di contenuti) chiamato Twig. Invece di legarlo a doppio filo al proprio sistema, gli autori hanno dotato Twig di una interfaccia elegante che gli permette di venire usato anche in altri CMS. E in molti ne hanno approfittato (incluso il sottoscritto).

Uno dei tre maggiori CMS al mondo, Drupal, adotterà Twig nella sua imminente versione 8. Tra loro Drupal è quello che trovo meglio scritto e più robusto, ma è un primato del tutto relativo. Uno degli autori nel suo blog spiega così la scelta di Twig:

Diamo agli autori di template una pistola carica e gli diciamo di usarla per martellare chiodi nel muro e, oh, fate attenzione. Per esempio, si può accedere a Drupal tramite un template PHP e cancellare tabelle della base dati o rimuovere documenti sul disco rigido del server:

<?php
db_query('DROP TABLE {users}');
unlink('sites/default/files/documento.pdf')
?>

Insomma, l’imperatore è nudo, ma questo vestito che gli han trovato ha davvero qualche caratteristica degna di lode. Ne riparleremo, anche confrontandolo con l’alternativa Smarty.

L'autore

  • Luca Accomazzi
    Luca Accomazzi (@misterakko) lavora con i personal Apple dal 1980. Autore di oltre venti libri, innumerevoli articoli di divulgazione, decine di siti web e due pacchetti software, Accomazzi vanta (in ordine sparso) una laurea in informatica, una moglie, una figlia, una società che sviluppa tecnologie per siti Internet

Vuoi rimanere aggiornato?
Iscriviti alla nostra newletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.