Il Remixable Web: appunti per un paradigma

Ci sono trend che vengono largamente anticipati, ma che richiedono del tempo per diventare attuali e dispiegare i propri effetti. Il tutto inizia con i contenuti e la Read Write Internet di cui ha parlato Lawrence Lessig in Remix. Prosegue con il Web 2.0, il programmable web, ma il passaggio dai contenuti alle applicazioni è una faccenda per hacker e hobbisti perché la realizzazione di un mashup richiede competenze tecniche. E se costruire mashup diventasse una cosa alla portata di tutti? Probabilmente potremmo cominciare a parlare di Remixable Web e a chiederci quali saranno le conseguenze. Il discorso è lungo e articolato, per cui ho cominciato a prendere qualche appunto sull’argomento, partendo dall’ABC.

Che cosa è una web application

Una web application (webapp) è un’applicazione client-server che si usa tramite un browser web. Questo tipo di applicazioni sono diventate sempre più popolari grazie agli indubbi benefici che offrono in termini di semplicità di distribuzione, al proliferare dei servizi online e alla crescita del cloud computing.
Le webapp vengono usate in qualsiasi contesto e in tutti i settori industriali e di fatto stanno diventando lo standard per realizzare software che deve essere accessibile da molte persone su diversi tipi di hardware. Ovviamente possono essere di diversa complessità, dal semplice servizio online alle intranet aziendali fino alle grandi piattaforme web che erogano servizi a centinaia di milioni di utenti come le webmail, i social network e via dicendo.
Una webapp ha due componenti, un server e un client, e può essere realizzata utilizzando diverse tecnologie e framework applicativi. Inoltre, oggi è prassi comune che una webapp dialoghi e scambi dati con altre applicazioni attraverso delle interfacce che vengono genericamente chiamate api (application programming interface): accade, per esempio, in tutti i casi in cui la registrazione a un sito avviene tramite Facebook.

L’uso dei termini web e app genera a volte dei malintesi, perché il primo richiama alla mente un website, mentre per molti il secondo è diventato sinonimo di mobile app. Una webapp non è un website: quest’ultimo, infatti, è un prodotto editoriale che a volte implementa qualche funzionalità che permettono agli utenti di interagire con il contenuto (per esempio, commentare o condividere un articolo). Una web app, invece, prevede degli utenti registrati, la gestione dei loro dati e interazioni più complesse.
Una webapp non è una mobile app: quest’ultima è sviluppata nel linguaggio nativo della piattaforma mobile, viene scaricata e installata sul terminale. Spesso e volentieri non ha una componente server e i dati vengono conservati sul device dell’utente.

Le competenze che entrano in campo nella realizzazione di una webapp sono molto varie. In termini generali possiamo raggrupparle in due grandi famiglie legate alla creazione della parte client e della parte server.
Per il server sono necessari architetti del software, programmatori, sistemisti e data base administrator competenti nelle tecnologie che vengono utilizzate per sviluppare e mantenere software e data base. Per il client entrano in campo esperti di progettazione dell’esperienza utente, designer e persone che conoscono i linguaggi che vengono interpretati dal browser, ossia html, css e javascript. Poiché questi linguaggi non sono molto difficili da imparare, non è infrequente che un web designer sia in grado di progettare la user experience, sviluppare l’interfaccia grafica e implementarla in Html autonomamente.

Il Remixable Web

Negli ultimi dieci anni, se non c’è un vincolo tecnico o un altro motivo specifico che renda impraticabile questa strada, la maggior parte del software viene sviluppato come webapp e viene utilizzato all’interno di un browser. Inoltre, con la crescita del cloud computing, molte soluzioni vengono offerte in modalità PaaS (platform as a service) e SaaS (software as a service), ossia come servizi che vengono sottoscritti e utilizzati online a consumo o in abbonamento. E’ un trend trasversale che riguarda tanto il mercato consumer quanto quello business a prescindere dalla dimensione delle aziende e dal settore industriale.

Un secondo grande trend che si sta consolidando riguarda la diffusione delle api, una tecnologia che permette ai programmi software di interagire tra di loro.
Tutte le aziende, a prescindere dalla dimensione e dal settore merceologico, utilizzano diversi software per svolgere le attività correnti, dalle vendite, alla gestione di clienti e progetti, alla contabilità e via di seguito. Far dialogare i sistemi è sempre più importante per creare sinergie, ottimizzare i costi, favorire l’innovazione.

Attorno a questa tecnologia sta emergendo una vera e propria economia: le api, infatti, creano opportunità che vanno oltre ciò che i creatori di una soluzione hanno immaginato. Aziende come Twitter e Facebook hanno creato dei veri e propri ecosistemi attorno alle proprie piattaforme, proprio perché le hanno aperto tramite le api all’innovazione proveniente dall’esterno.

Nella api economy stanno emergendo nuove tipologie di attori specializzati, che si affiancano ai vendor tradizionali che hanno da tempo in portafoglio soluzioni per far dialogare i sistemi delle grandi aziende. Tra questi:

  • le api management platform, come Mashery, Apigee, Layer7, 3scale, che forniscono alle imprese servizi per esporre, gestire e monetizzare le api verso l’esterno;
  • gli api Hub, come Mashape o ApiHub, che catalogano e aiutano i developer a scoprire le api, a testarle e a integrarle con il proprio software;
  • i servizi di sincronizzazione, come Zapier e IFTTT, che permettono di trasferire dati da un servizio all’altro.

Il trend generale è verso servizi sempre più semplici da utilizzare, spesso accessibili anche ai non tecnici e dal costo molto contenuto. Questa tendenza è evidente in particolare nei servizi di sincronizzazione che abbiamo citato, che possono essere configurati dall’utente finale senza alcun tipo di conoscenza tecnica. D’altro canto, anche i consumatori iniziano a sentire l’esigenza di far interagire i servizi che usano normalmente trasferendo dati da uno all’altro.

Il proliferare di soluzioni che renderanno sempre più facile far interagire servizi tra di loro trasformerà Internet come la conosciamo oggi: aziende e utenti non si limiteranno a usare il software come un servizio, ma utilizzeranno la cloud per creare nuove applicazioni remixando i servizi esistenti tramite le api. Farlo sarà sempre più facile e alla portata di tutti e il web diventerà a tutti gli effetti una grande piattaforma di sviluppo.

Benvenuti nell’era del Remixable Web 😉