- Une discussion avec Nathan, Max et Antonio, cofondateurs de Zed, a soulevé des questions sur les raisons des choix techniques, l’importance de Rust et l’intention de posséder l’ensemble de la stack technique.
- Ils ont à nouveau répondu, en partageant une version éditée d’une conversation d’une heure.
D’Atom à Zed : un parcours de 10 ans
- Les trois cofondateurs travaillent ensemble depuis environ dix ans et ont décidé de créer Zed après avoir développé Atom.
- La vision de Zed est une version plus aboutie de la vision initiale d’Atom, avec des choix techniques étroitement liés à cette vision.
- Des choix techniques comme Rust, l’accélération GPU et les CRDT sont importants pour atteindre les objectifs de Zed.
Choix techniques et vision
- La vision de Zed est de créer un éditeur de texte léger qui apporte des fonctionnalités d’IDE quand il le faut.
- Lors du développement d’Atom, des limites techniques et un manque de maturité technique ont empêché la réalisation complète de cette vision.
- L’apparition de Rust a permis de surmonter les limites existantes.
Limites d’Atom et nouveau départ
- Le développement d’Atom a connu des problèmes de performance à cause des limites de JavaScript et des contraintes de la technologie web.
- En 2017, ayant ressenti les limites de la plateforme existante, ils ont décidé de recommencer Zed à partir de zéro.
- Ils ont visé l’amélioration des performances grâce à Rust et à l’accélération GPU.
L’impact de Rust
- Rust offre des abstractions de haut niveau tout en garantissant d’excellentes performances.
- Les « abstractions à zéro coût » de Rust jouent un rôle crucial dans le développement d’un éditeur de texte.
- On peut obtenir des performances similaires avec C++ ou C, mais Rust offre une expérience de développement plus simple et plus sûre.
L’importance de posséder la stack complète
- L’équipe Zed possède l’ensemble de la stack technique, du tree-sitter au framework d’interface utilisateur GPUI accéléré par GPU.
- Prendre la stack en main est un choix intentionnel qui permet un contrôle total des performances et des fonctionnalités.
Équilibrer abstraction parfaite et réactivité
- Il est important de ne construire que ce qui est nécessaire, à la juste dose, et de réviser ensuite au moment opportun sur la base de ce qui a été appris.
- Les parties essentielles reçoivent un investissement suffisant en temps pour garantir qualité et hautes performances.
Relation entre les outils développeur et la technologie
- Les utilisateurs d’outils de développement peuvent être plus sensibles à la technologie, car elle influence les performances et les fonctionnalités proposées aux utilisateurs.
- Le fait que Zed soit écrit en Rust permet aux développeurs de contribuer facilement, ce qui favorise la participation de la communauté.
Avis de GN+
- Le processus de développement de Zed montre à quel point les choix techniques sont importants pour la vision et les performances du produit ; le choix d’un langage moderne comme Rust peut améliorer à la fois la productivité des développeurs et les performances du produit.
- Posséder l’ensemble de la stack donne à l’équipe de Zed une flexibilité en matière d’optimisation des performances et de développement de fonctionnalités, jouant un rôle déterminant dans la création d’un éditeur de texte haute performance.
- Dans les outils pour développeurs, la technologie utilisée peut avoir une plus grande incidence sur l’expérience utilisateur finale, ce qui peut influencer la perception de Zed par la communauté des développeurs. L’usage de Rust rend la contribution à Zed plus attractive pour les développeurs, avec un impact positif sur la croissance et l’évolution du produit.
1 commentaires
Commentaires Hacker News
Un framework d'interface utilisateur personnalisé peut être amusant en ce moment, mais il peut poser problème quand vient le temps d'implémenter l'accessibilité. Mettre en place l'accessibilité dans un framework personnalisé sans dégradation des performances n'est pas facile et peut demander un travail complexe selon la plateforme. Comme Zed se positionne comme un outil de collaboration plutôt que comme un simple éditeur, il est important qu'il puisse être utilisé par tous les membres de l'équipe de développement.
Un avertissement concernant la licence que les utilisateurs doivent accepter avant d'utiliser l'éditeur de texte Zed. Le contenu de l'utilisateur est classé comme « User Content » et n'est transmis à l'environnement qu'en cas de partage d'un projet avec d'autres utilisateurs Zed. L'accès de Zed au contenu utilisateur est limité à des fins de débogage et d'amélioration des solutions.
Zed paraît très prometteur, mais il ne peut pas être utilisé car il ne prend pas en charge les hôtes distants ou les dev containers. La fonctionnalité équivalente de VSCode est importante pour mon workflow, et je préfère utiliser mon Mac comme passerelle pour coder dans des VM et des containers. Cela améliore l'isolation des projets et le niveau de sécurité.
Une excellente interview qui donne un aperçu de l'approche des développeurs du code. Elle donne matière à réflexion sur la manière de regarder le développement sous différents angles.
Je n'utilise pas Zed, mais j'ai vu José Valim l'utiliser lorsqu'il streamait en direct une session de code. J'utilise principalement VSCode, mais j'ai été impressionné par la fonction « Find All » de Zed. Comme VSCode, il ouvre une fenêtre de résultats affichant des extraits de tous les fichiers correspondants, mais avec Zed, on peut éditer les snippets directement à cet endroit. C'est le contraire de VSCode, où il faut cliquer sur le résultat pour ouvrir le fichier, puis éditer.
Zed ne fonctionne pas sous Windows ou Linux. Je demande d'être prévenu une fois qu'il fonctionnera sur ces plateformes.
Cette interview était excellente, et elle m'a impressionné par la réflexion portée sur le « gold-plate ». Le meilleur travail sort souvent lors d'un second essai, voire des suivants. Je suis curieux de savoir s'il y a un plan pour rendre la configuration de Zed scriptable. Je n'ai pas encore beaucoup utilisé Zed, mais pour les utilisateurs de VSCode et Atom, il y a des outils utiles comme Neon.
J'ai essayé Zed et j'ai eu le sentiment qu'il ressemblait à VSCode. Le mode multijoueur est mieux que Live Share, mais il faudra plus de choses pour convaincre de changer. Si Zed pouvait remplacer XCode, j'irais davantage vers Zed. J'éprouve de la difficulté avec l'utilisation de XCode, et j'aimerais une expérience de développement iOS à la manière d'Android Studio.
Je préfère les applications natives, mais pour l'instant je dois utiliser VSCode. C'est dommage de voir VSCode consommer beaucoup trop d'énergie simplement lorsque le curseur clignote. Zed est léger et rapide, mais comme je suis habitué au support de Jupyter Notebook et au développement distant sur Mac avec une boîte Ubuntu, VSCode fonctionne bien. J'espère que le développement continuera assez longtemps jusqu'à ce que Zed soutienne mon workflow.
J'ai consulté la page About de Zed, et la fonction de live coding m'a semblé utile. Ce serait un projet amusant pour les développeurs, avec la possibilité de faire des algorithmes, de l'optimisation de performance, de la programmation GPU, etc. Mais je me demande s'il faut un autre éditeur de texte qui ne peut pas être fonctionnellement équivalent à Vim et au multiplexeur terminal.