3 ms·
> the building blocks are so simple and transparent that you can follow the thread of execution with minimal mental overhead. The first fundamental purpose of
by pacala 15y ago
> the building blocks are so simple and transparent that you can follow the thread of execution with minimal mental overhead.
The first fundamental purpose of any programming language is to provide abstraction via functions. This implies that following the thread of execution is never easy and the blocks are never simple. It's pretty much a wash, with special mention for languages in the Hindley-Milner family.
The second fundamental purpose of any programming language is to provide specification abstraction via replaceable modules. This is where C fails. It is common practice in C culture to not specify interfaces in depth (we are all good programmers, aren't we?) and the implementation via manual virtual tables makes it painfully difficult to find the specific implementations in the code base.