A tail call is a function call that is the last thing a function does before returning. That sounds like a minor implementation detail. It isn’t. Whether a runtime honours tail calls — replacing the current stack frame rather than pushing a new one — is the difference between recursion that scales linearly in stack space and recursion that uses constant space. It’s also where two languages I care about, Haskell and JavaScript, tell very different stories about the relationship between specification, implementation, and the reality of what you can actually rely on.
One of the things that drew me to Nim is the degree of control it offers over memory management without forcing you to the extreme of a borrow checker. The default experience is a garbage-collected language that feels like Python. The far end of the dial is manual memory management that compiles to idiomatic C with no runtime overhead. Between those two points is a set of options worth understanding in detail — because the right choice depends heavily on what you’re building.
A single <img src="hero.jpg"> used to be the only option. It still works — but it means serving a 2400px image to a device with a 375px screen, and serving that same image as a JPEG to a browser that would have accepted AVIF at a third of the file size. The browser has had the primitives to do better than this for years. Most sites don’t use them correctly.