I can't get my head around this. If C is so much used, but C is not C++, can someone explain to me the most important reasons that makes C more used than C++ ? Where is all this C code written for ?

Is this about the industrial sector which heavily rely on imperative programming but can't support the cost of implementing or tuning C++ compilers ? Are there that many kernel hackers ?

Is tiobe relevant ? I never stumbled into any article or post commenting or explaining how singular tiobe's ranking is, and what it actually says about what the industry likes, and what it can tell about what the industry actually uses, to pinpoint the industry real needs. It's hard to explain.

I just find it odd many companies want C#, php, java jobs, and not C or C++ jobs (just relating my unemployment and my interviews here) even if those C/C++ jobs are crap. I would take those instead. Or does this mean language hype plays a strong role here ?

  • 18
    Is tiobe relevant ? Many people think it isn't. – Simon Bergot Apr 23 '13 at 1:54
  • 1
    I would only use it to gauge the top ten languages are probably in active use. The rank on the tiobe index is not related to their real popularity. – Martin York Apr 23 '13 at 1:59
  • 4
    A lot of embedded programming is done in C. It's not just about the cost of implementing/tuning C++ compilers; it's the cost of running C++ on the embedded device. – Velociraptors Apr 23 '13 at 2:06
  • 5
    C is way less complex than C++. – fanl Apr 23 '13 at 2:11
  • 8
    The TIOBE index is a fun measurement; fun in so much as we're all engineers and we find measurements fun because we can chart them and imagine predictions and conclusions based on them. But we also know things as broad and complex as actual use and popularity of a language are not yet things we are capable of measuring with any accuracy at all. So TIOBE's fun, but where it doesn't appear to line up with reality, it probably doesn't. – Jimmy Hoffa Apr 23 '13 at 2:11

The TIOBE index relies on search engine hits - see http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm

This means that (for an example, in theory) you can have a language that everyone is talking about that has a lot of hits and gets a high rating even though nobody uses it, and you can have a language that lots of people are using but there aren't many web pages/hits so it gets a low rating. It doesn't even take into account what the web pages contain (for example, imagine a million web pages saying a certain language is aweful, that all increase the language's TIOBE index).

In theory, weighting factors would need to be applied to get usage from web hits/TIOBE index. For example, for complex language like C++ (where everyone using it is likely to have one or more reference books) usage is likely to be higher than what the TIOBE index indicates; and for languages primarily used for web development (where most of the documentation is typically online and its users are more likely to create web pages) usage is likely to be lower than what the TIOBE index indicates.

Of course it's virtually impossible to accurately determine appropriate weightings for each language; and therefore the TIOBE index can only be considered a crude approximation of usage at best.

| improve this answer | |
  • 32
    "for example, imagine a million web pages saying a certain language is aweful, that all increase the language's TIOBE index": I finally understand why PHP is in the top ten. – Arseni Mourzenko Apr 23 '13 at 5:02
  • 4
    +1, and I also suspect that certain languages tend to be used more for experimentation / weekend work, and these languages will have a disproportionate number of searches for their level of use (i.e. if you don't use it every day, you tend to search more). That said, I don't think that argument is particularly applicable to C. More relevant might be that plenty of C++ searches end up categorised as C because of developer misunderstanding / lazyness. – Daniel B Apr 23 '13 at 5:17

"If C is not so much used" -- I would be interested to see if anyone could back this up.

All of the following are written in pure C:-

  • the Linux kernel.

  • the git repository.

  • MySql, PostgreSQL, SQLite open source databases.

  • Oracle, DB2, Informix, SYBASE proprietary databases.

  • Large chunks of the Windows OS.

  • The Apache Web Server, the ngnix web server.

  • The Perl, Python, PHP, Lua language reference implementations.

    All in all I would say there are more C programs which are executed more often than any other language.

| improve this answer | |
  • 3
    Quite a few AAA game titles too. – Alan B Apr 23 '13 at 7:36
  • 3
    Those are core services, coded by handfuls of skilled programmers. What about 'front end code' ? The applications for users ? Once those core services you are talking about are coded and debugged, they're ran, but you do nothing just by using them. – jokoon Apr 23 '13 at 8:36
  • 2
    Add to this, most industrial control, most embedded systems, Automotive industry. The core of everything written before 1995 (That is not Cobol or Ada)..... – mattnz Apr 23 '13 at 8:48
  • 1
    Nitpick: Of the 4 production-level Python implementations, 3 are not written in C. Of the three production-level PHP implementations, 2 are not written in C. The majority of Git implementations aren't written in C. – Jörg W Mittag Apr 23 '13 at 10:29
  • @jokoon - Obviously 'front end code' is not a requirement to be on this list. If your goal is to find out what languages to learn for employment, maybe a job site would be better? – JeffO Apr 23 '13 at 12:15

Not the answer you're looking for? Browse other questions tagged or ask your own question.