Sparatoria nell'IDE Cloud: AWS Cloud9 contro Eclipse Che contro Eclipse Theia

Portare un nuovo sviluppatore a un progetto di programmazione con molte dipendenze a volte può essere un incubo. Ho visto un caso estremo in cui la società alla fine ha rinunciato e ha acquistato allo sviluppatore un nuovo computer dopo un mese di problemi nel tentativo di configurare il suo vecchio. Più comunemente, la configurazione di un nuovo ambiente di sviluppo per un nuovo sviluppatore potrebbe richiedere da tre giorni a due settimane.

Questo problema è una delle motivazioni per gli spazi di lavoro degli sviluppatori basati sul web. Un'altra motivazione è che le macchine per lo sviluppo locale necessitano di notevoli risorse di CPU e RAM, il che aumenta il costo dell'hardware; queste risorse consentono allo sviluppatore di costruire rapidamente il progetto. I computer che accedono a spazi di lavoro basati sul Web possono cavarsela con hardware di fascia bassa rispetto ai computer per lo sviluppo locale.

Come ulteriore vantaggio, gli spazi di lavoro per sviluppatori basati sul Web possono centralizzare e standardizzare una configurazione. Quante volte hai sentito "Funziona sulla mia macchina" in risposta a una segnalazione di bug? Gli ambienti standardizzati possono eliminare questo problema.

In questo articolo parlerò di tre IDE cloud che forniscono spazi di lavoro per sviluppatori basati sul Web. Due di questi, Eclipse Theia ed Eclipse Che, sono progetti open source abbastanza recenti attualmente sotto gli auspici della Eclipse Foundation. Il terzo —AWS Cloud9 — è un vecchio prodotto che ora è di proprietà di e integrato con Amazon Web Services.

Eclipse Theia

Eclipse Theia è un progetto open source per fornire l'esperienza di sviluppo di Visual Studio Code in un browser; può anche essere eseguito sul desktop nella shell Electron. Theia si affida al Language Server Protocol di Visual Studio Code per fornire il completamento del codice specifico della lingua e le altre funzionalità che ci aspettiamo in un moderno editor di codice.

Poiché può sfruttare i server del linguaggio scritti per Visual Studio Code, Theia ha accesso a più di 60 server del linguaggio disponibili, inclusi JavaScript, Java, Python e TypeScript. Theia supporta anche il protocollo dell'adattatore di debug.

Theia stesso è scritto in TypeScript e utilizza PhosphorJS come base per la sua shell e per i suoi layout di dock trascinabili. Integra un terminale che si riconnette al ricaricamento del browser per mantenere la cronologia della riga di comando. Puoi creare le tue estensioni per Theia se lo desideri.

Ci sono tre modi principali per provare Theia. Uno è eseguirlo in Docker:

docker run -it -p 3000: 3000 -v "$ (pwd): / home / project: cached" theiaide / theia: next

Il secondo è eseguirlo in Gitpod (vedi barra laterale e screenshot sotto). Il terzo è eseguire Eclipse Che versione 7 o successiva (vedere la sezione successiva), che utilizza Theia come interfaccia utente invece dell'interfaccia utente Java utilizzata nelle versioni precedenti di Che.

Il progetto Eclipse Theia include contributi di TypeFox, Ericsson, Red Hat, IBM, Google e ARM. La roadmap del progetto include un sistema plug-in per supportare le estensioni di VS Code (oltre ai server di lingua), l'integrazione con i framework di test e altri miglioramenti.

TypeFox Gitpod

Gitpod è un ambiente ospitato commerciale (vedi screenshot sopra) progettato per aprire i repository GitHub negli spazi di lavoro. L'IDE Gitpod è open-source e basato su Eclipse Theia. Attualmente in una fase di beta-test gratuito, Gitpod sarà sempre gratuito per i progetti open source, ma alla fine richiederà un abbonamento per aprire repository privati ​​e da utilizzare per più di 100 ore al mese.

Il cloud Gitpod.io attualmente viene eseguito in più cluster Kubernetes ospitati sull'infrastruttura di Google Cloud in tre diverse regioni del mondo. Il prodotto Gitpod è disponibile anche per l'hosting privato.

Eclipse Che

Eclipse Che è un server dell'area di lavoro per sviluppatori open source e un IDE cloud progettato per team e organizzazioni. La versione 7, attualmente in beta, utilizza Eclipse Theia come base del suo IDE. Le versioni precedenti di Che utilizzano un IDE basato su GWT. Gli spazi di lavoro vengono eseguiti in contenitori su Docker, OpenShift o Kubernetes.

Puoi eseguire Che nel cloud pubblico, in un cloud privato o installarlo su qualsiasi sistema operativo. Che è stato testato su Ubuntu, Linux, MacOS e Windows. Puoi anche eseguire Che in uno spazio di lavoro self-service ospitato su //che.openshift.io/, per il quale dovrai avere o creare un log-in OpenShift o Red Hat gratuito.

Inoltre, Eclipse Che comprende il nucleo di Red Hat CodeReady Workspaces, il nuovo ambiente di sviluppo per OpenShift. Oltre ad essere supportati da Red Hat, CodeReady Workspaces dispone di stack predefiniti con tecnologie Red Hat supportate e include Red Hat SSO per gestire l'autenticazione e la sicurezza tra i team di sviluppatori.

Il progetto Eclipse Che include contributi da più di 20 aziende tra cui CodeEnvy (lo sviluppatore originale di Che), Docker, IBM, Red Hat e TypeFox. La roadmap del Che include il completamento dell'integrazione Theia e dei sistemi plug-in per Theia e Che.

AWS Cloud9

L'IDE Cloud9, che ho menzionato come Go IDE nel 2017, ora appartiene ad Amazon Web Services. Oltre ad avere un editor di codice multilingue basato su browser, debugger per diverse lingue e un terminale pre-autorizzato per i servizi AWS, Cloud9 ora consente la codifica collaborativa.

Puoi eseguire ambienti di sviluppo Cloud9 su istanze Amazon EC2 gestite o qualsiasi server Linux che supporti SSH. Cloud9 include strumenti per oltre 40 linguaggi di programmazione, sebbene solo cinque abbiano debugger, sette abbiano linting e 12 abbiano il completamento del codice.

Se esegui Cloud9 su EC2, l'istanza EC2 si interromperà automaticamente dopo aver chiuso Cloud9, per impostazione predefinita dopo 30 minuti, e il tuo codice persisterà nello storage di Amazon EBS. Se esegui Cloud9 sul tuo server Linux, il codice persisterà nella memoria locale. Se riavvii Cloud9 dopo che l'istanza sottostante è stata arrestata, Cloud9 riavvierà automaticamente l'istanza e ripristinerà la sessione di modifica dal punto in cui era stata interrotta.

Puoi facilmente popolare un'istanza Cloud9 da un repository o da file locali. Nello screenshot qui sotto, ho usato Git dalla riga di comando di Cloud9 per controllare il repository GitHub per Keras. Se stai modificando un progetto in base a un repository per il quale disponi dell'autorizzazione di commit, puoi aggiornare il repository ed eseguire il pull delle modifiche secondo necessità dalla riga di comando. Cloud9 non ha il supporto grafico per il controllo della versione.

Nota la visualizzazione struttura a destra dello screenshot qui sotto, che funziona bene per la navigazione grossolana all'interno di un file. Il menu Vai mostrato in alto a sinistra funziona bene per una navigazione più generale. Non esiste alcuna funzionalità di refactoring in Cloud9, sebbene sia prevista una semplice riformattazione del codice.

AWS Cloud9 è integrato con Amazon Lightsail, AWS CodeStar, le funzioni AWS Lambda e AWS CodePipeline. L'integrazione Lambda sembra essere particolarmente buona.

Quale IDE cloud?

Eclipse Theia, Eclipse Che e AWS Cloud9 ti consentono di modificare ed eseguire il debug del codice in più linguaggi di programmazione da un browser. Ci sono differenze nel layout e nella funzionalità, ma non abbastanza da avere importanza a meno che non si desideri realizzare qualcosa di abbastanza avanzato, come il refactoring.

Cloud9 è una scelta particolarmente buona se stai lavorando su progetti AWS e Che è una scelta particolarmente buona (come CodeReady) se stai lavorando su codice per sistemi Red Hat. Theia fornisce l'ambiente di editing più carino dei tre, ma una volta che Che 7 uscirà dalla beta avrà anche un IDE Theia.