Linked Lists Are Still Hard
&quot;I guess the moral of this story is that tools are excellent, and you should probably use them.&quot;<p>This is, in my opinion, a rather generous interpretation of events. What I see when reading this is a system (the Linux kernel and surrounding infrastructure like the C language) that is very poorly designed.<p>For example, resource allocation is a fundamental issue and a constant source of problems. We&#x27;ve known this as a field for a very long time. Why are fundamental things like resource allocation at least not standardised in the kernel? Better would be to enforce safe resource usage by static checking. Rust is an example of what can be done here, but much more is possible. (I&#x27;m not trying to suggest the kernel should be rewritten in Rust. I&#x27;m just using it as an example that resource usage [in particular, memory allocation in Rust] can be done in a way that prevents errors.)<p>Burning huge amounts of human effort is a popular approach to software development but I really hope we can do better in the next few decades. The worst thing about the current situation is the programmer blames themself (&quot;This one kept me up until 3AM. In hindsight, every bug looks simple, and when I figured it out, I was embarassed that it took me so long&quot;) rather than wondering why this problem is even possible in the first place.