Ianjoyner
3 min readMay 11, 2024

--

C is NOT a foundational language

https://medium.com/@sranupam029/what-is-c-programming-introduction-features-and-applications-ace67a8fcc47

“C programming language stands as a pillar in the realm of computer programming, renowned for its simplicity, efficiency, and versatility”

The first thing that should be said about C is it is a system language. System languages are to manage the resources of the platform so that most programmers do not need to be concerned with those details, or how best to achieve that mapping. In fact, when programmers do that they often get in the way of efficient operation of a platform. Worse in C, they can undermine the security of a platform.

C is no pillar. This is a complete myth and shows very little knowledge of programming as being developed in the 1960s before C.

“C programming language, developed by Dennis Ritchie at Bell Labs in the early 1970s, emerged as a successor to the B programming language”

That is a very small piece of history. B was hardly a novel development. C was developed by Ritchie in the sense that he did some small compiler work for simple types and adding back in structures. The real design of B and C came from BCPL, and these inherited structured programming from ALGOL.

https://www.quora.com/How-did-Dennis-Ritchie-and-Ken-Thompson-who-created-everything-without-knowing-OOP-manage-to-maintain-the-efficiency-of-their-programming-work/answer/Ian-Joyner-1

But really C severely compromised structured programming by adding in non-structured ideas, because programmers at that time thought they could not do without them. C devolved what had been accomplished in ALGOL in many ways. While C had the syntax of structured programming, it lost the spirit.

“C programming language boasts several features that set it apart from other programming languages”

Hardly, this is part of the blinkered view of C, that tries to take credit for all these ideas that come from elsewhere.

Thompson and Ritchie weren’t really interested in good language design. Good language design thinks about how programmers work. But C is full of traps and flaws for programmers to fall into. C does not remove much of the trivial burden that should be removed from programmers.

https://www.quora.com/Why-does-C-accept-unsigned-long-unsigned-long-0-behavior-cannot-C-resolve-it-or-any-signification-when-accepting-it/answer/Ian-Joyner-1

“Loop constructs such as for loops are commonly used to iterate through arrays, accessing each element sequentially.”

C’s for loop is primitive, and a good example of the devolution from the for of ALGOL, where the language adjusted the control variable — a burden that C leaves to the programmer, even though it might seem trivial.

“In conclusion, C programming language serves as a foundational tool for software development, offering simplicity, efficiency, and versatility”

C is NOT a foundational tool. It misleads programmers to think about coding machines, rather than programming problems. C is just a code generator with fancy structured syntax. Programming languages are much deeper than that.

C is not simple below the surface at all. That is another myth and lie about C. Efficiency comes from platforms and versatility comes from programming. C is just another language when it comes to that.

“paving the way for success in the field of computer science and software engineering”

No, it is keeping programmers in the mistakes and compromises of 50 years ago.

https://www.quora.com/What-is-C-programming-explained-simply-1/answer/Ian-Joyner-1

--

--