Non solo PHP: guida ai nuovi linguaggi per il web

Non solo PHP: guida ai nuovi linguaggi per il web
Il mondo del web sta subendo un'evoluzione tale da imporre dei modelli di programmazione di siti, mash-up e applicazioni sempre più rapide e "snelle" dal punto di vista della sintassi: le tecnologie come PHP, ASP o JSP costano a volte più della media, e non sempre offrono le prestazioni che possono fornire i meno diffusi Python o DART (ormai spesso nativamente installati sui server). Motivo più che valido per imparare ad andare oltre il solito PHP o ASP, e riuscire a comprendere al meglio il contesto di programmazione del web, sempre più ampio e flessibile.

Il web è diventato interattivo: rivalutazione di Javascript

Storicamente Javascript viene considerato poco e male dalla community di programmatori, e questo per una varietà di ragioni: non è un linguaggio con tipizzazione forte, non include i tipi delle variabili ed è per questo problematico da usare per chi viene dalla programmazione classica. Eppure in questi anni, tra framework di ogni genere come jQuery ed Angular, è uscito fuori che Javascript sia non solo una scelta giustificata in ambito app per il web ma anche, per non dire soprattutto, utile e funzionale. Se è vero che una primissima distinzione tra i vari linguaggi del web potrebbe essere effettuata sulla base dello sviluppo di applicazioni asincrone, che combinano in qualche modo il lato client con quello server cercando di ottimizzare, nel contempo, le chiamate HTTP: insomma, quelle che un tempo erano chiamate AJAX e che oggi si esplicano con l'interazione di PHP con jQuery, Prototype e così via. Un esempio top di uso di Javascript come linguaggio vero e proprio deriva da soluzioni software come Node.js. Di fatto Javascript ha abbattuto il limite più grosso che presentava all'inizio, ovvero quello di essere un linguaggio puramente client-side e diventando, anche grazie a tecnologie del genere, più che un vero e proprio concorrente di PHP, soprattutto per lo sviluppo di app asincrone e chiamate ad API particolarmente snelle e veloci, con supporto a risposte in formato JSON  e via dicendo.

Il potenziamento di PHP

Del resto un linguaggio server side come PHP difficilmente avrebbe potuto di per sè sopperire alla necessità per il programmatore di chiamate snelle di questo tipo, essendo concepito sostanzialmente per ben altri scopi e versanti (è un linguaggio concepito come server side, per quanto nella recente PHP 7 sia notevolmente evoluto anche, ma non solo, nel senso di programmazione object-oriented). PHP rimane un linguaggio per servizi web dinamici simile al C in termini di sintassi, ed altrettanto potente, probabilmente tra i più utilizzati nello sviluppo di siti ed applicazioni web (Joomla!, WordPress, PrestaShop, Drupal, ma anche framework quali Symfony o CakePHP). Rimarrà probabilmente uno dei più diffusi linguaggi per il web per molti anni, e conoscerlo darà un vantaggio competitivo a molti degli sviluppatori. Le versioni 5.3 / 5.4 del linguaggio, che stiamo utilizzando quasi universalmente sulle varie piattaforme, sembra essere molto stabile e veloce, tra l'altro con la notifica di errori integrata che permette di mettere facilmente in sicurezza il vostro sistema. Partendo proprio da quest'ultimo, sappiamo bene che le alternative in questo linguaggio non mancano di sicuro: i diffusissimi blog e CMS quali WordPress, Joomla!, Drupal o il meno noto ArticleMS si basano proprio su questo tipo di soluzione. Le personalizzazioni risultano particolarmente agevoli, con qualche cautela opportuna, in particolare su WordPress e Drupal, che permettono senza troppe complicazioni l'esecuzione di pezzi di codice direttamente all'interno del CMS (ad esempio per creare dei blocchi autonomi di funzionalità: si vai dai banali contatore visite passando per cron-job, log di sistema e widget avanzati). Perl/Python. Per chi preferisse invece soluzioni web diverse dal solito, oppure inizi ad avere esigenze che vadano al di là del solito sito web in sola lettura per gli utenti, esiste la possibilità di sfruttare CMS in Python oppure in Perl: si tratta in molti casi, allo stato attuale, di possibilità a volte concrete altre piuttosto sperimentali e teoriche, poco "solide" nella pratica ma che, di fatto, non è escluso che si possano imporre in futuro. Ricordiamo comunque che Python e Perl sono dei linguaggi che lavorano bene nel WEB ma che, di fatto, sono anch'essi derivati parzialmente da script shell di Unix e da C / C++. Non potrei mai chiudere l'argomento senza citare DART, il nuovo linguaggio per il web proposto da Google, dalla sintassi particolarmente semplice e che viene fatto funzionare "traducendo" preventivamente le istruzioni della sua sintassi (simil-Perl) in Javascript: su un hosting che lo supporta, è necessario compilare mediante Python il linguaggio, poi effettuare la conversione Dart->JS la quale produce un file HTML: alla fine avremo la massima compatibilità e potremo vedere l'applicazione in questione dentro un normale browser. Più in generale, inoltre, è possibile far funzionare il codice DART su un server che abbia un'opportuna macchina virtuale installata, un po' come avviene per altri linguaggi che devono aver installato le opportune librerie e che spesso sono disponibili in modo nativo (ad esempio PHP, Perl e Python su Mac, Unix e Linux). Con DART si possono sia ricreare applicazioni in Flash come giochi online, oppure realizzare facilmente interessanti animazioni con poche righe di codice (tipo questa).

Il web è diventato interattivo: mashup e RESTful

A suo tempo, cioè fino a qualche anno fa, veniva chiamata tecnicamente interoperabilità tra i linguaggi: ad oggi la possibilità di scrivere librerie in un linguaggio ed eseguirle in un altro è diventata realtà, sebbene in modo leggermente diverso da quello che poteva sembrare all'inizio. Se per lanciare codice Java da C++, ad esempio, era possibile farlo mediante apposite librerie, spesso con pesanti complicazioni lato codice, ad oggi si può pensare di mettere a disposizione dei metodi, delle funzionalità ad alto livello che funzionino mediante semplici chiamate GET, POST, DELETE e così via. Il concetto di RESTful (REpresentational State Transfer), mutuato dalla tesi di dottorato di  Roy Fielding "Architectural Styles and the Design of Network-based Software Architectures" del 2000. Essa viene concretamente incontro all'esigenza di molti siti, web app e applicazioni mobile di accedere a dati presenti su un'altra macchina: questo significa richiamare una API specifica, cioè il path di un URL, che restituisca i dati richiesti seguendo una certa sintassi.

RESTful in WordPress

Anche WordPress, ad esempio, da qualche tempo ha introdotto la propria RESTful API, in grado di richiamare ad esempio (dal sito WP di esempio sitowp.test) la lista degli ultimi post in questo modo: sitowp.test/wp-json/wp/v2/posts e di filtrare la ricerca dei post sulla parola X in questo modo: sitowp.test/wp-json/wp/v2/posts?search=X L'uso delle RESTful API consente di realizzare facilmente mashup di ogni genere, cioè applicazioni che compongono a proprio vantaggio risultati prelevati da app singole. Un esempio classico di mashup viene utilizzata in ambito SEO, ad esempio, al fine di prelevare da un motore di ricerca le parole chiave più richieste e mostrarle in un report specifico per le nostre necessità. Anche se in Italia non hanno ancora preso piede, e sembra preferirsi un approccio tradizionale alla programmazione, ci sono realtà come Mashape.com che basano il proprio modello di business sulla vendita di servizi REST per programmatori.
Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.