Arthur Grunseid s’è imbattuto nei limiti che, prima o poi, tutti i programmatori riscontrano nello sviluppo di applicazioni web: il mancato supporto ai linguaggi “nativi”. Per fronteggiare il problema, ha creato un’infrastruttura – che ha scelto di chiamare Arc, da non confondere con l’omonimo linguaggio di programmazione – per generare delle macchine virtuali che dialoghino col browser. Grazie ad arc.js, in JavaScript, l’utente può eseguire addirittura delle app scritte in Python senza essere costretto a installare dei plugin.

Com’è possibile? Semplice, Arc recupera le opportune informazioni da un manifesto – necessario a qualunque applicazione web – e richiama una macchina virtuale con Linux su VirtualBox, che esegue i comandi inviati in JavaScript dal browser. Arc e arc.js risiedono sul server, perciò l’utente deve giusto accedere alla app dal browser: Grunseid, ad esempio, è riuscito a integrare FFMpeg in un progetto per la registrazione di MP3 da YouTube. È una soluzione più duttile del Native Client (NaCl) di Google, perché non dipende da Chrome.

Il vantaggio è quello di generare applicazioni complesse, sfruttando potenzialmente qualunque linguaggio e l’utente non deve fare altro che fruire del prodotto finito. Tuttavia, condivido alcune delle critiche mosse ad Arc: VirtualBox è un’infrastruttura molto “pesante”, tanto che la app di Gruisend sul server occupa oltre 140Mb – per un’operazione che potrebbe essere eseguita dal terminale in pochi kilobyte – e QEMU sarebbe preferibile. Ma, se è riuscita a fargli risparmiare $25,000, al mese non è proprio un pessimo risultato.