Cloud IDE shoot-out: AWS Cloud9 vs. Eclipse Che vs. Eclipse Theia

Att få en ny utvecklare till ett programmeringsprojekt med många beroenden kan ibland vara en mardröm. Jag har sett ett extrema fall där företaget äntligen gav upp och köpte utvecklaren en ny dator efter en månads problem med att försöka konfigurera sin gamla. Mer vanligt kan det ta mellan tre dagar och två veckor att skapa en ny utvecklingsmiljö för en ny utvecklare.

Den frågan är en av motivationen för webbaserade utvecklararbetsytor. En annan motivation är att maskiner för lokal utveckling behöver betydande CPU- och RAM-resurser, vilket ökar kostnaden för hårdvara; dessa resurser gör det möjligt för utvecklaren att bygga projektet snabbt. Datorer för åtkomst till webbaserade arbetsytor kan komma undan med mindre hårdvara än datorer för lokal utveckling.

Som en extra fördel kan webbaserade utvecklararbetsytor centralisera och standardisera en konfiguration. Hur många gånger har du hört "Det fungerar på min maskin" som svar på en felrapport? Standardiserade miljöer kan eliminera det problemet.

I den här artikeln kommer jag att diskutera tre moln-IDE: er som tillhandahåller webbaserade utvecklararbetsytor. Två av dem - Eclipse Theia och Eclipse Che - är ganska nyligen fria projekt med öppen källkod för närvarande under Eclipse-stiftelsens regi. Den tredje —AWS Cloud9 — är en äldre produkt som nu ägs av och integreras med Amazon Web Services.

Förmörkelse Theia

Eclipse Theia är ett öppen källkodsprojekt för att ge Visual Studio Code-utvecklingsupplevelsen i en webbläsare. det kan också köras på skrivbordet i Electron-skalet. Theia förlitar sig på Visual Studio Codes språkserverprotokoll för att tillhandahålla språkspecifik kodkomplettering och andra funktioner som vi förväntar oss i en modern kodredigerare.

Eftersom det kan dra nytta av språkservrarna som är skrivna för Visual Studio Code har Theia tillgång till mer än 60 tillgängliga språkservrar inklusive JavaScript, Java, Python och TypeScript. Theia stöder också felsökningsadapterprotokollet.

Theia själv är skrivet i TypeScript och använder PhosphorJS som grund för sitt skal och dess dragbara dockningslayouter. Den integrerar en terminal som återansluts vid laddning av webbläsaren för att upprätthålla kommandoradshistoriken. Du kan skapa dina egna tillägg till Theia om du vill.

Det finns tre viktiga sätt att prova Theia. En är att köra den i Docker:

docker-körning -it -p 3000: 3000 -v “$ (pwd): / home / project: cached” theiaide / theia: nästa

Den andra är att köra den i Gitpod (se sidofält och skärmdump nedan). Den tredje är att köra Eclipse Che version 7 eller senare (se nästa avsnitt), som använder Theia som användargränssnitt istället för Java-gränssnittet som används i äldre versioner av Che.

Eclipse Theia-projektet innehåller bidrag från TypeFox, Ericsson, Red Hat, IBM, Google och ARM. Projektets färdplan innehåller ett plug-in-system som stöder VS-kodtillägg (bortom språkservrar), integration med testramar och andra förbättringar.

TypeFox Gitpod

Gitpod är en kommersiell värdmiljö (se skärmdump ovan) som är utformad för att öppna GitHub-arkiv i arbetsytor. Gitpod IDE är öppen källkod och baserad på Eclipse Theia. För närvarande i en gratis beta-testfas kommer Gitpod alltid att vara gratis för öppen källkodsprojekt, men kommer så småningom att kräva ett abonnemang på öppna privata förvar och att använda mer än 100 timmar per månad.

Molnet Gitpod.io körs för närvarande i flera Kubernetes-kluster som finns på Google Cloud-infrastrukturen i tre olika regioner runt om i världen. Gitpod-produkten är också tillgänglig för privat hosting.

Förmörkelse Che

Eclipse Che är en öppen källkodsutvecklare för arbetsytor och moln IDE utformad för team och organisationer. Che version 7, för närvarande i beta, använder Eclipse Theia som grund för sin IDE. Äldre versioner av Che använder en GWT-baserad IDE. Che-arbetsytor körs i behållare på Docker, OpenShift eller Kubernetes.

Du kan köra Che i det offentliga molnet, ett privat moln eller installera det på vilket operativsystem som helst. Che har testats på Ubuntu, Linux, MacOS och Windows. Du kan också köra Che i en självbetjäningsarbetsyta som finns på //che.openshift.io/, för vilken du måste ha eller skapa en gratis OpenShift- eller Red Hat-inloggning.

Dessutom utgör Eclipse Che kärnan i Red Hat CodeReady Workspaces, den nya utvecklingsmiljön för OpenShift. Förutom att de stöds av Red Hat, har CodeReady Workspaces förbyggda stackar med stödda Red Hat-tekniker och inkluderar Red Hat SSO för att hantera autentisering och säkerhet mellan utvecklargruppen.

Eclipse Che-projektet innehåller bidrag från mer än 20 företag inklusive CodeEnvy (den ursprungliga utvecklaren av Che), Docker, IBM, Red Hat och TypeFox. Che-färdplanen inkluderar slutförandet av Theia-integrationen och plug-in-systemen för Theia och Che.

AWS Cloud9

Cloud9 IDE, som jag nämnde som en Go IDE 2017, tillhör nu Amazon Web Services. Förutom att ha en webbläsarbaserad, flerspråkig kodredigerare, debuggare för flera språk och en terminal som är förhandsautoriserad för AWS-tjänster, tillåter Cloud9 nu samverkande kodning.

Du kan köra Cloud9-utvecklingsmiljöer på hanterade Amazon EC2-instanser eller andra Linux-servrar som stöder SSH. Cloud9 innehåller verktyg för upp till 40 programmeringsspråk, även om endast fem har avlusare, sju har ludding och 12 har kodavslutning.

Om du kör Cloud9 på EC2 slutar EC2-instansen automatiskt efter att du stänger Cloud9, som standard efter 30 minuter, och din kod kommer att kvarstå i Amazon EBS-lagring. Om du kör Cloud9 på din egen Linux-server kommer koden att finnas kvar i lokal lagring. Om du startar om Cloud9 efter att dess underliggande förekomst har stoppat startar Cloud9 automatiskt om förekomsten och återställer din redigeringssession där du slutade.

Du kan enkelt fylla i en Cloud9-instans från ett arkiv eller från lokala filer. I skärmdumpen nedan använde jag Git från Cloud9-kommandoraden för att kolla in GitHub-förvaret för Keras. Om du redigerar ett projekt baserat på ett arkiv som du har tillstånd att använda kan du uppdatera repo och dra ändringar efter behov från kommandoraden. Cloud9 har inte grafiskt stöd för versionskontroll.

Observera översiktsvyn till höger om skärmdumpen nedan, som fungerar bra för grov navigering i en fil. Go-menyn som visas längst upp till vänster fungerar bra för mer allmän navigering. Det finns ingen refactoring-funktion i Cloud9, även om det är enkel kodformatering.

AWS Cloud9 är integrerat med Amazon Lightsail, AWS CodeStar, AWS Lambda-funktioner och AWS CodePipeline. Lambda-integrationen verkar vara särskilt bra.

Vilket moln IDE?

Eclipse Theia, Eclipse Che och AWS Cloud9 låter dig redigera och felsöka kod i flera programmeringsspråk från en webbläsare. Det finns skillnader i layout och funktionalitet, men det räcker inte för att betyda om du inte vill åstadkomma något ganska avancerat, såsom refactoring.

Cloud9 är ett särskilt bra val om du arbetar med AWS-projekt, och Che är ett särskilt bra val (som CodeReady) om du arbetar med kod för Red Hat-system. Theia ger den trevligaste redigeringsmiljön av de tre, men när Che 7 kommer ur beta kommer den också att ha en Theia IDE.