Å få en ny utvikler til et programmeringsprosjekt med mange avhengigheter kan noen ganger være et mareritt. Jeg har sett et ekstremt tilfelle der selskapet til slutt ga opp og kjøpte utvikleren en ny datamaskin etter en måneds problemer med å prøve å konfigurere den gamle. Oftere kan det ta mellom tre dager og to uker å sette opp et nytt utviklingsmiljø for en ny utvikler.
Det problemet er en av motivasjonene for nettbaserte utviklerarbeidsområder. En annen motivasjon er at maskiner for lokal utvikling trenger betydelige CPU- og RAM-ressurser, noe som øker kostnadene for maskinvare; disse ressursene tillater utvikleren å bygge prosjektet raskt. Datamaskiner for tilgang til nettbaserte arbeidsområder kan slippe unna med maskinvare av lavere kvalitet enn datamaskiner for lokal utvikling.
Som en ekstra fordel kan nettbaserte utviklerarbeidsområder sentralisere og standardisere en konfigurasjon. Hvor mange ganger har du hørt "Det fungerer på maskinen min" som svar på en feilrapport? Standardiserte miljøer kan eliminere det problemet.
I denne artikkelen vil jeg diskutere tre sky-IDEer som gir nettbaserte utviklerarbeidsområder. To av dem - Eclipse Theia og Eclipse Che - er ganske nylig gratis open source-prosjekter som for tiden er i regi av Eclipse Foundation. Den tredje —AWS Cloud9 — er et eldre produkt som nå eies av og integreres med Amazon Web Services.
Formørkelse Theia
Eclipse Theia er et open source-prosjekt for å gi Visual Studio Code-utviklingsopplevelsen i en nettleser; den kan også kjøre på skrivebordet i elektronskallet. Theia er avhengig av Visual Studio Code’s Language Server Protocol for å tilby språkspesifikk kodefullføring og de andre funksjonene vi forventer i en moderne kodeditor.
Fordi det kan dra nytte av språkserverne som er skrevet for Visual Studio Code, har Theia tilgang til mer enn 60 tilgjengelige språkservere, inkludert JavaScript, Java, Python og TypeScript. Theia støtter også feilsøkingsadapterprotokollen.
Theia i seg selv er skrevet i TypeScript og bruker PhosphorJS som grunnlag for skallet og dets drabare dock-oppsett. Den integrerer en terminal som kobles til på nytt på nettleseren for å opprettholde kommandolinjehistorikken. Du kan lage dine egne utvidelser til Theia hvis du ønsker det.
Det er tre viktige måter å prøve Theia på. Den ene er å kjøre den i Docker:
docker run -it -p 3000: 3000 -v “$ (pwd): / home / project: cached” theiaide / theia: neste
Det andre er å kjøre det i Gitpod (se sidefelt og skjermbilde nedenfor). Den tredje er å kjøre Eclipse Che versjon 7 eller nyere (se neste avsnitt), som bruker Theia som brukergrensesnitt i stedet for Java-brukergrensesnitt som brukes i eldre versjoner av Che.
Eclipse Theia-prosjektet inkluderer bidrag fra TypeFox, Ericsson, Red Hat, IBM, Google og ARM. Prosjektets veikart inkluderer et plugin-system som støtter VS-kodeutvidelser (utover språkservere), integrering med testrammer og andre forbedringer.
TypeFox Gitpod
Gitpod er et kommersielt miljø (se skjermbilde ovenfor) designet for å åpne GitHub-arkiver i arbeidsområder. Gitpod IDE er åpen kildekode og basert på Eclipse Theia. Foreløpig i en gratis beta-testfase vil Gitpod alltid være gratis for open source-prosjekter, men vil etter hvert kreve et abonnement på åpne private arkiver og å bruke i mer enn 100 timer per måned.
Gitpod.io-skyen kjører for tiden i flere Kubernetes-klynger som er vert på Google Cloud-infrastruktur i tre forskjellige regioner rundt om i verden. Gitpod-produktet er også tilgjengelig for privat hosting.
Formørkelse Che
Eclipse Che er en åpen kildekode-utvikler arbeidsområdeserver og sky IDE designet for team og organisasjoner. Che versjon 7, for tiden i beta, bruker Eclipse Theia som grunnlag for IDE. Eldre versjoner av Che bruker en GWT-basert IDE. Che-arbeidsområder kjøres i containere på Docker, OpenShift eller Kubernetes.
Du kan kjøre Che i den offentlige skyen, en privat sky eller installere den på hvilket som helst operativsystem. Che har blitt testet på Ubuntu, Linux, MacOS og Windows. Du kan også kjøre Che i et selvbetjent arbeidsområde som er vert på //che.openshift.io/, som du må ha eller opprette en gratis OpenShift- eller Red Hat-pålogging.
I tillegg utgjør Eclipse Che kjernen i Red Hat CodeReady Workspaces, det nye utviklingsmiljøet for OpenShift. I tillegg til å bli støttet av Red Hat, har CodeReady Workspaces forhåndsbygde stabler med støttede Red Hat-teknologier og inkluderer Red Hat SSO for å håndtere autentisering og sikkerhet mellom utviklerlagene.
Eclipse Che-prosjektet inkluderer bidrag fra mer enn 20 selskaper, inkludert CodeEnvy (den opprinnelige utvikleren av Che), Docker, IBM, Red Hat og TypeFox. Che-veikartet inkluderer etterbehandling av Theia-integrasjonen og plug-in-systemene for Theia og Che.
AWS Cloud9
Cloud9 IDE, som jeg nevnte som en Go IDE i 2017, tilhører nå Amazon Web Services. I tillegg til å ha en nettleserbasert, flerspråklig kodeditor, feilsøking for flere språk og en terminal som er forhåndsgodkjent for AWS-tjenester, tillater Cloud9 nå samarbeidskoding.
Du kan kjøre Cloud9-utviklingsmiljøer på administrerte Amazon EC2-forekomster eller andre Linux-servere som støtter SSH. Cloud9 inkluderer verktøy for opptil 40 programmeringsspråk, selv om bare fem har feilsøkere, syv har linting og 12 har kodefullføring.
Hvis du kjører Cloud9 på EC2, stopper EC2-forekomsten automatisk etter at du har lukket Cloud9, som standard etter 30 minutter, og koden din vil fortsette i Amazon EBS-lagring. Hvis du kjører Cloud9 på din egen Linux-server, vil koden fortsette i lokal lagring. Hvis du starter Cloud9 på nytt etter at den underliggende forekomsten har stoppet, starter Cloud9 automatisk om forekomsten og gjenoppretter redigeringsøkten din der du slapp.
Du kan enkelt fylle ut en Cloud9-forekomst fra et depot eller fra lokale filer. I skjermbildet nedenfor brukte jeg Git fra Cloud9-kommandolinjen for å sjekke ut GitHub-depotet for Keras. Hvis du redigerer et prosjekt basert på et depot som du har tillatelse til, kan du oppdatere repoen og trekke endringer etter behov fra kommandolinjen. Cloud9 har ikke grafisk støtte for versjonskontroll.
Legg merke til oversiktsvisningen til høyre på skjermbildet nedenfor, som fungerer fint for grov navigering i en fil. Gå-menyen vist øverst til venstre fungerer fint for mer generell navigering. Det er ingen refactoring-funksjonalitet i Cloud9, selv om det er enkel kodeomformatering.
AWS Cloud9 er integrert med Amazon Lightsail, AWS CodeStar, AWS Lambda-funksjoner og AWS CodePipeline. Lambda-integrasjonen ser ut til å være spesielt god.
Hvilken sky IDE?
Eclipse Theia, Eclipse Che og AWS Cloud9 lar deg redigere og feilsøke kode på flere programmeringsspråk fra en nettleser. Det er forskjeller i layout og funksjonalitet, men ikke nok til å gjøre noe med mindre du vil oppnå noe ganske avansert, for eksempel refactoring.
Cloud9 er et spesielt godt valg hvis du jobber med AWS-prosjekter, og Che er et spesielt godt valg (som CodeReady) hvis du jobber med kode for Red Hat-systemer. Theia gir det fineste redigeringsmiljøet av de tre, men når Che 7 kommer ut av beta vil den også ha Theia IDE.