Ein Jahrzehnt Go-Kritik: Warum dieser Programmierer Go immer noch hasst

2025-08-22

Eine zehnjährige Kritik eines Programmierers an Go hebt mehrere frustrierende Mängel hervor. Zu den Problemen gehören: unlogische Fehler-Variablen-Scopes, die zu Lesbarkeitsproblemen und Bugs führen; zwei Arten von nil, die die Komplexität erhöhen; schlechte Portabilität mit ungeschickter bedingter Kompilierung; unvorhersehbares Verhalten der append-Funktion; unflexible defer-Anweisungen für die Ressourcenverwaltung; die Standardbibliothek schluckt Ausnahmen; unzureichende Unterstützung für Nicht-UTF-8-Codierungen; und ineffizientes Speichermanagement. Der Autor argumentiert, dass dies keine technischen Herausforderungen, sondern grundlegende Designfehler sind, und behauptet, Go hätte viel besser sein können.

Mehr lesen
Entwicklung

Null System Calls: Aufbau eines Hochleistungs-Webservers mit io_uring

2025-08-22

Dieser Artikel beschreibt die Entwicklung beim Aufbau von Hochleistungs-Webservern, von frühem Pre-Forking über select/poll und epoll bis hin zur Erreichung von null System Calls mit io_uring. Der Autor entwickelte einen experimentellen Webserver namens tarweb, der io_uring nutzt, um alle Operationen asynchron zu einer Kernel-Warteschlange hinzuzufügen und so den Overhead häufiger System Calls zu vermeiden. Kombiniert mit kTLS und beschreibungslosen Dateien werden zusätzliche Performance-Verbesserungen erzielt. Obwohl Herausforderungen wie Speicherverwaltung und Sicherheitsbedenken bei io_uring bestehen bleiben, zeigt das Projekt das Potenzial für signifikante Performance-Steigerungen in Szenarien mit hoher Gleichzeitigkeit.

Mehr lesen