The Evolution of C++: From Legacy to Modern Application Development
Tags: programming, cpp, tizen, development
Published: 2023-06-19 08:02:08

Hi all! I am Kartik Sain. At the moment, I have over 12 years of experience working in the consumer electronics industry, 9 of them in Samsung Electronics. This article I dedicate to C++,  a high-level programming language, in which I am skilled as an engineer. This material is devoted to a closer look into the history of the development of C++, its intricacies and peculiarities.

First of all, it is important to introduce the definition. The C++ programming language is widely used for software development. Namely, the creation of various application programs, the development of operating systems, device drivers, as well as video games, and much more. There are several implementations of the C++ programming language, both free and commercial. 

Now, let’s find out how it was born and why it is still relevant and broadly used. 

**From C to C++**

C++ was developed based on the C language, which first appeared to the broad public in 1973, created at Bell Laboratories by programmer Dennis Ritchie. In the 1980s, another company employee, Bjorn Stroustrup, developed C++. At first, the language was created as a supplement to the main C, in which object-oriented programming was possible. Stroustrup named his creation "C with Classes". 
C++, consequently, started to progressively become popular and gradually broke away as a separate programming language. Now the two languages are developing on their own.

**A bit more on the versions**

CFront, derived from a C compiler named CPre, was the initial C with Classes compiler. It was used as a bridge between C language and C with Classes, and translated one code into another.  In 1993, Cfront was shut down due to its difficulty with incorporating new features, such as the C++ exceptions. Nevertheless, Cfront had a huge influence on developing future compilers.

Later, the name of the language was changed to what we know now as — C++. Initially,  in addition to all the features of a C language, C with Classes included basic inheritance, inlining, default function arguments and strong type control. A number of new features were introduced around the time the name was changed, the most obvious being virtual functions, slashes with & symbol, overloading references, and single-line comments using 2 forward lines.

After the release to the public, Bjorn Stroustrup published the first guidance called “The C++ Programming Language”, which was followed by the release of the first standardised version of C++ — C++98 (as the year of the release – 1998). The version included additional libraries, as well as a range of new features like templates, exceptions and namespaces. 

There is a list of subsequent releases numbered as the year of the issue: C++11,  C++14, C++17, C++20, and most recently C++23, the preview release of which happened at the beginning of 2023.

According to the order of versions, the programming language was enriched with regular expressions, Regex support, range-based for loops, move semantics, lambda expressions, standard threading library, time library, and many others. 

As is seen, there is a lot of room for manoeuvre in terms of the usage of the language. Let’s take a look at who usually makes use of it. 

**The scope of use: from developers to musicians**

- First of all, C ++ is used, indeed, for the development of system software. This language is the basis of Adobe Photoshop, Internet Explorer and Mozilla Firefox browsers, Windows OS, programs from the Microsoft Office suite, and Google and Yandex search engines.

- The development of computer games and game engines is also a possible field of use for the language. Due to its speed and performance, it is one of the best for creating games. C++ is used by Unity, Unreal Engine and OS for PlayStation, and Xbox.

- C++ can be used to solve complex mathematical problems (working with equations, functions, inter- and extrapolations). The language allows you to use various methods in the calculation.

Physicists also use the C++ programming language to model environments and physical processes; artists, for whom C++ is the link between them, 3D modellers and game engine developers, use C++, and even musicians, who study acoustic effects and write music using the language. In other words, the breadth of C++ usage is enormous.

**Looking at the language’s advantages through relevant example**

To make a valuable illustration of C++’s utilisation, I will provide an example from my experience. At some point of working at Samsung Electronics, I faced the task of integrating the Netflix Native and the Amazon Prime Video apps onto the Samsung Smart TV. There were two ways to do this – either Web App (HTML5) or Native App (C/C++). 

The choice was the Native App development done in C++. In this case, C++ has a great benefit: the language provides the opportunity to create an app that consequently can be run on a variety of OS. Respectively, for the Samsung case, the Apps have to be run on the Tizen Operating System, a variation of Linux OS. In this regard, C++ was the most suitable option.

Thanks to the use of the language, various modules were built, such as AppLifeCycle Handler, Input Event Handler, and Player on Gstreamer, which allowed making a Native version of Netflix Worldwide and the Prime Video app with the first Tizen OS in the Market.

This instance illuminates the fitness of C++ language for app development. Indeed, the extended functionality allows the creation of high-performing and fast applications – something that is not always available for any other interpreter language. 

The rich history of the development of the C++ language spotlights the reasons why it is still extremely important and widely applicable. The range of its use varies extensively, which allows developers from different areas to foster applications and systems that advance the tech sphere further.