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.

<h2>
  Cloud9 e gli altri
</h2>

<p>
  <img class="alignleft" title="Cloud9 IDE" src="images/2011/01/cloud9ide.png?resize=147%2C150" alt="Cloud9 IDE" data-recalc-dims="1" />Anche <strong>Mozilla</strong> lavora da tempo (2008) a qualcosa di simile. <a href="http://mozillalabs.com/skywriter/">Skywriter</a>, semplice editor online ora integrato in <a href="http://ace.ajax.org/">Ace</a>, è alla base della piattaforma <a style="font-weight: bold;" href="http://cloud9ide.com/">Cloud9 IDE</a>. 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.
</p>

<p>
  Altro brillante esempio è <strong><a href="http://www.coderun.com/">CodeRun</a></strong>, IDE online già funzionante e gratuita dedicata soprattutto a sviluppatori ASP.NET, Silverlight e WPF. Il mondo IDE insomma è in gran fermento.
</p>

<h2>
  Vantaggi e svantaggi di sviluppare nel cloud
</h2>

<p>
  Immaginate un <a href="http://docs.google.com/">Google Documents</a> 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.
</p>

<h3>
  Accessibilità
</h3>

<p>
  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.
</p>

<h3>
  Collaborazione e condivisione semplificate
</h3>

<p>
  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.
</p>

<h3>
  Indipendenza dalla piattaforma hardware
</h3>

<p>
  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.
</p>

<h3>
  Riservatezza
</h3>

<p>
  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 <em>sulle nuovole </em>anche se servizi di successo come <strong><a href="https://github.com/">GitHub</a> </strong>offrono supporto a progetti open source e privati garantendo a questi ultimi la riservatezza necessaria.
</p>

<h3>
  Sicurezza
</h3>

<p>
  Che succede se il mio codice sorgente viene perduto in seguito a un guasto hardware del sistema remoto che lo ospita? L&#8217;affidabilità è senz&#8217;altro un aspetto delicato e costituisce uno dei deterrenti all&#8217;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 <a href="http://it.wikipedia.org/wiki/Cloud-storage">cloud storage</a>, i servizi di cloud development dovranno offrire elevati standard di sicurezza e affidabilità.
</p>

<h2>
  Conclusioni
</h2>

<p>
  Lo sviluppo di applicazioni <em>sulle nuvole</em> è senz&#8217;altro una prospettiva affascinante che presto sarà di attualità. Non sono poche le perplessità degli sviluppatori, soprattutto negli ambienti <em>enterprise</em> 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.
</p>

<h4>
  Approfondimenti
</h4>

<ul>
  <li>
    <a href="http://dev.eclipse.org/blogs/mike/2011/01/11/introducing-orion/">Introducing Orion</a>, di Mike Milinkovich
  </li>
  <li>
    <a href="http://borisoneclipse.blogspot.com/2011/01/orion.html">Orion</a>, di Boris Bukowski
  </li>
  <li>
    <a href="http://jaxenter.com/eclipse-orion-the-new-ide-paradigm-33431.html">Eclipse Orion: The New IDE Paradigm</a>, intervista a B. Bukowski
  </li>
  <li>
    <a href="http://www.i-programmer.info/news/90-tools/1872-mozilla-and-eclipse-take-programming-into-the-cloud.html">Mozilla and Eclipse take programming into the cloud</a>, di Mike James
  </li>
  <li>
    <a href="http://dotnet.dzone.com/articles/online-ides-%E2%80%93-perspectives">Online IDEs – perspectives?</a> Di Den Delimarsky
  </li>
</ul>