DevNews

Starling : un bureau Linux en Swift, écrit avec Claude

Sur cette page
  1. Ce qu'il y a derrière le nom
  2. Le décompte des lignes est la partie honnête
  3. Ce que cela ne dit pas encore
  4. Si vous voulez l'essayer
  5. Sources et pour aller plus loin

Starling est un nouvel environnement de bureau Linux annoncé mardi, et l'affirmation qui l'accompagne est le point intéressant : un développeur seul a dirigé Claude sur environ 2 000 commits en six mois pour produire 335 000 lignes de code propre au projet. Il en sort une vraie session dans laquelle vous ouvrez un compte, avec son compositeur Wayland écrit en C, un serveur X11 intégré, un shell et des applications en Swift, et des logiciels tiers non modifiés qui tournent comme des clients natifs. Le tout est sous licence Apache 2.0, livré en paquet .deb de 53 Mo pour Ubuntu 26.04 LTS, et assume d'être en version 0.2. Le décompte des lignes mérite qu'on s'y arrête.

The short answer

Starling est un nouvel environnement de bureau Linux annoncé le mardi vingt huit juillet. Un développeur seul a dirigé Claude sur environ 2 000 commits en six mois pour produire 335 000 lignes de code propre au projet, en Swift, C et C++. Environ 273 000 de ces lignes sont un portage du framework Flutter vers Swift, ce qui laisse à peu près 62 000 lignes pour le shell, le compositeur Wayland, le serveur X11 intégré et les applications fournies. Il lance sans modification Chrome, Slack, Zoom, VS Code, IntelliJ, GIMP et Blender. Licence Apache 2.0, version 0.2, Ubuntu 26.04 LTS sur AMD Radeon et virtio-gpu.

335klignes de code propres au projet
6mois entre le premier commit et une session utilisable
53 Mole paquet .deb pour Ubuntu 26.04 LTS
Carte réponse : Starling est un environnement de bureau Linux de 335 000 lignes construit en six mois par un développeur dirigeant Claude, avec un compositeur Wayland en C, un serveur X11 intégré, un shell Swift et un portage du framework Flutter vers Swift de 273 000 lignes.
Le projet tel qu'il se décrit. Source : le site du projet Starling et son dépôt GitHub. PNG

Le réflexe, quand un projet annonce qu'une IA l'a écrit, est de vérifier si quelque chose fonctionne. La réponse est le plus souvent une maquette dans un navigateur avec un faux dock. Celui ci démarre comme une session, héberge un serveur X11, et ouvre Blender.

Ce qu'il y a derrière le nom

Starling n'est pas un shell posé sur le compositeur de quelqu'un d'autre. Il apporte le sien, écrit en C, qui dialogue avec DRM et KMS directement pour piloter l'affichage et lit lui même les périphériques d'entrée bruts. À côté tourne un serveur X11 hébergé dans la même session, avec DRI3 et Present, pour que tout ce qui n'a pas fait le pas vers Wayland obtienne quand même une fenêtre.

La couche du dessus est en Swift : le shell, le gestionnaire de fenêtres, le dock, les espaces de travail, les portails, et un jeu d'applications maison couvrant Fichiers, Terminal, Réglages, Calculatrice, Éditeur de texte, Visionneuse d'images et une logithèque pointée vers l'archive Ubuntu. Tout cela est dessiné par un portage du framework Flutter vers Swift, où réside l'essentiel du volume de code.

Le compositeur annonce xdg-shell, linux-dmabuf, viewporter et fractional-scale-v1, entre autres. Cette liste est la raison pour laquelle Chrome et les applications Electron non modifiées fonctionnent, plutôt qu'un ensemble de démonstration trié sur le volet.

Le décompte des lignes est la partie honnête

Figure liste détaillant le projet Starling : 273 000 lignes de portage du framework Flutter vers Swift, 62 000 lignes de shell, compositeur et applications, environ 2 000 commits, six mois, Apache 2.0, version 0.2, Ubuntu 26.04 sur AMD Radeon et virtio-gpu.
Où se situent réellement les 335 000 lignes, et ce que cela change à la lecture du chiffre. PNG

335 000 lignes en six mois est le chiffre qui circule. Le détail publié par le projet est plus utile.

Environ 273 000 de ces lignes sont le portage de Flutter vers Swift. C'est un travail de traduction : un corpus ample, répétitif, bien spécifié, avec une implémentation de référence disponible pour se vérifier. C'est proche du meilleur cas pour un modèle de langage, et ce n'est pas là que se prennent les décisions de conception difficiles.

Les 62 000 lignes restantes sont le shell, le compositeur, le serveur X11 et les applications. C'est la partie qu'il a fallu inventer. Soixante deux mille lignes pour un compositeur Wayland fonctionnel, un serveur X et une session utilisable restent une quantité de code sérieuse à toute échelle, et c'est un chiffre bien plus informatif que celui du titre.

Nous préférerions voir le petit nombre cité, car c'est celui qui résiste à l'examen.

Ce que cela ne dit pas encore

Une annonce établit que le code existe et qu'il fonctionne sur le matériel de son auteur. Elle n'établit pas comment il se relit.

Les questions à garder ouvertes sont des questions logicielles ordinaires. Comment le compositeur se comporte sur du graphique Intel ou NVIDIA, absents de la liste vérifiée. Ce qu'il advient des cas limites de protocole que les boîtes à outils n'exercent que sous charge : tempêtes de redimensionnement, suivi des zones à redessiner, passage du presse papiers entre les moitiés Wayland et X11. Si un contributeur qui n'a pas dirigé le travail initial peut reprendre un sous système et le modifier sans danger. Ce sont les questions que rencontre tout nouveau compositeur, et avoir été écrit avec un assistant n'en dispense pas plus qu'il ne les aggrave.

La licence Apache 2.0 et le dépôt public font que quiconque veut y répondre le peut. C'est la partie utile de cette annonce.

Si vous voulez l'essayer

La configuration vérifiée est étroite : Ubuntu 26.04 LTS en amd64, avec AMD Radeon ou virtio-gpu. Il vous faut un gestionnaire de connexion compatible Wayland, GDM3 étant l'évidence, puis le .deb de 53 Mo, puis Starling apparaît dans le menu de session de l'écran de connexion.

Le numéro de version est 0.2 et la documentation annonce des aspérités, des réglages manquants et des applications à travailler. Prenez le au mot. La manière sensée de regarder cela aujourd'hui est dans une machine virtuelle en virtio-gpu, où un plantage du compositeur ne vous coûte rien, ou en lisant les 62 000 lignes qui comptent.

Sources et pour aller plus loin

Questions fréquentes

Que contient exactement Starling ?

Plus que ce que le mot bureau suggère d'habitude. Il y a un compositeur Wayland écrit en C, qui dialogue directement avec DRM et KMS pour piloter l'affichage et gère lui même les périphériques d'entrée bruts. Il y a un serveur X11 hébergé dans la même session, avec la prise en charge de DRI3 et Present, pour que les logiciels qui n'ont pas migré vers Wayland obtiennent quand même une fenêtre. Au dessus viennent un shell, un gestionnaire de fenêtres, un dock, des espaces de travail et des portails, plus des applications fournies : Fichiers, Terminal, Réglages, Calculatrice, Éditeur de texte, Visionneuse d'images et une logithèque branchée sur l'archive Ubuntu. Le shell et les applications sont en Swift. Sous l'ensemble se trouve un portage du framework Flutter vers Swift, qui sert à dessiner l'interface.

Quelle part des 335 000 lignes est la partie intéressante ?

Environ 62 000 lignes. Le détail publié par le projet place à peu près 273 000 lignes dans le portage du framework Flutter vers Swift, ce qui laisse environ 62 000 lignes pour le shell, les serveurs Wayland et X11 et les applications fournies. Cette distinction change la lecture du chiffre principal. Un portage de framework est une tâche de traduction ample, mécanique, bien spécifiée, avec une implémentation de référence pour se vérifier, ce qui est proche du cas idéal pour un modèle de langage. Le compositeur et le shell sont la partie où le travail doit être inventé plutôt que traduit, et 62 000 lignes pour un compositeur fonctionnel et une session est un chiffre plus sobre que 335 000, sans être pour autant modeste.

Lance t il vraiment de vraies applications ?

C'est l'affirmation sur laquelle le projet s'appuie le plus, et c'est un endroit raisonnable où placer la charge de la preuve. Les applications citées incluent Chrome, VS Code, Slack, Zoom, IntelliJ, GIMP et Blender, dont aucune n'a été écrite en pensant à Starling. Lancer des clients non modifiés est un seuil qui compte, car cela signifie que le compositeur implémente assez des protocoles dont dépendent les vraies boîtes à outils, et pas un sous ensemble de démonstration. Le compositeur annonce entre autres xdg-shell, linux-dmabuf, viewporter et fractional-scale-v1, soit l'ensemble que Chromium, Electron et les principales boîtes à outils vont chercher.

Puis je l'installer, et faut il le faire ?

Vous le pouvez, sur une configuration étroite. Le projet vise Ubuntu 26.04 LTS en amd64 avec une carte AMD Radeon ou virtio-gpu, là où le développeur l'a vérifié. L'installation demande un gestionnaire de connexion compatible Wayland comme GDM3, l'installation d'un .deb de 53 Mo, puis le choix de Starling dans le menu de session à la connexion. Faut il le faire dépend de ce que vous en attendez. C'est un aperçu précoce estampillé 0.2, et la documentation dit clairement qu'il reste des aspérités, des réglages manquants et des applications à travailler. Comme poste de travail quotidien, non. Pour en lire le code, ou pour le lancer dans une machine virtuelle en virtio-gpu, oui.

Quelle est la thèse réellement défendue par le projet ?

Que le coût de construction d'un environnement de bureau s'est effondré. Historiquement, un nouveau bureau supposait une communauté, des années d'effort bénévole et une lente montée en charge sur la prise en charge des protocoles avant que quoi que ce soit de réel ne fonctionne. La position de Starling est qu'une personne accompagnée d'un assistant a couvert ce terrain en six mois, et donc que le prochain bureau n'a pas besoin de décennies de disponibilité bénévole pour exister. La validité de cette thèse dépend de questions auxquelles l'annonce ne peut pas encore répondre : comment le code se relit, comment il se comporte sur du matériel que l'auteur ne possède pas, et si une base de code produite ainsi peut être maintenue par quelqu'un d'autre que celui qui l'a dirigée. Ces réponses viennent du dépôt, pas du communiqué.