L.A.M.P. Uno dei grandi flagelli del web. LAMP è un acronimo che sta per Linux Apache Mysql PHP. Tutte ottime tecnologie per carità, Linux è il sistema operativo più diffuso fra i server, Apache è il server WEB per antonomasia, Mysql è un motore di database potente e veloce e PHP un linguaggio di programmazione alla base di molte applicazioni WEB. E tutto Open Source. E allora che ho da lamentarmi? Nel vecchio West avevamo un detto: “Dio creò gli uomini e Colt li rese uguali.” Possiamo parafrasarlo in “Dio creò gli uomini e LAMP li rese tutti programmatori.” O per lo meno diede a tutti l’illusione di esserlo.
Linux, Apache, Mysql, PHP; presi uno alla volta sono ottimi, qualcuno un po’ più ottimo (sic!) qualcuno un po’ meno, ma tutti hanno il loro senso. Messi assieme sono proprio come una Colt, potenti, ma pericolosi. Se impugni una Colt e non la sai usare rischi di spararti in un piede o di impallinare qualcuno per sbaglio. Se usi LAMP convinto di essere un programmatore senza esserlo per davvero rischi di combinare degli enormi pasticci. L’imputato principale è proprio PHP, un linguaggio di programmazione nato per i non programmatori, per dare loro la possibilità di fare alcune operazioni sui siti dinamici senza dover per forza rivolgersi ai programmatori. PHP si è poi evoluto diventando sempre più potente. Troppo potente.
E così ora il web è pieno di siti programmati a qualche verso, che stanno in piedi per miracolo, che funzionano male, quasi inutilizzabili e, cosa che non guasta mai, orribili. Grazie a LAMP sono nati moltissimi CMS, e va tutto bene se chi li usa si limita alle funzionalità previste dai programmatori. Ma se si vuole mettere mano al codice, o lo si sa fare, o meglio lasciar perdere. Ma i “programmatori” non si spaventano facilmente, in fondo perché perdere tempo a imparare, a cercar di capire come funzionano le cose? Basta frugare un po’ su google e qualche riga di codice da copiare e incollare, senza ovviamente sapere cosa si sta facendo, lo si trova di certo.
Ecco che ci si ritrova con siti in cui le sezioni riservate sono accessibili se solo ci si dichiara admin. Certo anche nel “Signore degli Anelli” bastava dire “amici” per far aprire le porte di Moria, ma in un sito web sarebbe meglio prendere qualche misura di sicurezza in più. Basterebbe capire cosa fa il codice che si è copincollato per evitare idiozie simili.
La cosa grave è che siti i (s)programmati in questo modo sono sempre di più. E non i tratta di piccoli siti amatoriali, ci sono importanti siti aziendali e istituzionali realizzati così. La potenza dei CMS attuali permette di gestire portali complessi, con miriadi di sezioni, sottosezioni, pagine e utenti. Ma quando la complessità aumenta sarebbe meglio fare attenzione al codice che si scrive, o che si copia in giro.
Una buna norma suggerisce di utilizzare gli strumenti che si conoscono e si sanno usare. Questo non vuol dire adattarsi a fare tutto con quello che si sa già usare, ma vuol dire saper scegliere gli strumenti adatti e imparare a usarli prima di lanciarsi in imprese spericolate.
PHP e LAMP non sono i soli strumenti usati male. Ci sono cose scritte in modo orrendo anche in Java, Python, Ruby, perfino in Perl. Nessun linguaggio di programmazione ti mette al riparo dalla possibilità di fare cazzate, ma PHP e JavaScript sono così diffusi e sembrano così semplici che anche i più inetti si lanciano con ardore nella programmazione.
Basta girare un po’ nel web e non è difficile imbattersi in software house che realizzano siti e software così mal concepiti e sviluppati che viene da chiedersi come facciano a sopravvivere. La risposta è semplice, sfruttano l’incapacità dei clienti di valutare il lavoro realizzato. Ma c’è un altro fattore ancora più inquietante. A volte, abbastanza spesso ahimè, nemmeno i (s)programmatori si rendono conto di essere incompetenti, sono anzi convinti di aver realizzato un ottimo lavoro.
Non basta riuscire a tirar su un sito in qualche modo per essere programmatori. Nemmeno una laurea in ingegneria o in informatica ti proteggono.
Voler capire come funzionano le cose è l’unica caratteristica richiesta.