Il web che ancora non c’è
Recenti progetti mi hanno fatto considerare lo stato del web e, nello specifico, delle applicazioni web.
Per i non addetti ai lavori: con applicazione web si intende quel tipo di programma eseguito direttamente all’interno di un browser. Al giorno d’oggi una buona parte dei siti web son in realtà applicazioni web, come ad esempio Facebook o il sito di home banking che usate ogni giorno per vedere lo stato del vostro conto corrente.
Antitetiche alle web applications sono le desktop applications o applicazioni native: quei programmi eseguiti sul vostro computer, che eventualmente possono anche accedere a internet ma mantenendo l’esecuzione locale.
Premesso che la mia estrazione e passione nello sviluppo software arriva dalle applicazioni native (il web per me è arrivato molto tempo dopo), ancora oggi non riesco a trovare un senso logico alla miriade di tecnologie passate e in divenire nell’ambito delle applicazioni web.
Tante idee, tanti lanci falliti. Ognuna sembra essere quella definitiva, senza mai esserlo realmente.
Server side, client side, Java, .Net, PHP, rich client con Flash e Javascript, con quest’ultimo che prende sempre più piede, anche grazie agli ottimi Frameworks e alle prestazioni dei nuovi browser.
Osservando attentamente però, la verità è una sola: non ci siamo ancora. E’ ancora pionierismo checché ne pensino i sostenitori di quella o dell’altra tecnologia. Ancora progetti sperimentali, a volte realizzazioni individuali oppure, cosa persino peggiore, pachidermi goffi e monolitici, come .Net di Microsoft ad esempio, nata come fresca e contemporanea alternativa a Java, ma naufragata in un’accozzaglia di codice mal pensato e ancor peggio gestito.
Ho sviluppato progetti desktop considerabili ancora tecnologicamente moderni a distanza di 10-15 anni (C in X-11 o C++ con MFC). Il mio ambiente di sviluppo primario, Cocoa, per le applicazioni Mac e iPhone, benché avanti con i tempi, affonda le proprie radici in tecnologie pensate oltre trent’anni fa (Smalltalk e poi Objective-C). Guardo alcuni dei miei vecchi lavori, alcuni risalenti agli anni ‘80 e, benché figli di tecnologie “antiche”, ne vedo ancora eleganza e stile che nessuna piattaforma web mi può offrire*.
La mia sensazione e che sul web ancora si utilizzi la tecnologia adeguata alla circostanza, al progetto specifico e che la stessa possa essere del tutto inadatta per altro tipo di applicazione. Un progettista software dovrebbe invece investire le proprie risorse su architetture che, per quanto possibile, abbiamo vita sufficiente a garantire maestria ed esperienza. Il contrario è superficiale conoscenza e leggerezza analitica, e questo non va bene.
Il Web è il futuro e su questo non si dicute, ma il Web così com’è o un’altro web che ancora non c’è? Forse si sta decretando la morte delle desktop applications con troppo anticipo e soprattutto senza valide alternative.
Forse invece sono io, che scopro dopo anni che lo sviluppo per il Web proprio non mi piace.
* Interessante e per certi versi notevole l’esperimento Atlas, basato su una tecnologia simile (se non identica) a Cocoa di Apple, ma orientata al Web.