Discover your dream Career
For Recruiters

"As a coding language, C++ appeals to the ego, not the intellect"

I notice that this site has a tendency to extol the virtues of C++ as a programming language. As someone who has worked with C++ and who 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 foisted on the industry. Far from being used in modern trading systems, C++ should now only be used for legacy projects. It is based around machine thinking, which is not programming thinking.

Generations of programmers have been misled by C and C++. Many have fallen into the black hole of its cult with trite platitudes like ‘under the hood programming’, which means no more than driving along with the hood open, trying to fix the engine, but unable to see the road. Cult 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 certainly not freedom from the flaws and traps of C++.

Best comment picked by the author
C++'s purpose is performance with an object oriented workflow, which makes it perfect for game development and low latency applications such as audio processing. As lovely as it would be to use C# or Python for such a thing, performance would suffer. C++ is hardly chosen because it

Programming is about programming and not about hardware machines (programs run on theoretical machines). That seems hard to understand and counter to people’s intuition. C++ just supports the intuitive and populist thinking instead of trying to fix it.

So not only is C++ technically bad, but it is culturally bad since it appeals to the ego, rather than the intellect.

I'm not the only one to dislike C++. Ken Thompson, the Bell Labs researcher who implemented the original Unix operating system, described it as a "bad language" that's "way too big, way too complex" and "obviously built by a committee." Damningly, Thompson also said that C++ does, "a lot of things half well" but is "just a garbage heap of ideas that are mutually exclusive."

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 on compiler technology, forever forcing programmers to take care of detail that should easily be done by a compiler. In turn, C was based on B, which was based on Martin Richards’ BCPL, which itself was a cut down on Christopher Strachey’s CPL, which was too ambitions to be implemented at the time. It is Strachey who is the real genius here in my opinion, not people like Bjarne Stroustrup, who now works for Morgan Stanley and who hacked OO into C to create C++, even though C wasn't a good base. 

Either way, if you're trying to learn C++ and you're struggling to master it, it's not you that's the problem. The language is flawed. Designing a programming language is very difficult, and C++ is simply not that well-designed. Systems programming and application programming are two very separate things, and C++'s real issue is that it tries to combine them both. 

Ian Joyner has done many things, including industry programming, systems programming, language and programming research and compiler development, networking, distributed system standards and lecturing. 

Register your CV with eFinancialCareers to make yourself discoverable for C++ jobs in finance. 

Contact: in the first instance. Whatsapp/Signal/Telegram also available (Telegram: @SarahButcher)

Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)

Photo by Peter Gombos on Unsplash

AUTHORIan Joyner Insider Comment
  • ga
    12 April 2023

    The parts where you said "It is based around machine thinking, which is not programming thinking. " and "Programming is about programming and not about hardware machines (programs run on theoretical machines)." have me a bit worried about your logic. Not going to lie.

    I don't want to sound rude, but if you think like this, then you are an idiot. Let me correct you on this matter, PROGRAMMING IS ALL ABOUT MACHINES. In fact, everything we ever do in programming is built to run on a machine. Write code in another language that you 'prefer' and they will run on a machine. Even Java, which runs on a virtual machine, can be broken down to the machine level, because the virtual machine itself has to run on your native machine.

    Also, the part where you said that programs run on theoretical machines. Where in the living hell are you getting that from? It's probably that you've only learned one language, and that's Java (my guess is that's why you would ever think that, because with Java that is literally the case) and you refuse to learn any other language like C and C++ because to you, they spread what you perceive as 'dillusions' (your the only dillusional person here from what I can tell) about machines. Honestly, I cannot put two and two together with what you said there, because your logic in that matter makes zero sense. If programs never ran on machines, then what in the living hell are machines? Are they just random objects just sitting on our desk that don't do anything, while our programs are being run from the air around our monitors. Can you see the problem that I am getting at here?

    Look, if you don't like C++, then that is totally fine. Yes, it is a hard language to learn and use, but this whole review has been pretty unfair to C++. Seriously, it's like saying "My toaster gives the dillusion that it produces toast, when in reality it produces Pancakes".

    Seriously, this has got to be the worst C++ review I have ever seen on the web. I may be one who is biased towards C++ so I am sorry about that, but even if I wasn't, I still would think the same exact way about this article, because of the outrageous things you brought to the table here.

  • up
    2 February 2023

    This guys is so funny, first he wants to use C creator's words to attack C++ (which actually I agree if you compare C to C++), a couple of sentence away he started to attack C.

    I just hope nobody works with this guy, it can not be a good experience.

  • Oc
    13 December 2022

    This dude is criticizing C when the very fucking device he is using is created in C, like what?

    He must be a python fanboy or some shit.

  • Ha
    Hans Peter
    6 December 2022

    You fucking idiot. C is brilliant, it's the best. Stop mobbing my only friend.

  • Do
    Dominic Hughes
    1 October 2022

    I agree with ian here greatly!

    a magical pleasurable healing language would be something that works magically
    For example my coding language would allow flexible syntax:

    Start Application
    When Box is Red turn it yellow after 2 seconds
    End Application

    Or you could write it

    When Box is blue turn it green after 5 seconds


    Box is purple change it to orange

    Why can't it be more like that... like telling a computer what to do instead of this ludicrous horrendous syntax like c , c++ and rust ,etc and don't tell me it can't be done... it can be ..

    Clearly shows how broken the community is the comments down below but that is everything is broken.

Sign up to our Newsletter!

Get advice to help you manage and drive your career.

Boost your career

Find thousands of job opportunities by signing up to eFinancialCareers today.
Recommended Jobs
Vertus Partners
Quant Analyst - Front Office - London
Vertus Partners
London, United Kingdom
Sr Quant Developer - Python
Manhattan, United States
Cobalt Recruitment
Private Equity- Investment Analyst
Cobalt Recruitment
London, United Kingdom

Sign up to our Newsletter!

Get advice to help you manage and drive your career.