Programmering

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

At få en ny udvikler til et programmeringsprojekt med mange afhængigheder kan undertiden være et mareridt. Jeg har set et ekstremt tilfælde, hvor virksomheden endelig opgav og købte udvikleren en ny computer efter en måned med problemer, der forsøgte at konfigurere sin gamle. Mere almindeligt kan det tage mellem tre dage og to uger at oprette et nyt udviklingsmiljø for en ny udvikler.

Dette spørgsmål er en af ​​motivationen til webbaserede udviklerarbejdsområder. En anden motivation er, at maskiner til lokal udvikling har brug for betydelige CPU- og RAM-ressourcer, hvilket øger omkostningerne ved hardware; disse ressourcer giver udvikleren mulighed for at opbygge projektet hurtigt. Computere til at få adgang til webbaserede arbejdsområder kan slippe af med hardware af lavere kvalitet end computere til lokal udvikling.

Som en ekstra fordel kan webbaserede udviklerarbejdsområder centralisere og standardisere en konfiguration. Hvor mange gange har du hørt "Det virker på min maskine" som svar på en fejlrapport? Standardiserede miljøer kan eliminere dette problem.

I denne artikel vil jeg diskutere tre cloud-IDE'er, der leverer webbaserede udviklerarbejdsområder. To af dem - Eclipse Theia og Eclipse Che - er temmelig nylige gratis open source-projekter, der i øjeblikket er i regi af Eclipse Foundation. Den tredje —AWS Cloud9 — er et ældre produkt, der nu ejes af og integreres med Amazon Web Services.

Formørkelse Theia

Eclipse Theia er et open source-projekt, der giver Visual Studio Code-udviklingsoplevelsen i en browser; det kan også køre på skrivebordet i elektronskallen. Theia er afhængig af Visual Studio Code's Language Server Protocol for at levere sprogspecifik kodekomplettering og de andre funktioner, vi forventer i en moderne kodeditor.

Fordi det kan drage fordel af de sprogservere, der er skrevet til Visual Studio Code, har Theia adgang til mere end 60 tilgængelige sprogservere inklusive JavaScript, Java, Python og TypeScript. Theia understøtter også debug adapter-protokollen.

Theia selv er skrevet i TypeScript og bruger PhosphorJS som grundlaget for sin skal og dens trækbare docklayout. Det integrerer en terminal, der genopretter forbindelse til browserindlæsning for at opretholde kommandolinjens historie. Du kan oprette dine egne udvidelser til Theia, hvis du ønsker det.

Der er tre vigtige måder at prøve Theia på. Den ene er at køre den i Docker:

docker-kørsel -it -p 3000: 3000 -v “$ (pwd): / home / project: cached” theiaide / theia: næste

Det andet er at køre det i Gitpod (se sidepanel og skærmbillede nedenfor). Den tredje er at køre Eclipse Che version 7 eller nyere (se næste afsnit), der bruger Theia som dets brugergrænseflade i stedet for Java-brugergrænsefladen, der bruges i ældre versioner af Che.

Eclipse Theia-projektet inkluderer bidrag fra TypeFox, Ericsson, Red Hat, IBM, Google og ARM. Projektets køreplan inkluderer et plug-in-system til understøttelse af VS-kodeudvidelser (ud over sprogservere), integration med testrammer og andre forbedringer.

TypeFox Gitpod

Gitpod er et kommercielt hostet miljø (se skærmbillede ovenfor) designet til at åbne GitHub-arkiver i arbejdsområder. Gitpod IDE er open source og baseret på Eclipse Theia. I øjeblikket i en gratis beta-testfase vil Gitpod altid være gratis til open source-projekter, men vil til sidst kræve et abonnement på åbne private arkiver og at bruge i mere end 100 timer om måneden.

Gitpod.io skyen kører i øjeblikket i flere Kubernetes klynger hostet på Google Cloud infrastruktur i tre forskellige regioner rundt om i verden. Gitpod-produktet er også tilgængeligt til privat hosting.

Formørkelse Che

Eclipse Che er en open source-udvikler arbejdsområdeserver og cloud IDE designet til teams og organisationer. Che version 7, der i øjeblikket er i beta, bruger Eclipse Theia som basis for sin IDE. Ældre versioner af Che bruger en GWT-baseret IDE. Che-arbejdsområder køres i containere på Docker, OpenShift eller Kubernetes.

Du kan køre Che i den offentlige sky, en privat sky eller installere den på ethvert operativsystem. Che er blevet testet på Ubuntu, Linux, MacOS og Windows. Du kan også køre Che i et selvbetjeningsarbejdsområde, der er hostet på //che.openshift.io/, som du skal have eller oprette et gratis OpenShift- eller Red Hat-login.

Derudover udgør Eclipse Che kernen i Red Hat CodeReady Workspaces, det nye udviklingsmiljø for OpenShift. Ud over at blive understøttet af Red Hat, har CodeReady Workspaces også indbyggede stakke med understøttede Red Hat-teknologier og inkluderer Red Hat SSO til håndtering af godkendelse og sikkerhed mellem udviklerholdene.

Eclipse Che-projektet inkluderer bidrag fra mere end 20 virksomheder, herunder CodeEnvy (den oprindelige udvikler af Che), Docker, IBM, Red Hat og TypeFox. Che-køreplanen inkluderer færdiggørelse af Theia-integrationen og plug-in-systemerne til Theia og Che.

AWS Cloud9

Cloud9 IDE, som jeg nævnte som en Go IDE i 2017, tilhører nu Amazon Web Services. Ud over at have en browserbaseret, flersproget kodeditor, debuggere til flere sprog og en terminal, der er forhåndsgodkendt til AWS-tjenester, giver Cloud9 nu mulighed for samarbejdskodning.

Du kan køre Cloud9-udviklingsmiljøer på administrerede Amazon EC2-forekomster eller andre Linux-servere, der understøtter SSH. Cloud9 inkluderer værktøj til op til 40 programmeringssprog, selvom kun fem har debuggere, syv har fnug og 12 har kodefærdiggørelse.

Hvis du kører Cloud9 på EC2, stopper EC2-forekomsten automatisk, når du lukker Cloud9 som standard efter 30 minutter, og din kode forbliver i Amazon EBS-lagring. Hvis du kører Cloud9 på din egen Linux-server, forbliver koden i lokal opbevaring. Hvis du genstarter Cloud9, når den underliggende forekomst er stoppet, genstarter Cloud9 automatisk forekomsten og gendanner din redigeringssession, hvor du slap.

Du kan nemt udfylde en Cloud9-forekomst fra et lager eller fra lokale filer. I skærmbilledet nedenfor brugte jeg Git fra Cloud9-kommandolinjen til at tjekke GitHub-lageret til Keras. Hvis du redigerer et projekt baseret på et lager, som du har givet tilladelse til, kan du opdatere repoen og trække ændringer efter behov fra kommandolinjen. Cloud9 har ikke grafisk understøttelse af versionskontrol.

Bemærk omridsvisningen til højre for skærmbilledet nedenfor, som fungerer pænt til grov navigation i en fil. Gå-menuen vist øverst til venstre fungerer pænt til mere generel navigation. Der er ingen refactoring-funktionalitet i Cloud9, selvom der er simpel kodeformatering.

AWS Cloud9 er integreret med Amazon Lightsail, AWS CodeStar, AWS Lambda-funktioner og AWS CodePipeline. Lambda-integrationen ser ud til at være særlig god.

Hvilken sky IDE?

Eclipse Theia, Eclipse Che og AWS Cloud9 giver dig alle mulighed for at redigere og fejle kode på flere programmeringssprog fra en browser. Der er forskelle i layout og funktionalitet, men ikke nok til at betyde noget, medmindre du vil opnå noget ret avanceret, såsom refactoring.

Cloud9 er et særligt godt valg, hvis du arbejder på AWS-projekter, og Che er et særligt godt valg (som CodeReady), hvis du arbejder på kode til Red Hat-systemer. Theia giver det fineste redigeringsmiljø af de tre, men når Che 7 kommer ud af beta, har den også en Theia IDE.