Aller au contenu
Accueil / Github Codespaces : Coder dans les nuages

Github Codespaces : Coder dans les nuages

  •  
github codespace

Avec un IDE remote

On connaissait déjà l’éditeur de code en ligne de Microsoft, version navigateur de son éditeur phare VS Code.

VS Code sur un navigateur

↑ — Revenir au début

Avec tout un environnement de développement entièrement en ligne : Github Codespaces

Github qui fait aussi partie de la maison Microsoft, a lancé en 2021 un service payant appelé Github Codespaces, qui propose des conteneurs de développement dans le cloud, à la demande et facturé à la durée d’utilisation et d’inactivité.

Un conteneur de développement est un environnement de développement clé en main. Cela permet d’avoir un environnement complet sans installer sur votre poste vos librairies, dépendances, SDK, etc. Tout sera pré-installé directement dans le conteneur. Github Codespaces utilise le plus célèbre, Docker. Il s’agit donc ici de proposer des environnements de développement totalement en ligne, avec tout l’outillage adéquat qu’on a d’habitude en local (Node et npm/yarn, git, mySQL, etc).

Votre stack, par exemple MERN, entièrement en remote

Vous avez le choix entre utiliser l’environnement Web ou bien connecter votre VSCode local au conteneur de dev.
Il y a des différences notables, dont la gestion des raccourcis claviers sur laquelle le navigateur prend parfois la main, ce qui peut être assez gênant. Il y a également moins de plugins compatibles sur la version web et pas d’accès au terminal qui doit rester local.

↑ — Revenir au début

La concurrence

Parmi les concurrents de Github Codespaces, on trouve Docker Development Environments ou Amazon AWS Cloud 9, réservés à des utilisateurs avancés. Sur le segment axé sur la facilité de prise en main comme l’est Github Codespaces, même pour les non développeurs, on trouve Gitpod.

↑ — Revenir au début

D’autres plateformes de code en ligne

Il existe également des plateformes de code au moins en partie gratuites. Leur ambition n’est pas de rivaliser avec les environnements complets payants comme Github Codespaces, mais ils ont leur utilité, pour des projets modestes, des exercices, ou de l’échange de code :

L’interface de Codepen avec HTML, CSS, JS en vis à vis
Les nombreuses possibilités de templates de CodeSandBox

Notons qu’avec Code Sandbox, il est possible de travailler sur son VSCode local, en y installant l’extension CodeSandbox Projects. Toutes les explications dans ce tuto.

↑ — Revenir au début

Conclusion

Point positif, les plateformes comme Github Codespaces sont une énorme avancée par rapport aux VDI (Virtual Desktop Infrastructure) et leur latence. Ici la latence est transparente étant donné qu’on ne stream pas un OS entier. Il suffit donc d’un navigateur web pour pouvoir développer et ça c’est plutôt fun pour les digital nomades.

Point négatif, personnellement, le fait que ce soit facturé à la durée d’utilisation et d’inactivité me rebute pour l’instant. Une fois qu’on a une machine pas trop ancienne, pratiquement tout est gratuit au moins à titre personnel (node, git, vscode, Docker, etc), et surtout utilisable en illimité. Ce serait dommage de s’en priver ! C’est un peu comme aller dans une laverie automatique au lieu d’investir dans un lave-linge. C’est moins douloureux parce que ce sont des petites sommes à chaque fois, mais au bout d’un moment, on finit par payer plus que le prix d’un lave linge.

Je trouve que pour un dev, les technologies serverless avec leur capacité de montée en charge rapide, n’ont d’intérêt que pour les sites ayant de fortes variations de fréquentation. Pour le reste, c’est surtout l’art de rendre payant ce qui était gratuit, avec un modèle économique de paiement à l’usage qui rappelle plus le Minitel que l’internet des origines. Cet internet où quand c’était gratuit, on n’était pas encore le produit.

Bien sûr, ça peut être très différent du point de vue d’un devops, par exemple.

Qu’en pensez-vous?

Lisez aussi

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *