Ho chiacchierato con un programmatore riguardo al mio articolo su LAMP docketizzato su Raspberry Pi e ne sono uscite delle considerazioni interessanti.
Ovviamente la mia prospettiva è più sistemistica: se un committente chiede un server Windows 98 ci si organizza, ma è un tema che mi interessa dato che è legittimo chiedere al sistemista un parere sulla piattaforma migliore da usare.
Linux non è un gran problema
Linux è ancora un sistema robusto. Così robusto che, sia lodato il Signore, è finita la guerra di religione tra Windows (che ormai merita di essere chiamato Windows e non Winzozz) e Linux e i due sistemi ora collaborano.
Così tanto che è possibile installare interi sistemi Linux dentro Windows, cosa che ha portato a un certo aumento della quota Microsoft nel settore. Ma, in ogni caso, che un Linux giri su hardware nativo o in una scatoletta dentro Windows poco cambia, sinceramente: ci sono benefici di gestione nell’usare Linux e per questa ragione resta, a mio parere, un sistema consigliabile per l’uso server.
Non un dogma ma un consiglio.
Apache vs nginx: già un po’ di conflitto
Già sulla A c’è legittima controversia: c’è chi preferisce Apache e chi nginx. Da un punto di vista sistemistico potemmo parlare dei vantaggi dell’uno o dell’altro, di come effettivamente i processi si rapportino con la macchina, ma mi interessa più un punto da sviluppatore: nginx nasce come complemento di Apache ed è spesso usato oggi come tale, ciò vuol dire che da un punto di vista del dev è un elemento quasi trasparente!
[Per i più curiosi, così fa anche l’hosting che uso. Se aprite una directory inesistente, ad esempio, l’errore ve lo darà Apache, se invece WordPress decide di farsi un bel riposino e di non rispondere a nulla l’errore lo dirà nginx. In gergo, è un reverse proxy]
Nei fatti, installare Apache+PHP è spesso letteralmente ridotto ad un comando da terminale, mentre nginx richiede più configurazione.
Ma, solitamente, una volta che si ha l’app è relativamente indifferente su quale server girerà. Non è l’approccio ottimale date le differenze tra i due sistemi (usare un ngnix con gli htaccess “convertiti” è come comperare la macchina elettrica per la pasta ma azionarla con una dinamo), ma funziona. E siccome oggi molti programmi sono sottopagati e tenuti insieme con lo sputo, tanto basta.
MySQL/MariaDB: guardatevi intorno
Sui database la M non è decisamente un dogma: MariaDB ha i suoi pro (soprattutto la semplicità e l’ampio supporto), ma esistono anche altri database SQL.
Uno, l’ho menzionato nell’articolo, è PostgreSQL: a differenza di MariaDB ha una certa struttura a oggetti (se vi interessa ho un pistolotto a tema, ma lo lascio per un altro articolo) e un funzionamento generalmente migliore. È un pelino più tosto da usare? Forse, ma in certi casi potrebbe valerne la pena!
Due: non esiste solo SQL. Un giorno, durante una lezione di programmazione “per quello dello scientifico” dalla quale sono fuggito sono capitato in una lezione di database della magistrale del professor Malchiodi su MongoDB e mi ha aperto un mondo.
Sia chiaro, in molti casi SQL funziona bene e pace. Ma se le cose si fanno complesse, magari, una lettura alla documentazione la darei… O un salto a Milano a sentire qualche lezione, anche 😀
PHP: il vero nodo
Ecco, il vero nodo è il PHP. Il PHP è il mio secondo linguaggio di elezione (dopo Python) ed è un linguaggio che favorisce le peggio pratiche di programmazione.
L’idea, alla fine, ha senso: se a me serve una dashboard di rete mi va bene che sia al 90% HTML e ci metto dentro, alla bisogna, i dati elaborati e un bel saluto alla divisione tra dati e istruzioni. Il PHP nacque per queste cosine, poco più che un linguaggio di scripting, ma divenne poi il principale linguaggio per lo sviluppo web.
Molte persone, quindi, non hanno approfondito le migliori pratiche di programmazione né hanno esperienza con altri linguaggi e scrivono col culo, senza considerazione per la leggibilità, le risorse e spesso nemmeno per la sicurezza (ragione per cui vari sistemisti odiano il PHP, pure io ho avuto a che fare con librerie scritte a culo).
La “barra” per diventare programmatore PHP è bassa, diciamo, e si nota. Questa è, a mio parere, la ragione per cui molti programmatori seri danno per morto LAMP: loro sanno fare di meglio e in linguaggi migliori.
Eppure LAMP vive e vivrà…
Ma dubito che LAMP, specie nella P, possa arrivare a non contare più molto. E la ragione è semplice: disponibilità.
È ovvio, se siete i programmatori di un’azienda potete installare quello che volete: potete offrire il sistema interno di ticketing scritto in Go su un server FreeBSD e usare un DBserver con MongoDB che gira su Darwin.
Se lavorate per una grande azienda che ha i propri server/cloud, idem, avete maggiore autonomia e potete installare quello che volete.
Ma tanti, invece, stanno sull’economico. E l’offerta è chiara: LAMP. La stragrande maggioranza degli hosting economici e semplici da usare lo sono.
E se vi fate dare 500€ dalla squadretta del paese per avere sito e gestionale, state sicuri, il PHP è scelta quasi obbligata e idem MariaDB, per una banale questione di disponibilità: vorranno qualcosa di facilmente manutenibile e a basso costo, magari gratis pagando solo il dominio.
La vostra bellissima applicazione in node.js, per quanto stilisticamente non sia una latrina come molte app in PHP, non rientra in questi criteri.
È vero, il settore degli hosting Node cresce (per fortuna, gran bella piattaforma), ma è ancora infinitesimale rispetto al LAMP. Molto spesso avere un server “raro” vuol dire doverselo installare su una macchina fisica/cloud/VPS o un Docker Hosting e non tutti vogliono soluzioni del genere. Alle volte sono proprio impossibili: ad esempio, una volta feci un sito ad una persona che aveva già dominio e hosting, gli serviva solo il codice.
Per fortuna il contenuto era statico, ergo sono andato di HTML e BS, ma se fosse stato necessario del dinamismo cosa facevo, buttare tutto per prendere un hosting che dicevo io? No, avrei usato il PHP.
E, soprattutto, c’è gente che il pane (e l’Audi da 50’000€, neh) se lo porta a casa configurando piattaforme ben note come WordPress, Drupal o Joomla. Tutte piattaforme che girano principalmente in LAMP.
Anche lì, finché queste piattaforme resteranno su LAMP tale paradigma avrà seguito, il fatto che avrà seguito renderà maggiore la domanda, ergo l’offerta punterà principalmente su LAMP e, in subordine, su altre piattaforme.
Spero presto di arrivare a un giorno in cui hostare un’app node.js sia facile come hostarne una in PHP. Ma chi vive sperando muore formattando…