As a coding language, C++ appeals to the ego, not the intellect
I notice that this site tends to extol the virtues of C++ as a programming language. As someone who has worked with C++ and has followed the debate around its use for a long time, I think it’s time to set the record straight.
The truth is that C++ is one of the worst languages ever imposed on the industry. Far from being used in modern commercial systems, C++ should now only be used for legacy projects. It is based on machine thinking, which is not programmatic thinking.
Generations of programmers have been fooled by C and C++. Many have fallen into the black hole of his cult with mundane platitudes like “under the hood programming,” which means nothing more than driving with the hood open, trying to fix the engine, but unable to see the road. The cult’s followers urge end users to “trust the programmer”, which is stupid and naive, but appeals to the programmer’s ego. And programmers are supposed to have “freedom”, although no one ever says freedom from what. – It’s definitely not freedom from the flaws and pitfalls of C++.
Programming is about programming and not about hardware machines (programs running on theoretical machines). This seems difficult to understand and counter to people’s intuition. C++ just supports intuitive and populist thinking instead of trying to fix it.
So not only is C++ technically bad, it’s culturally bad because it appeals to the ego rather than the intellect.
I’m not the only one who doesn’t like C++. Ken Thompson, the Bell Labs researcher who implemented the original Unix operating system, described it as a “bad language “it is”far too big, far too complex” and “Obviously built by a committee. “just a bunch of mutually exclusive ideas.”
The problem is that C++ is based on C and C itself is not a brilliant language. It is full of flaws and compromises. It compromised compiler technology, forever forcing programmers to care about details that should be easily accomplished by a compiler. In turn, C was based on B, which was based on Martin Richards’ BCPL, which itself was a reduction of Christopher Strachey’s CPL, which was too ambitious to implement at the time. It’s Strachey who is the real genius here in my opinion, not people like Bjarne Stroustrup, who now works for Morgan Stanley and hacked OO in C to create C++, even though C wasn’t a good base.
Anyway, if you’re trying to learn C++ and you’re having trouble mastering it, you’re not the problem. The language is imperfect. Designing a programming language is very difficult, and C++ just isn’t designed that well. System programming and application programming are two very separate things, and the real problem with C++ is that it tries to combine them.
Ian Joyner has done many things, including industrial programming, systems programming, language research and compiler programming and development, networking, distributed systems standards, and lecturing.
Register your resume on eFinancialCareers to make yourself visible for C++ jobs in finance.
Contact: [email protected] first. WhatsApp/Signal/Telegram also available (Telegram: @SarahButcher)
Be patient if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans may be asleep or away from their desks, so your comment may take a while to appear. Eventually, it will – unless it’s offensive or defamatory (in which case it won’t.)
Photo by Peter Gombos on Unsplash