27 points par xguru 2022-06-21 | 10 commentaires | Partager sur WhatsApp
  • À l’avenir, tout le développement se fera non pas sur le localhost mais dans le « cloud », et le laptop ne sera plus qu’un simple client
  • Si l’on écrivait la wishlist des développeurs des années 2030
    • un Internet gigabit bon marché (5G/Mesh WiFi)
    • une machine de développement abordable avec une batterie qui tient plusieurs jours
    • des applications qui se buildent en quelques secondes quelle que soit leur taille, avec des environnements de test et de staging disponibles en direct et en temps réel dès la première frappe au clavier
    • un environnement de développement personnel qui me suit partout, quel que soit l’appareil que j’utilise
    • les dépendances environnementales de l’app (de certificats HTTPS jusqu’à des forks sandboxés de la base de données de production) sont fournies instantanément à tout membre de l’équipe qui veut développer une fonctionnalité, sans documentation ni runbook
    • passer de l’idée à une mise à disposition aux clients en une semaine seulement (avec des builders low-code et des Backends-as-a-Service)
    • passer de la MVP à la licorne en quelques semaines : grâce au serverless et à des plateformes comme le « nouveau Heroku ». Authentification/paiement/DB/communication sont gérés via des SaaS de classe mondiale
  • La plupart des éléments ci-dessus exigent de s’exécuter non pas sur le localhost mais dans le « cloud »

Si le navigateur a réduit le système d’exploitation à un « ensemble de pilotes de périphériques mal débogués »,
le cloud est en train de réduire la machine de développement à un « ensemble de mocks d’environnement mal gérés »

« Future is Just Not Evenly Distributed »

  • Les grandes entreprises qui ont investi pour améliorer la productivité des développeurs travaillent déjà dans le cloud
    • Google Cider : l’IDE web de Google. Il s’appuie sur l’énorme système de fichiers Piper et intègre code review/build/testing. Pas besoin de récupérer le code sur la machine locale
    • FB On-Demand : provisionne des environnements « On-Demand » pour permettre un aperçu en temps réel des fonctionnalités, plus fidèle qu’en local. Chez FB, le « développement local » n’existe tout simplement pas
    • Etsy : tout le développement se fait sur des VM cloud. « Comme VSCode fonctionne en SSH vers la VM, je n’ai jamais eu à checkout du code en dehors de la VM »
    • Tesla : a fait passer le développement de l’OS automobile du local au cloud (avant cela, l’entreprise fournissait aux développeurs de coûteux desktops de build)
    • Palantir : est passé à des Remote Ephemeral Workspaces utilisant Coder (SaaS d’environnements de développement distants) et EKS
    • Shopify : la plupart des développeurs ont migré vers un environnement de développement cloud appelé Spin (VM légère fonctionnant sur xhyve)
    • GitHub : a transféré la majeure partie de son développement vers Codespaces
  • Ce sont de grandes entreprises… d’où la question : « Est-ce que cela convient aussi aux petites entreprises ? »
    → La réponse est « probablement oui, mais peut-être pas sous leur forme actuelle »
    → La plupart de ces systèmes ont nécessité d’importants investissements internes et ont été possibles grâce à une infrastructure interne existante
    → Mais à mesure que ces technologies se transforment en produits et que les points communs entre clientèles apparaissent, elles se diffuseront de plus en plus
  • La commercialisation des environnements de preview existe déjà
    → L’innovation initiale de Netlify a été de permettre le déploiement de projets frontend pour en faire des previews
    → Presque tous les sites de documentation utilisent désormais une forme de système de Deploy Preview, et les applications Jamstack peuvent aussi s’en servir dans leur processus de release

Jobs to Be Done du localhost

  • Ce qui se passe dans le développement local est désormais attaqué sur tous les fronts
    • modifier et exécuter du code à distance : GitHub Codespaces, Replit, Code.com, CodeSandbax, GitPod
    • exécuter sur un serveur distant mais modifier le code en local : VSCode + Azure VM/Amazon Workspace, Jetbrains Fleet, Okteto Sync
    • modifier et exécuter du code dans un conteneur JS léger dans le navigateur : Stackblitz
    • exécuter du code à distance : Bret.dev
    • staging : Planetscale Branches, Stripe Test mode keys, Railway Ephemeral Environments, Okteto environments, Coherence workspaces

Pushback: It’s Still Not Good Enough

  • Ce n’est pas encore assez bon, donc inutile de s’emballer
  • Pour que cette « mise à mort du localhost » réussisse, il faut que le provisionnement lui-même ne soit plus nécessaire
  • Cela varie selon les personnes, mais pour moi, même 10 secondes pour lancer une preview du code que je viens d’écrire, c’est déjà trop long
  • Déployer une preview frontend avec Netlify Drop prend 1 seconde, mais la Netlify CLI en prend 10
  • Pourtant, j’utilise encore par habitude un environnement de développement localhost : parce que ma boucle d’itération se joue à l’échelle de la milliseconde
  • Ce problème de latence ressemble à l’application de la loi de Moore à l’infrastructure cloud
  • Si ce n’est pas encore suffisant aujourd’hui, revenez voir dans 5 ans

10 commentaires

 
botplaysdice 2023-10-19

On dirait vraiment que le rôle du laptop est devenu celui d’une machine pour le terminal et les réunions. Un Chromebook à base d’ARM avec plus de 20 heures d’autonomie semble devenir le laptop idéal.

 
ahwjdekf 2023-10-19

Ce serait formidable si cela pouvait vraiment se passer ainsi, mais, dans les entreprises qui ont adopté aujourd’hui des environnements cloud virtualisés, on impose encore aux développeurs un environnement avec 8 Go de mémoire et 4 CPU comme spécifications (et en insistant vraiment, on obtient tout juste 16 Go). L’écart entre la réalité et l’idéal est vraiment trop important.

 
colossus 2023-04-02

GitPod prend aussi en charge l’édition depuis VSCode en local. À l’usage, c’est vraiment seamless (à part une légère latence dans la saisie dans le terminal et un petit manque de réactivité lors du dépliage des dossiers, l’expérience ne change pratiquement pas).

 
525hm 2022-06-22

Je suis surpris d'apprendre que Tencent s'y met aussi. https://zdnet.co.kr/view/?no=20220620003628

Serait-ce le retour de l'ère des workstations...

 
nuthatch 2022-06-21

Les tablettes devraient donc être encore plus mises en avant qu’aujourd’hui.

 
ragingwind 2022-06-21

Je déplace autant que possible mes projets personnels vers un développement basé sur le cloud, mais j’ai l’impression qu’il y a des limites avec le seul IDE. Ce serait bien que la latence s’améliore aussi, et il faudrait un environnement où tous les outils simples que j’utilise puissent être employés librement, ou bien une approche complémentaire. Ce serait vraiment idéal de pouvoir développer en continu avec la même expérience sur Windows, Mac, Linux et même des appareils VR. Un peu comme les jeux Xbox actuels, où le local a ses avantages et le cloud les siens, il est difficile de viser immédiatement une seule méthode, mais au final, tout ne va-t-il pas naturellement basculer vers le cloud ?

 
kunggom 2022-06-21

Personnellement, si l’on prend en compte des problèmes comme la latence, je me dis qu’on ira peut-être vers une approche où l’on développe en lançant sur la machine locale un environnement full stack conteneurisé, comme avec WebContainers, puis où l’on enregistre et répercute le résultat dans le cloud. Parmi les exemples mentionnés dans l’article, il y aurait quelque chose comme StackBlitz.

 
kallare 2022-06-21

Plutôt que la fin de localhost, j’y vois plutôt le retour du thin client...

On commence par la commodité, puis plus tard, j’ai l’impression que cela pourrait évoluer vers une logique de sécurité...

 
xguru 2022-06-21

Ce n’est pas une traduction intégrale mais un résumé, donc je vous recommande aussi de consulter le texte original.

Dans la partie de fin qui récapitule les réactions des gens, il est dit que « sur Reddit / HN, tout le monde déteste l’idée que l’on finisse comme ça »…
Pour ma part, j’arrive tout à fait à imaginer un avenir de ce genre. Bien sûr, pendant la transition, on aura probablement un mélange de « édition du code en local + exécution sur une VM distante », mais
si le cloud peut garantir à peu près une latence au niveau de l’édition de code en local, j’ai l’impression que la plupart des entreprises choisiront cette option.

 
ffdd270 2022-06-21

Moi aussi, mais j’ai l’impression que c’est parce que sur Reddit et HN, beaucoup de gens aiment l’idée de garder « mes données sur mon appareil ». Je ne veux pas non plus perdre le contrôle de mes données, donc je n’utilise un IDE cloud que de temps en temps, quand j’écris du code d’exemple.