An Examination of the Continued Relevance of C++

4275 words (17 pages) Essay

8th Feb 2020 Computer Science Reference this

Tags:

Disclaimer: This work has been submitted by a university student. This is not an example of the work produced by our Essay Writing Service. You can view samples of our professional work here.

Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of UKEssays.com.

C++ is arguably among the most impactful creations in computer science history, with origins reaching back further than 1979, when development first began.  Despite the development of popular languages such as C# and Java, C++ remains widely in use in the programming field.  It’s portability, speed, and ability to be used in a plethora of programming situations means that it is popular with programmers throughout the gamut of the software world.  (Mongala) The language has undergone many developments over the decades since its creator, Bjarne Stroustrup, began work on the language.  Influential computer scientists and programmers were involved to varying degrees with its inspiration and evolution.  Each future programmer must surely wish to know what C++ really is, where it originated, and its relevance to present and future designers.

Bjarne Stroustrup, who is currently a managing director of technology at the financial and investment giant, Morgan Stanley in New York (“Welcome to Bjarne Stroustrup’s Hompage!”), attended Cambridge University in pursuit of his PhD in Computer Science, which he received in 1979.  It was while doing research for his doctoral thesis that Stroustrup discovered the flexibility of the “Simula” programming language, which had, up to that point, been used primarily for simulations, as one may infer from the name.  (“History of C++”) Simula was developed by Kristen Nygaard and Ole-Johan Dahl in two editions, the first of which introduced a programming language which (as alluded to previously) allowed for simulations, modelling, predictions and forecasting.  (Calore)

The second edition of Simula was developed in 1967 and was likely the version with which Stroustrup conducted research for his previously mentioned doctoral thesis.  Simula 67, the name that was then used for the 2nd edition of Simula, was developed to include tools and capabilities that were not available in the first version of the language.  These capabilities allowed Simula to become the inspiration behind several other programming languages, and – specifically and perhaps most importantly – enabled it to influence the foundation on which object-oriented programming was developed.  (“Get Started with Simula Programming”).  Simula 67 is now referred to simply as Simula.  The original version of Simula is no longer in use, but the second version, the humble predecessor of the multi-faceted and ever evolving field of object-oriented programming, is still in use today. (“Simula 67”)

 Stroustrup found that Simula had great potential for programming outside the field of simulations, specifically because of its object-oriented nature; however, the language possessed a certain amount of impracticality due to the rather bulky and slow nature of its operation.  While developing “C with Classes”, Stroustrup had in mind a middle level language, which was inspired by the potential for object-oriented programming that he had seen in the slow and unwieldy Simula, combined with the lightweight portability and speed for which C (the foundation upon which C with Classes, and later C++, was built) has always been known (“History of C++”).  C language has its own rich history in the computer science world.

In the interest of further exploring the origins of C++, one must look to developers Ken Thompson and Dennis Ritchie, both of whom worked for Bell Labs (today known as AT&T).  During the 1960’s and ‘70’s Ritchie and Thompson began a new project at Bell Labs which allowed Thompson to develop the UNIX operating system in his attempt to create a filing system for the company.  This version of UNIX evolved into the full system that we know today.  The name UNIX was a jab at the unsuccessful attempt at developers (including Ritchie and Thompson) to create an economically feasible operating system capable of being used by approximately 1,000 employees.  The project name had been called Multics, and fellow Bell Labs employee, Brian W. Kernighan, teased creator Ken Thompson that his system was just Unix, not Multix.  (“The History of the C Language”)

To that point, Assembly code had been quite standard, but often required a programmer to write multiple pages of code to accomplish a simple task.  Thompson then created language B, for which UNIX had an interpreter, but was unimpressed that it lacked structure and did not know data types; however, it did allow programmers to write much shorter lines of code to achieve many tasks.  Thompson’s colleague, Dennis Ritchie, developed C language in answer to the problems Thompson had experienced with language B, constructing the C language almost entirely on B’s syntax.  C was an improvement on B due Ritchie’s inclusion of added structure and data-types.  The genius behind C was that it included both high- and low-level functionality, later inspiring the revision of the UNIX kernel itself to C.  (“The History of the C Language”)

Ritchie’s C language quickly became a favorite among programmers.  C with Classes, which Stroustrup was developing as part of his doctoral thesis, was intended to be a subcategory of the C language.  This was the predecessor of his object-oriented programming language C++.  As Stroustrup developed his envisioned language, he used the first C with Classes compiler, which was called Cfront.  This compiler was particularly interesting because it “was written mostly in C with Classes, making it a self-hosting compiler (a compiler that can compile itself)” (“History of C++”). 

During his early work on C with Classes, Stroustrup included features that have been invaluable to the development of technology as we know it today, including giving the language “inheritance, in-lining, default function arguments, strong type checking” (“History of C++”) and, of course, classes.  Classes are “a user defined data-type which has data members and member functions” (Kariya).  More specifically, and in layman’s terms, in programming classes allow us to assign data to a category.  For instance, employees in a company may have different names and personal characteristics, but each will have information in common that can be attributed to the class “employee” as a whole.  These data-types might include employee address, employee social security number, and employee hire date, among other information.  (Kariya)

After completing his doctorate in 1979, Bjarne Stroustrup found employment with Bell Labs at the Computer Science Research Center in New Jersey, where he was able to truly make strides in the development of his C with Classes language.  (“Bjarne Stroustrup: 2015 Fellow”) Only 4 years later, in 1983, Stroustrup’s C was Classes was renamed as C++, the name still used today.  Once can parse out the meaning of the name C++ to gain insight into the language itself.  C refers to the fact that the language is a superset of language C, but the ++ could, perhaps, provide insight into the creator’s vision of the language.  The ++ refers to the operator for incrementing a variable. (“History of C++”).  The language quickly gained popularity with software developers and is among the foremost languages in use today, along with Java, C, C# and others. 

Stroustrup maintained involvement in the progression and development of C++ through the ensuing decades, and to this day is one of the most influential computer scientists in history.  He has remained the most influential computer scientist involved with the direct development of the C++ language; however in 1987, a young Michael Tiemann, now the Vice President of Open Source Affairs at Red Hat (Michael Tiemann, en.wikipedia.org), completed the first GNU C compiler which, in December of 1987 was amended to serve as a GNU C++ Compiler (G++) as well, lending to the open source use of C++.  (Tiemann) Tiemann’s influence with the development of his C++ Compiler was not insignificant, but because programming languages may be the sole possession of an individual, which seems to be the case with C++, Stroustrup remains the sole major designer and controlling developer of the language. (Millington)

The notion of standardizing C++ began to evolve in 1990 and 1991 and was finally accomplished in 1998.  Stroustrub had published a manual for the language titled The C++ Programming Language in 1985.  This remained the official resource for those learning or using the language until 1990 when The Annotated C++ Reference Manual was released and became the standard reference tool.  (“Millington”).  The standardization of the language aided in its adoption for major projects by many of the big-name tech companies that we know today.

C++ had a lot of competition as an advanced programming language as it developed in the late 80’s but was the only one on the market at the time which had not been promoted commercially with any consistency or a real campaign strategy (Calore).  Many of these competing languages have evolved in the past few decades, but to what does C++ owe its equal or greater success?  C++ has not only grown to be one of the most popular and widely used coding languages in existence, but has also inspired the fabrication of other languages – some of which are still not used as widely as C++.  Some of these languages include C#, Perl, Java, and Python. (Rongala)

When one thinks of the evolution of technology, often there is a need to recognize the obsolescence of devices and/or software.  Most people have depended heavily on GPS for quite some time, but handheld units have all but disappeared in favor of smart phone GPS applications.  The same can be said for VHS tapes evolving into DVDs and Blu-Ray discs.  Now these physical media are rapidly being replaced by cloud based streaming applications.  These are examples of hardware advancements, but C++, as a building block for the applications we use on said hardware, did not experience any significant level of similar obsolescence and, indeed, has grown in popularity across almost 4 decades with no major revisions necessary until 2011.  (“History of C++ Programming”)

Indeed, C++ coding, or tools created in C++ coding have been used in at least some stage of development of major innovations such as Windows, Google, Amazon, some of the most popular and ground-breaking video games to date, clean energy technology such as wind mills, and oil surveying technology.  It was also used in the development of the Mars Rover, a huge advancement in space exploration with the potential to aid in research that could change the game for mankind. (Calore) Is this because the C++ language is simply ingrained in the culture of programming?  Is it indoctrinated into generations of developers and has simply become “force of habit”?  Or has C++ rightly won its place in history with excellent features and functionality?

C++ was designed as a powerful and adaptable language.  It is used most often in the production of larger or complex products.  This is because it is fast, portable, and allows for the prioritization of resources.  Because of its scalability, very resource intensive applications are ideal products for C++ coding.  An application that may use a large amount of memory, when built using another language, may use a fraction of the resources when written using C++ due to the vast power that the programmer has to customize the application and the way that it uses resources.  (“Why Learn C++”)

The amount of control that C++ gives the programmer is a double-edged sword.  The language offers control of almost every detail of the application but the down-side is that it is difficult, complex, and time consuming to maintain.  Inexperienced programmers may easily go in circles by introducing erroneous code into the system.  There is also a greater need to manage resources, including memory usage, than is the case with many other languages.  This means that a team using C++ will probably be a large team of experienced programmers working on large and/or complex products that have the potential to be resource heavy in the wrong hands.  A large team is also necessary, in many cases, because programming in C++ requires a lot of code – but the finished product usually pays off if the programmers were experienced and the team was organized and well managed.  (“Why Learn C++”) It is unlikely that C++ would be used in the development of smaller scale or low budget projects, although there are techniques in which one can hybridize C++ strings into a program written using Python or other languages.  (“Extending Python with C or C++”)

The success that C++ has experienced, and will likely continue to experience for the foreseeable future, is virtually guaranteed due to the scale and type of audience for which it is most advantageous.  It is also beneficial to C++ programmers that there is a large community of support resources available in colleges, blogs, professional networks, and all manner of online help sites. (“Why Learn C++”) While not the easiest language to learn, the amount of people seeking to learn C++ had increased more than 20% as of 2015.  C++ is particularly of interest to those who want to work on video game design, the development of web browsers, GUI (Graphics User Interface) based applications, database software, and operating systems.  (Rongala)

The video game community has thrived on programming in C++.  It is safe to say that the majority of video games were written in C++, especially the big name, big budget games that are household names.  One might recognize the likes of Doom, Halo, and World of Warcraft as some of the most popular and innovative games of their times.  Each of these was written in C++.  (Calore) The video game design community has, at least partially, moved away from using C++.  This is only due to the rise of the independently developed games to popularity recently.  More and more programmers are designing games without the backing and control of the big names in video games (EA, Blizzard, Ubisoft, Microsoft, Bandai, etc.).  (“The Top 50 Video Game Design Companies”) As mentioned previously, due to the complex and demanding nature of C++, individual game designers, or small, independent design companies, are ill-equipped to handle the demands of both programming with and allocating resources in C++.  The video game world has hardly abandoned C++, but the independent game trend has certainly changed the course of video game design history.  (Rongala)

The world of computing as we know it today would not be the same if not for C++.  Most operating systems were at least partially written using C++.  The operating systems we know and (sometimes) love today are a far cry from their command line, non-GUI predecessors.  The power of C++ was such that as resources, like greater processing power and memory capacity, grew more common and affordable, one could watch operating systems such as Windows develop into the graphically pleasant, arguably easy-to-use operating system for both business and personal that is available to us today in Windows 10.  (“Top Ten Applications Written in C/C++”) The future of operating systems is bright as more mobility, connectivity, and convenience is built into future applications, especially considering our cloud computing future.

Perhaps one of the most exciting sectors of development in the technological realm is that of Health Information Technology.  C++ has been used in multiple applications in the advancement of medical technology, from the embedded applications found in blood analysis devices, to the complex 500,000 lines of code that made up the GEANT4 project, among others. (Stroustrup) This project studied the simulation of passing particles through matter.  It was a multi-national project that began in 1998 and the code for the program is available online for free. (GEANT4) This project alone had far-reaching implications, especially for the medical field in the treatment of hard to treat ailments, but in the fields of clean energy and nuclear science, as well.  As interoperability advances in hospital and medical office systems, and databases become standardized with the likes of the HL7 and FHIR technologies, patients will be able to receive greater care from their physicians. (Musal) Some HL7 interfaces have also been written in C++.  (“HL7 Frequently Asked Questions”)

The creation of C++ has affected every part of our technological world today.  Without C++, the development of many things that we depend on heavily would either not exist, or their development would have been quite delayed.  Due the ability of C++ to handle both low-level machine language and high-level design language proficiently, it has pervaded to almost every part of the technological realm, from the applications discussed above, such as operating systems and medical systems, to the computer chips in our cars, our entire electrical grid, and the applications we depend on to get us through our days.  (Calore)

Currently, for this author, the greatest priorities for technological advancement are in the fields of healthcare and space exploration.  It is for these two purposes that this author would strive to use C++, or a hybridized and targeted C++ language, to make a positive impact on the world.  We think of our healthcare system as very cutting-edge, practically working miracles compared to the capabilities in place even a decade ago.  And yet, preventable diseases still occur, and many diseases are still not fully understood.  Many common diseases, such as cancer, are still not entirely curable despite great strides.  The scalability of C++ makes it an ideal tool to create interoperable databases and devices so that results from medical equipment can be securely and quickly uploaded to patient files that can be available (with permissions, of course) at every doctor’s office and hospital, so that each doctor has the patient’s entire medical history at hand, without the need for the patient to call multiple medical offices and beg for the release of their information to be faxed to another doctor’s office (may this author point out that this is neither efficient nor secure for the patient’s incredibly personal and sensitive medical history).  The capabilities to build databases that can predict impending illness early and detect trends such as the opioid crisis earlier than current medical capabilities would be invaluable to humankind as we know it. 

The other major priority of this author, which was neglected by the United States largely in recent decades, but to an extent by the world in general, is the development of better and safer space exploration tools, whether manned or unmanned.  As mentioned earlier, the Mars Rover was coded using C++, allowing for the beginnings of data collection on the Red Planet.  As the space program has been ramped back up under the current administration, NASA and private space flight companies such as SpaceX are actively pursuing feasible plans for putting humans on MARS.  It becomes ever more imperative to build the best possible applications to run the countless non-expendable systems that make up spaceships, interplanetary exploration and data collection devices, astronaut health diagnostics tools, systems diagnostic tools, advanced habitats capable of supporting human life in an alien and inhospitable environment, etc.  As we come closer to the reality of the possibility of colonies in space, we face the challenge of providing the most advanced, reliable, and effective applications possible for our next generation of space pioneers.  C++ has the capability to create and maintain systems that grow and expand with each new need that is discovered in this highly exploratory field.

The importance of the C++ language on the history of technological development cannot be understated.  The complexities of the language, which make it a challenge to learn and use properly, is a hurdle well worth tackling in comparison to the rewards that can be reaped for not only the developer seeking a challenging and fulfilling career, but for the multitude of users which will benefit from the applications developed by C++ programmers.  Had Stroustrub fully understood the implications of his creation, he surely would have faltered with the magnitude of the impact he would make in our lives. 

The continual advancement of technology will be an interesting and engrossing topic as we watch the steady march towards smart homes, touch-surfaces (will our walls be customizable screens in the future?), and self-driving vehicles.  Without C++ many of the advancements that we take for granted would not have been possible.  The future of C++ has great potential, even with the possibility that C++ may be the grandfather of a hybridized language that supersedes even itself.  As computer scientists find new ways to take technology to the next level, it is increasingly likely that we will continue to see new languages which make interoperability, mobile applications, and artificial intelligence the priority in programming.  We can thank Bjarne Stroustrub and C++ for the foundations and continual growth that will make our future brighter. 

Works Cited

  • Albatross.  “History of C++.” 2017, http://www.cplusplus.com/info/history/.  Accessed Nov. 2, 2018.
  • “Bjarne Stroustrup: 2015 Fellow.” 2015, http://www.computerhistory.org/fellowawards/hall/bjarne-stroustrup/. 2018.  Accessed Nov. 3, 2018.
  • Calore, Michael.  “Inventor of C++ Reflects on 25 Years of the Programming Language.” Programming Language, October 15, 2018. https://www.wired.co.uk/article/c-plus-plus-inventor.  2018.  Accessed Nov. 12, 2018.
  • “Extending Python with C or C++.” Extending and Embedding the Python Interpreter, Nov. 8, 2018. https://docs.python.org/2/extending/extending.html.  2018.  Accessed Dec. 2, 2018.
  • “Get Started With Simula Programming.” https://www.whoishostingthis.com/resources/simula-programming/. 2007-2018.  Accessed Nov. 6, 2018.
  • “The History of the C Language.” https://www.codingunit.com/the-history-of-the-c-language. 2018.  Accessed Nov. 6, 2018.
  • Kariya, Abhirav.  “C++ Classes and Objects.”  https://www.geeksforgeeks.org/c-classes-and-objects/.  Accessed Nov. 12, 2018.
  • “Michael Tiemann.”  https://en.wikipedia.org/wiki/Michael_Tiemann.  March 9, 2018.  Accessed Nov. 12, 2018.
  • Milington, David.  “Evolution of C++ Standards.” May 16, 2018. https://community.embarcadero.com/blogs/entry/evolution-of-c-standards. 2018.  Accessed Nov. 12, 2018.
  • Rongala, Arvind.  “Applications of C / C++ in the Real World.” IT, March 16, 2015, https://www.invensis.net/blog/it/applications-of-c-c-plus-plus-in-the-real-world/. Accessed Nov. 2, 2018.
  • “Simula 67.” http://cs-exhibitions.uni-klu.ac.at/index.php?id=4&type=0&uid=36&cHash=223461c3a4.  Accessed Nov. 6, 2018.
  • Stroustrup, Bjarne.  “Welcome to Bjarne Stoustrup’s Homepage!” http://www.stroustrup.com/.  Accessed Nov. 3, 2018.
  • Tiemann, Michael.  “Well It Was Twenty Years Ago Today…” Open Source Initiative, June 11, 2007. https://opensource.org/node/155. Accessed Nov. 12, 2018.
  • “The Top 50 Video Game Design Companies.” https://www.gamedesigning.org/game-development-studios/.  2018.  Accessed Nov. 27, 2018.
  • “Top ten applications written in C/C++.”  https://www.mycplus.com/featured-articles/top-10-applications-written-in-c-cplusplus/.  Accessed Nov. 30, 2018.
  • “What Interesting Things can I create with C++.”  Computer Programming, Sept. 19, 2017. https://www.quora.com/What-interesting-things-can-I-make-using-C++.  Accessed Nov. 26, 2018.
  • “Why Learn C++.”  CodeMentor, Apr. 2018.  http://www.bestprogramminglanguagefor.me/why-learn-c-plus-plus.  Accessed Nov. 26, 2018.

Cite This Work

To export a reference to this article please select a referencing stye below:

Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.

Related Services

View all

DMCA / Removal Request

If you are the original writer of this essay and no longer wish to have your work published on the UKDiss.com website then please: