C++ In the year 2020, and beyond

Feasibility of C++

It is indeed rather important to put into the right context the software one could and would be asked to develop with particular programing language. In this case C++.

It is first and foremost the question of economy. Where is it feasible to invest in C++  development resources?

IT landscape cross-section is broadly divided into three groups of layers :

IT landscape section view: 3 Layers Groups  (c) by dbj.org CC BY SA 4.0
  1. top group — Applications
  2. middle group — Logic
  3. bottom group — Infrastructure

In 2020 Q1, the reality of the industry is that feasible software systems architectures and implementations are distributed systems. Based on the HTTP infrastructure. Thus a bit truer description is:

  1. top group — Applications — Desktop or SaaS
  2. middle group — Logic — Cloud (PaaS)
  3. bottom group — Infrastructure — Cloud (IaaS)

In English: consider this very system you are using right now through your browser front end. It is almost certainly Cloud-based. Thus we can safely speculate further. Infrastructure is completely encapsulated in the fabric of the cloud. And we can be sure those layers are written mostly in C.

The logic group might be or might not be “hidden” in some PaaS offering (think “Heroku”, and a such. Again that is (very certainly) the domain of languages like Java on JVM, JavaScript on node NODE.JS, C# on .NET CLR.

So might “expert opinion” is: This is also where C++ written components do reside. Think native modules for Java and NODE. Think about the connection between the middle and bottom layers. Think modules not apps.

There is also a map view of the IT landscape. Let’s call it: IT landscape geography.

That view (orthogonal to the layered section of the IT landscape) shows a large population (aka clusters) of web services. A sizeable number of them was written in C++. And it will be. Fast, platform-specific. Thnk banking and financial transactions.

Next. Completely external to this universe is gaming on the desktop. Probably the strongest presence of C++ these days is in desktop games. And graphics in general. Think of Photoshop, AutoCAD and similar.

And of course, on the desktop we have browsers. They are all right now developed in C++. But understand they all have been started years ago. It is simply not feasible right now to develop a brand new one. It is even less feasible (impossible?) to change a browser “midflight”, to be modeled after the VS Code application architecture. Electron-based, TypeScript written. With some “mission-critical” modules still in C++.

That is in short, what runs on desktops and is developed in C++, 2020 Q2.

Other than that it is just not feasible to start, in the year 2020, developing some C++ client-side app.  The same goes for the cloud-side app.

It is simply not feasible anymore, to start any kind of apps in pure C++.

It is much faster and cheaper to develop desktop apps in (for example) C#, Java, Go, Swift, Dart,  React Native … you get the picture.

There are few very important legacy apps that are alive and well and being developed using C++, “as we speak”. Think of MS Office for example. Few decades-old media players, VLC, WinAMP and such.

So, no UI, no client-side software. And very likely no IoT or low-level infrastructure. And no PaaS side either. That is where one might find a feasible place for C++ development, going onward.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.