Aller au contenu principal
Lab mrflos
Voir les cartes
Ajouter une carte
Cartes favorites
Documentation
Tableau de bord
Documentation
Gestion du site
Mes contenus
Formulaires
coucou
Se connecter
×
Se connecter
Email ou nom d'utilisateur.ice
Mot de passe
Mot de passe perdu ?
Se souvenir de moi
Se connecter
S'inscrire
Lab mrflos
Sauver
Format
Titre 1
Titre 2
Titre 3
Titre 4
Centré
Texte agrandi
Texte mis en valeur
Code source en mode bloc
Code source en mode ligne
Commentaire, visible uniquement en mode édition
Activer JavaScript pour joindre des fichiers.
Fichier
Annuler
échoué
Composants
Éditer le composant sélectionné
Boutons
Mise en forme
Syndication / Flux RSS
Réactions / Votes
Vidéo intégrée
Actions d'envoi d'e-mail/listes
Contribution
Documents
Gestion des tags
Afficher un formulaire de création de fiche
Afficher les données d'un formulaire
Actions avancées
# Open Source Can’t Coordinate ## May 20, 2025 I was taking a shower this morning, and was pondering yesterday’s problem, where I suspect that I have an outdated version of hotspot Linux profiler, but I can’t just go and download a fresh release from GitHub, because hotspot is a KDE app, and I use NixOS. And NixOS isn’t a problem — it’s a solution. Linux on desktop is a rickety tower of competing libraries, protocols and standards, which is always in an Escheresque sort of perpetual motion, taking off but simultaneously falling, and the best way to enjoy it is to take a photo, a frozen snapshot in time. The underlying force there is the absence of one unified baseline set of APIs for writing desktop programs. There’s no single entity that can coordinate the API, in contrast to Windows and MacOS. But then, how can Linux exist? How does that square with “never break the user space?” I’ll let you ponder the question, but let me first tell you a story from a domain where I consider myself an expert. Better LSP Than Never The past ten years saw a big shift in how we are writing software: baseline level of “interactive static analysis” became the norm, go to definition is universally available. The surprising fact here is that the shift occurred a decade too late! The shift was caused by Microsoft releasing its Language Server Protocol specification. But there’s little value in the protocol itself. Its implementation is mediocre, it was strictly worse than the state of the art at that time, and its governance is abysmal. The only great thing about LSP is that it exists! If you were anywhere near JetBrains a decade ago, it was blindingly obvious that the absence of broad availability of basic IDE features leaves a lot of the value on the table, and that the multi-process IPC architecture is the way to go (JetBrains did IPC for Rider). But it is also clear why JetBrains didn’t do LSP — why would they? While the right solution on the technical grounds, you aren’t going to get paid for being technically right. As sad as it is, some amount of deadweight loss is needed to capture some of the value you are producing, and you need to be able to capture value to invest in things! So the world had to wait for Microsoft to pick up the slack here, when they decided to gobble up the entire developer ecosystem as an investment. There was a decade of opportunity for OSS to coordinate around an IDE protocol, but that didn’t happen, because OSS is bad at coordination. Why Linux? But then, why and how does Linux exist? I think part of that is a rather unique governance structure, where there’s a centralized control over the API area and strong commitment to the public interfaces. But the bigger part is POSIX. The reason why we have Linux, and BSDs, and XNU is that they all provide the same baseline API, which was defined from the outside. The coordination problem was pre-solved, and what remained is just filling-in the implementation. But there was no one to coordinate Linux on desktop.
Mots clés
Sauver
Annuler
Thème
×
Choisissez un formulaire
Nb. : Il est possible d'afficher plusieurs bases de données d'un coup en entrant leur id séparé par une virgule [
accéder à la documentation
].
Code à inclure dans la page
×
Ajouter un lien au texte selectionné ou créer une page
Modifier le lien
Créer une page
Nom de la page, existante ou à créer, ou URL externe
Nom de la page à créer
Le nom de la page ne doit pas contenir de caractères spéciaux autre que - ou _ . Les URL doivent commencer par https://
Pour créer une nouvelle page, il suffit de saisir un mot non listé
Cette page existe déjà !
Texte affiché
Texte du lien vers cette page
Texte au survol
Le lien s'ouvre dans l'onglet courant
Le lien s'ouvre dans un nouvel onglet
Le lien s'ouvre dans une fenêtre modale
×
Télécharger le fichier
Texte du lien de téléchargement
Afficher le pdf dans la page :
sous forme de lien
directement inclus dans la page
Alignement de l'image
Texte en dessous
Gauche
Centre
Droite
Taille de l'image
Miniature (140x97)
Moyenne (300x209)
Large (780x544)
Taille originale
Texte alternatif pour les personnes malvoyantes
Ce texte sera affiché à la place de l'image si elle est introuvable sur le serveur. C'est aussi celle qui sera lue par les technologies d'assistance aux personnes malvoyantes. À laisser vide si l'image est purement décorative
Paramètres avancés
Lien web associé au clic
Effets graphiques
Bord blanc
Ombre portée
Agrandissement au survol
Permettre de cliquer sur l'image pour l'afficher en grand
Oui
Non
Texte affiché au survol
Protection anti-spam active
×
Apparence de la page texte
Thème
margot
Squelette
1col
1col.vertical-menu
2cols-left
2cols-right
full-page
Style
margot
light
margot-fun
Preset
Preset par défaut (custom/lab)
default
fun
landes
red
yellow
lab
Paramètres avancés
Langue de la page
Català
English
Español, castellano
Français
Nederlands, vlaams
Português
Română
Choisir une page pour:
le menu horizontal
les raccourcis en haut à droite
l'entête (bandeau)
le pied de page
le menu vertical