There was no header file hell. Often you didn't need a single header to be included in your code: most functions returned int (or nothing), and if you needed something that returned double, you could just say so.
I remember being excited about function prototypes, but something was irretrievably lost at that point. The primal elegance of C as it was conceived by its creators is long forgotten now.
(If you want, you can still experience it with the Tiny C Compiler that seems to continue to understand K&R C code just fine.)
The "Go is like C" comparison never made any sense to me.
Go has a sophisticated runtime with transparent N:M threading and built-in concurrency primitives, Interfaces, garbage collection and a large standard library.
Go is only simple when compared to the other languages that sit in a similar space, like Java and C#.
> Go can be understood as an improved, modernized C that doesn't abandon C's simplicity.
This is false, because Go has a garbage collector by default. This isn't an "improvement" in anyway but for those who don't care about memory management and predictable and deterministic performances.
There was no header file hell. Often you didn't need a single header to be included in your code: most functions returned int (or nothing), and if you needed something that returned double, you could just say so.
I remember being excited about function prototypes, but something was irretrievably lost at that point. The primal elegance of C as it was conceived by its creators is long forgotten now.
(If you want, you can still experience it with the Tiny C Compiler that seems to continue to understand K&R C code just fine.)