Archives

March 31st, 2013 | Tags: , , , | Category: CodeProject, Software

Is C++ passé?


C++In the late 50’s, when people programmed close to metal (read: with assembly languages) on a daily basis, there were only two so-called high-level programming languages: Fortran and Lisp. Both are still in use, even though they are considered passé (yet, I consider Lisp and its Zen-like syntax as one of the best languages out there).

Since the late 60’s, hundreds of programming languages have emerged. Most notably the language C, developed between 1969 and 1973, which provides highly expressive constructs as well as assembly language-level primitives. In the 80’s C++ became an object-oriented extension of C, and eventually C++ received a standard definition in 1998. With the maturation of STL (Standard Template Library) in the late 90’s, and the coming of more libraries, notably the boost library in early 2000’s, C++ is the language of reference for applications that require a tight coupling with the hardware, e.g., operating systems, high performance computing, servers, video games, etc.

In the mid-90’s, with the exponential growth of the Internet, came a flurry of languages that were to become the Lingua Franca of the web:  Java, PHP, JavaScript, Perl, Ruby, Python, .NET, MySQL, etc. Whether interpreted or compiled, these languages are the tools used daily to build and augment the web.

Java in particular has been hailed as the new universal language because of:

  • Its portability, one of the major features of Java’s core design with the JVM.
  • Its ease of use –a strong C/C++ flavor without the complexity, like the memory management.
  • Its amazingly rich libraries –you can truly develop pretty much anything with a relatively small Java code if you know your libraries.

Since Java and the evolution of the web, it has somehow became fashionable to question C++’ relevance. Should you learn C++ at all? Is C++ dead? (Google returns more than 6 millions hits on that question…)

There are many empirical ways to measure the relevance and popularity of a language –see the TIOBE index, LangPop.com, PYPL, The RedMonk Ranking, Language Popularity Index, etc. They all show C++ alive and well. So where does this discrepancy come from?

For those who know the web as the only computing environment (and they are many), it is understandable to be biased towards the trendies languages –Ruby, Java, C#, etc. Too many people equate “not the best language for web development” with “obsolete”. These same people tend to forget that the large, distributed, real-time, fault-tolerant, infrastructures that fuel the web (servers, databases, data centers, cloud computing), as well as the OS and network logical layers that make it possible, are built on top of very efficient, close to metal, yet high-level languages, like C and C++.  Case in point: Facebook, whose systems were mostly written in HTML, PHP and Java, has been moving its core infrastructure to C++ for performance.

So rest assured: C++ might not be the easiest language to master, or the most fashionable in the web spheres, but it is still the undisputed king for high performance computing, whether performance means speed, memory, or power.

4 comments to Is C++ passé?

  • Satyakam

    That is really good to know. The information about FB was something that I has not known.

  • My understanding was that Facebook was still developped in PHP, but then, instead of using the PHP runtime, they developped was they call a “HipHop VM” (https://www.facebook.com/notes/facebook-engineering/speeding-up-php-based-development-with-hiphop-vm/10151170460698920) … is there something else that I missed ?

  • No, you didn’t miss anything. This is part of Facebook’s wide systematic effort for efficiency –leaner and more Watt-efficient. Their intake of C/C++ people jumped months ago because of this.

  • Randall

    The real issue is that employers typically state in job postings, such statements as “At least 2 years experience in <the language."…, where could be C#, C++, SQL, JAVA, etc. So to get the job, one must already be an expert and once hired, one will not learn something new. So while learning a new language might be nice, unless you can use it at your current job to accumulate experience, most employers won’t be interested in the fact that you learned it on your own because its not enough for them to be willing to take the risk of hiring you.

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>