Προγραμματισμός

Cloud IDE shoot-out: AWS Cloud9 εναντίον Eclipse Che εναντίον Eclipse Theia

Η προσέλκυση ενός νέου προγραμματιστή σε ένα πρόγραμμα προγραμματισμού με πολλές εξαρτήσεις μπορεί μερικές φορές να είναι ένας εφιάλτης. Έχω δει μια ακραία περίπτωση όπου η εταιρεία τελικά εγκατέλειψε και αγόρασε τον προγραμματιστή έναν νέο υπολογιστή μετά από ένα μήνα ζητημάτων που προσπαθούσαν να διαμορφώσουν τον παλιό του. Συνήθως, η δημιουργία ενός νέου περιβάλλοντος ανάπτυξης για έναν νέο προγραμματιστή ενδέχεται να διαρκέσει από τρεις ημέρες έως δύο εβδομάδες.

Αυτό το ζήτημα είναι ένα από τα κίνητρα για χώρους εργασίας προγραμματιστών που βασίζονται στον Ιστό. Ένα άλλο κίνητρο είναι ότι οι μηχανές τοπικής ανάπτυξης χρειάζονται σημαντικούς πόρους CPU και RAM, οι οποίοι αυξάνουν το κόστος του υλικού. Αυτοί οι πόροι επιτρέπουν στον προγραμματιστή να κατασκευάσει το έργο γρήγορα. Οι υπολογιστές για πρόσβαση σε χώρους εργασίας που βασίζονται στον Ιστό μπορούν να ξεφύγουν από υλικό χαμηλότερου επιπέδου από τους υπολογιστές για τοπική ανάπτυξη.

Ως πρόσθετο όφελος, οι χώροι εργασίας προγραμματιστών μέσω διαδικτύου μπορούν να συγκεντρωθούν και να τυποποιηθούν μια διαμόρφωση. Πόσες φορές έχετε ακούσει "Λειτουργεί στον υπολογιστή μου" ως απάντηση σε μια αναφορά σφαλμάτων; Τα τυποποιημένα περιβάλλοντα μπορούν να εξαλείψουν αυτό το πρόβλημα.

Σε αυτό το άρθρο θα συζητήσω τρία IDE cloud που παρέχουν χώρους εργασίας προγραμματιστών που βασίζονται στον ιστό. Δύο από αυτά - το Eclipse Theia και το Eclipse Che - είναι αρκετά πρόσφατα έργα ανοιχτού κώδικα που βρίσκονται επί του παρόντος υπό την αιγίδα του Eclipse Foundation. Το τρίτο —AWS Cloud9 — είναι ένα παλαιότερο προϊόν που πλέον ανήκει και ενσωματώνεται στις Amazon Web Services.

Eclipse Theia

Το Eclipse Theia είναι ένα έργο ανοιχτού κώδικα που παρέχει την εμπειρία ανάπτυξης του Visual Studio Code σε ένα πρόγραμμα περιήγησης. Μπορεί επίσης να τρέξει στην επιφάνεια εργασίας στο κέλυφος των ηλεκτρονίων. Η Theia βασίζεται στο πρωτόκολλο διακομιστή γλωσσών του Visual Studio Code για να παρέχει ολοκλήρωση κώδικα για συγκεκριμένη γλώσσα και τις άλλες δυνατότητες που περιμένουμε σε έναν σύγχρονο επεξεργαστή κώδικα.

Επειδή μπορεί να εκμεταλλευτεί τους διακομιστές γλώσσας που έχουν γραφτεί για το Visual Studio Code, η Theia έχει πρόσβαση σε περισσότερους από 60 διαθέσιμους διακομιστές γλώσσας, συμπεριλαμβανομένων των JavaScript, Java, Python και TypeScript. Το Theia υποστηρίζει επίσης το πρωτόκολλο προσαρμογέα εντοπισμού σφαλμάτων.

Το ίδιο το Theia είναι γραμμένο σε TypeScript και χρησιμοποιεί το PhosphorJS ως το θεμέλιο για το κέλυφος και τις διατάξεις μεταφοράς με δυνατότητα μεταφοράς. Ενσωματώνει ένα τερματικό που επανασυνδέεται στο πρόγραμμα επαναφόρτωσης του προγράμματος περιήγησης για να διατηρήσει το ιστορικό της γραμμής εντολών. Μπορείτε να δημιουργήσετε τις δικές σας επεκτάσεις στο Theia, αν θέλετε.

Υπάρχουν τρεις βασικοί τρόποι για να δοκιμάσετε το Theia. Το ένα είναι να το τρέξετε στο Docker:

docker run -it -p 3000: 3000 -v "$ (pwd): / home / project: cached" theiaide / theia: επόμενο

Το δεύτερο είναι να το εκτελέσετε στο Gitpod (δείτε την πλευρική γραμμή και το στιγμιότυπο οθόνης παρακάτω). Το τρίτο είναι να εκτελέσετε το Eclipse Che έκδοση 7 ή μεταγενέστερη (δείτε την επόμενη ενότητα), η οποία χρησιμοποιεί το Theia ως UI αντί του Java UI που χρησιμοποιείται σε παλαιότερες εκδόσεις του Che.

Το έργο Eclipse Theia περιλαμβάνει συνεισφορές από τους TypeFox, Ericsson, Red Hat, IBM, Google και ARM. Ο χάρτης πορείας του έργου περιλαμβάνει ένα σύστημα προσθηκών για την υποστήριξη επεκτάσεων κώδικα VS (πέρα από τους διακομιστές γλωσσών), ενοποίηση με πλαίσια δοκιμών και άλλες βελτιώσεις.

TypeFox Gitpod

Το Gitpod είναι ένα εμπορικό φιλοξενούμενο περιβάλλον (δείτε το παραπάνω στιγμιότυπο οθόνης) που έχει σχεδιαστεί για να ανοίγει αποθετήρια GitHub σε χώρους εργασίας. Το Gitpod IDE είναι ανοιχτού κώδικα και βασίζεται στο Eclipse Theia. Επί του παρόντος, σε μια φάση δωρεάν δοκιμής beta, το Gitpod θα είναι πάντα δωρεάν για έργα ανοιχτού κώδικα, αλλά τελικά θα απαιτήσει συνδρομή για το άνοιγμα ιδιωτικών αποθετηρίων και για χρήση για περισσότερες από 100 ώρες το μήνα.

Το σύννεφο Gitpod.io εκτελείται αυτήν τη στιγμή σε πολλά συμπλέγματα Kubernetes που φιλοξενούνται σε υποδομή Google Cloud σε τρεις διαφορετικές περιοχές σε όλο τον κόσμο. Το προϊόν Gitpod είναι επίσης διαθέσιμο για ιδιωτική φιλοξενία.

Eclipse Che

Το Eclipse Che είναι ένας διακομιστής χώρου εργασίας προγραμματιστή ανοιχτού κώδικα και cloud IDE σχεδιασμένο για ομάδες και οργανισμούς. Το Che έκδοση 7, που βρίσκεται σε beta έκδοση, χρησιμοποιεί το Eclipse Theia ως βάση του IDE του. Οι παλαιότερες εκδόσεις του Che χρησιμοποιούν IDE με βάση το GWT. Οι χώροι εργασίας Che λειτουργούν σε κοντέινερ σε Docker, OpenShift ή Kubernetes.

Μπορείτε να εκτελέσετε το Che στο δημόσιο cloud, ένα ιδιωτικό cloud ή να το εγκαταστήσετε σε οποιοδήποτε λειτουργικό σύστημα. Το Che έχει δοκιμαστεί σε Ubuntu, Linux, MacOS και Windows. Μπορείτε επίσης να εκτελέσετε τον Che σε ένα χώρο εργασίας αυτοεξυπηρέτησης που φιλοξενείται στη διεύθυνση //che.openshift.io/, για τον οποίο θα πρέπει να έχετε ή να δημιουργήσετε δωρεάν σύνδεση OpenShift ή Red Hat.

Επιπλέον, το Eclipse Che αποτελεί τον πυρήνα των Red Hat CodeReady Workspaces, το νέο περιβάλλον ανάπτυξης για το OpenShift. Εκτός από το ότι υποστηρίζεται από το Red Hat, οι CodeReady Workspaces έχουν προ-χτισμένες στοίβες με υποστηριζόμενες τεχνολογίες Red Hat και περιλαμβάνουν το Red Hat SSO για να χειρίζονται τον έλεγχο ταυτότητας και την ασφάλεια μεταξύ των ομάδων προγραμματιστών.

Το έργο Eclipse Che περιλαμβάνει συνεισφορές από περισσότερες από 20 εταιρείες, συμπεριλαμβανομένων των CodeEnvy (ο αρχικός προγραμματιστής της Che), Docker, IBM, Red Hat και TypeFox. Ο οδικός χάρτης Che περιλαμβάνει την ολοκλήρωση της ολοκλήρωσης Theia και τα συστήματα plug-in για τα Theia και Che.

AWS Cloud9

Το Cloud9 IDE, το οποίο ανέφερα ως Go IDE το 2017, ανήκει πλέον στο Amazon Web Services. Εκτός από το ότι διαθέτει πρόγραμμα περιήγησης κώδικα πολλαπλών γλωσσών που βασίζεται σε πρόγραμμα περιήγησης, προγράμματα εντοπισμού σφαλμάτων για διάφορες γλώσσες και τερματικό που έχει προεγκριθεί για υπηρεσίες AWS, το Cloud9 επιτρέπει πλέον τη συνεργατική κωδικοποίηση.

Μπορείτε να εκτελέσετε περιβάλλοντα ανάπτυξης Cloud9 σε διαχειριζόμενες παρουσίες Amazon EC2 ή σε διακομιστές Linux που υποστηρίζουν SSH. Το Cloud9 περιλαμβάνει εργαλεία για πάνω από 40 γλώσσες προγραμματισμού, αν και μόνο πέντε έχουν προγράμματα εντοπισμού σφαλμάτων, επτά έχουν χνούδι και 12 έχουν κώδικα ολοκλήρωσης.

Εάν εκτελέσετε το Cloud9 στο EC2, η παρουσία EC2 θα σταματήσει αυτόματα μετά το κλείσιμο του Cloud9, από προεπιλογή μετά από 30 λεπτά και ο κώδικάς σας θα παραμείνει στον χώρο αποθήκευσης Amazon EBS. Εάν εκτελείτε το Cloud9 στον δικό σας διακομιστή Linux, ο κωδικός θα παραμείνει στην τοπική αποθήκευση. Εάν κάνετε επανεκκίνηση του Cloud9 αφού σταματήσει η υποκείμενη παρουσία του, το Cloud9 θα επανεκκινήσει αυτόματα την παρουσία και θα επαναφέρει την περίοδο επεξεργασίας που είχατε σταματήσει.

Μπορείτε εύκολα να συμπληρώσετε μια παρουσία Cloud9 από ένα αποθετήριο ή από τοπικά αρχεία. Στο παρακάτω στιγμιότυπο οθόνης, χρησιμοποίησα το Git από τη γραμμή εντολών Cloud9 για να ελέγξω το αποθετήριο GitHub για Keras. Εάν επεξεργάζεστε ένα έργο που βασίζεται σε ένα αποθετήριο για το οποίο έχετε άδεια δέσμευσης, μπορείτε να ενημερώσετε το repo και να τραβήξετε αλλαγές όπως απαιτείται από τη γραμμή εντολών. Το Cloud9 δεν διαθέτει γραφική υποστήριξη για έλεγχο έκδοσης.

Σημειώστε την προβολή διάρθρωσης στα δεξιά του στιγμιότυπου οθόνης παρακάτω, η οποία λειτουργεί καλά για την ακαθάριστη πλοήγηση σε ένα αρχείο. Το μενού Go που εμφανίζεται πάνω αριστερά λειτουργεί όμορφα για πιο γενική πλοήγηση. Δεν υπάρχει λειτουργικότητα αναδιάρθρωσης στο Cloud9, αν και υπάρχει απλή αναδιαμόρφωση κώδικα.

Το AWS Cloud9 είναι ενσωματωμένο με Amazon Lightsail, AWS CodeStar, AWS Lambda και AWS CodePipeline. Η ενσωμάτωση της Lambda φαίνεται να είναι ιδιαίτερα καλή.

Ποιο σύννεφο IDE;

Όλα τα Eclipse Theia, Eclipse Che και AWS Cloud9 σάς επιτρέπουν να επεξεργάζεστε και να διορθώνετε τον κώδικα σε πολλές γλώσσες προγραμματισμού από ένα πρόγραμμα περιήγησης. Υπάρχουν διαφορές στη διάταξη και τη λειτουργικότητα, αλλά δεν αρκούν για να έχει σημασία αν δεν θέλετε να επιτύχετε κάτι αρκετά προηγμένο, όπως η αναδιαμόρφωση.

Το Cloud9 είναι μια ιδιαίτερα καλή επιλογή εάν εργάζεστε σε έργα AWS και το Che είναι μια ιδιαίτερα καλή επιλογή (ως CodeReady) εάν εργάζεστε σε κώδικα για συστήματα Red Hat. Το Theia παρέχει το καλύτερο περιβάλλον επεξεργασίας των τριών, αλλά μόλις το Che 7 βγει από το beta, θα έχει και το Theia IDE.