Dix ans de griefs sur Go : pourquoi ce programmeur déteste toujours Go

2025-08-22

Une critique de dix ans d’un programmeur sur Go met en évidence plusieurs défauts frustrants. Les problèmes incluent : une portée de variable d’erreur illogique menant à des problèmes de lisibilité et de bogues ; deux types de nil augmentant la complexité ; une faible portabilité avec une compilation conditionnelle maladroite ; un comportement imprévisible de la fonction append ; des instructions defer inflexibles pour la gestion des ressources ; la bibliothèque standard avalant les exceptions ; un support insuffisant pour les encodages autres que UTF-8 ; et une gestion de la mémoire inefficace. L’auteur soutient que ce ne sont pas des défis techniques, mais des défauts de conception fondamentaux, affirmant que Go aurait pu être bien meilleur.

Lire plus
Développement

Zéro appel système : création d’un serveur web haute performance avec io_uring

2025-08-22

Cet article détaille l’évolution de la création de serveurs web haute performance, du pré-forking initial à select/poll, puis epoll, et enfin à l’obtention de zéro appel système grâce à io_uring. L’auteur a développé un serveur web expérimental nommé tarweb qui utilise io_uring pour ajouter de manière asynchrone toutes les opérations à une file d’attente du noyau, évitant ainsi la surcharge des appels système fréquents. Combiné à kTLS et à des fichiers sans descripteur, des améliorations de performances supplémentaires sont obtenues. Bien que des défis subsistent, tels que la gestion de la mémoire et les problèmes de sécurité d’io_uring, le projet démontre le potentiel de gains de performance significatifs dans les scénarios à forte concurrence.

Lire plus