Discover your dream Career
For Recruiters
The truth about C++.

"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: sbutcher@efinancialcareers.com 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

author-card-avatar
AUTHORIan Joyner Insider Comment
  • up
    up2isomorphism
    13 hours ago

    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
    Ocelot
    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

    Or

    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.

  • po
    poop
    13 July 2022

    Can you give examples of things the compiler should automatically take care of in C++? Kinda curious now.

Show more

Apply for jobs

Find thousands of jobs in financial services and technology by signing up to eFinancialCareers today.

Boost your career

Find thousands of job opportunities by signing up to eFinancialCareers today.
Recommended Jobs
Capstone Investment Advisors (UK) LLP
2023 Investment Graduate Rotation Program
Capstone Investment Advisors (UK) LLP
London, United Kingdom
Pearse Partners
Hedge Fund Equity L/S Analyst
Pearse Partners
London, United Kingdom
Python Quantitative Developer
New York, United States
ParagonAlpha
Quantitative Macro Analyst
ParagonAlpha
London, United Kingdom
Durlston Partners
Python Quantitative Developer
Durlston Partners
London, United Kingdom