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
Cancel
  • 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.

  • Ma
    Marcelo
    13 July 2022

    A programming language is a tool to get a job done. The quality/value of a programming language can only be assessed in connection with a job to be done. C++ is great for projects where computing speed is key. It also works better for projects where the staff turnover is low because the learning curve to pick up on a C++ project is higher than say Python or Java.
    Video game is a good example, speed is critical and staff attrition is comparatively low cause employees do that job out of passion and less so for the money.
    In finance it’s a totally different paradigm. Except for high frequency trading, ultra high speed isn’t critical for most business whereas continuity, collaboration and cost are more important.
    Again professional programming is not supposed to be an intellectual masturbation exercise. Too many programmers see their job as a hobby and that ends up very costly for the firm they work for so they might push a technology that’s not in the best interest of the firm. The interest of the firm is to use whatever language gets the job done as quickly and cheaply as possible including code maintenance. Sometime it’s C++ but more often than not especially in Finance it’s now other languages.

  • Jo
    John Doe
    6 June 2022

    You're an unhinged loser yelling at the world.

    Despite your gaslighting, plenty of C++ developers know it's deeply flawed, but require performance.

    Rust is much better, but I don't think you'll be able to handle its complexity.

  • Pa
    Pat Ulus
    21 April 2022

    1. C++ is great and is not difficult at all.

    2. Bjarne didn't hack OOP into C. It's an urban legend. OOP support in the form of polymorphism appeared in C++ in 1984 following the hype, but wasn't in the original design. The goals of original design were: (i) work with hardware; (ii) manage complexity. C++ is not bad at OOP, but was never "an OOP language". https://youtu.be/15QF2q66NhU

    3. C++ was designed to evolve. Contemporary C++ has no problems abstracting from hardware. You can rely on reasonable defaults and never look under the hood. You can program even in functional style. I for fun rewrote a Haskell program practically one to one using boost::hana.

    The author of the article above probably should change the profession.

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.
Latest Jobs
Selby Jennings
Data Scientist
Selby Jennings
Mont-Royal, Canada
Caisse de Dépôt et placement du Québec (CDPQ)
Analyste, Produits au comptant
Caisse de Dépôt et placement du Québec (CDPQ)
Montreal, Canada
Selby Jennings
Lead Linux Engineer
Selby Jennings
Toronto, Canada
Receptionist & Office Administrator (18 month contract)
Sprucegrove Investment Management
Toronto, Canada
Caisse de Dépôt et placement du Québec (CDPQ)
Coordonnateur(trice), Communications internes
Caisse de Dépôt et placement du Québec (CDPQ)
Montreal, Canada