A Decade of Go Gripes: Why This Programmer Still Hates Go

2025-08-22

A programmer's decade-long critique of Go highlights several frustrating flaws. Issues include: illogical error variable scoping leading to readability and bug issues; two types of nil increasing complexity; poor portability with clumsy conditional compilation; unpredictable append function behavior; inflexible defer statements for resource management; the standard library swallowing exceptions; insufficient non-UTF-8 support; and inefficient memory management. The author argues these aren't technical challenges, but fundamental design flaws, asserting Go could have been far superior.

Read more
Development

Zero System Calls: Building a High-Performance Web Server with io_uring

2025-08-22

This article details the evolution of building high-performance web servers, from early pre-forking to select/poll, then epoll, and finally achieving zero system calls using io_uring. The author developed an experimental web server called tarweb that utilizes io_uring to asynchronously add all operations to a kernel queue, thereby avoiding the overhead of frequent system calls. Combined with kTLS and descriptorless files, further performance improvements are achieved. While challenges remain, such as memory management and io_uring's safety concerns, the project demonstrates the potential for significant performance gains in high-concurrency scenarios.

Read more