Il futuro del codice sorgente è online?

Gli ambienti di sviluppo (IDE) online sono una delle opportunità più originali che il cloud computing mette a disposizione dei programmatori web. In generale si tratta di editor di codice, debugger e strumenti per il controllo di versione da usare nel browser web senza bisogno di installare alcun software sul client. Per il momento le soluzioni disponibili offrono funzionalità limitate che tuttavia lasciano intravedere le possibilità che questi strumenti metteranno a nostra disposizione.

Il Progetto Orion

Semplici editor di codice sorgente sono disponibili online già da tempo, ma progetti come Orion portano il concetto di programmazione online a un livello superiore. Annunciato pochi giorni fa dal team di sviluppo di Eclipse, una IDE Open Source molto diffusa e apprezzata, il progetto Orion è qualcosa di nuovo:

E’ una piattaforma di sviluppo aperta focalizzata totalmente allo sviluppo per il web, dentro il web. I tools sono scritti in JavaScript e girano nel browser. A differenza di altri tentativi di realizzare strumenti di sviluppo integrati nel browser, Orion non è una IDE che gira in una singola scheda del browser. I links funzionano e possono essere condivisi. Puoi aprire files in schede diverse e grande cura è stata messa nel fornire una ottima web experience durante lo sviluppo del codice

Orion Screenshot

Codice JavaScript sviluppato direttamente in Google Chrome - Progetto Orion/Eclipse

Orion supporta JavaScript e presto funzionerà anche con PHP, HTML, CSS e Java.

Cloud9 e gli altri

Cloud9 IDEAnche Mozilla lavora da tempo (2008) a qualcosa di simile. Skywriter, semplice editor online ora integrato in Ace, è alla base della piattaforma Cloud9 IDE. Attualmente in beta, Cloud9 è una IDE JavaScript integrata in Google Chrome che promette prestazioni uguali a quelle offerte da editor e IDE tradizionali, integrazione tra codice sorgente locale e remoto, debugging e deployment integrati.

Altro brillante esempio è CodeRun, IDE online già funzionante e gratuita dedicata soprattutto a sviluppatori ASP.NET, Silverlight e WPF. Il mondo IDE insomma è in gran fermento.

Vantaggi e svantaggi di sviluppare nel cloud

Immaginate un Google Documents per programmatori. Oggi possiamo creare online fogli di calcolo, testi e presentazioni; domani potremo sviluppare i nostri programmi nel browser. Ma quali sono i vantaggi e gli svantaggi di affidarsi a un ambiente di sviluppo online? Gli stessi offerti da un ambiente di produttività come Google Documents.

Accessibilità

Possiamo accedere al nostro ambiente di lavoro da qualunque località nel mondo. Bastano un accesso internet e un browser per metterci al lavoro. Siamo a Bangkok e abbiamo un paio di ore a disposizione? Entriamo in un internet cafe e pochi minuti dopo stiamo scrivendo codice o revisionando il lavoro dei colleghi. Il che ci porta al prossimo punto.

Collaborazione e condivisione semplificate

Nei progetti più importanti è spesso necessario installare strumenti di gestione e controllo dei team di sviluppo. Il codice sorgente memorizzato su un server remoto e accessibile a chiunque rende collaborazione e condivisione del codice più semplice. Tutte le cloud IDE promettono il supporto per team di sviluppo.

Indipendenza dalla piattaforma hardware

Con le cloud IDE scriviamo codice in un web browser. Compilazione, linking e debugging sono processi svolti su una macchina remota che (si suppone) offrirà prestazioni adeguate al compito. Trovarsi momentaneamente su un computer poco performante non sarà un problema. Sviluppare su computers diversi (Mac a casa e PC in ufficio, per esempio) non comporterà differenze sostanziali.

Riservatezza

Il nostro codice sarà memorizzato su un dispositivo sul quale non potremo esercitare un controllo assoluto. Difficilmente avremo garanzia di totale riservatezza. Applicazioni particolarmente delicate non potranno probabilmente essere sviluppate sulle nuovole anche se servizi di successo come GitHub offrono supporto a progetti open source e privati garantendo a questi ultimi la riservatezza necessaria.

Sicurezza

Che succede se il mio codice sorgente viene perduto in seguito a un guasto hardware del sistema remoto che lo ospita? L’affidabilità è senz’altro un aspetto delicato e costituisce uno dei deterrenti all’adozione dei sistemi di cloud computing in generale. Affidare i nostri codici a terzi non ci impedirebbe di conservarne copie locali. Come già successo per i sistemi di cloud storage, i servizi di cloud development dovranno offrire elevati standard di sicurezza e affidabilità.

Conclusioni

Lo sviluppo di applicazioni sulle nuvole è senz’altro una prospettiva affascinante che presto sarà di attualità. Non sono poche le perplessità degli sviluppatori, soprattutto negli ambienti enterprise o nei settori nei quali la riservatezza è un elemento determinante. Le applicazioni web saranno le prime implementate con queste tecnologie, per le altre bisognerà probabilmente attendere a lungo.

Approfondimenti