19

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 ?

9
  • 18
    Is tiobe relevant ? Many people think it isn't. Commented Apr 23, 2013 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. Commented Apr 23, 2013 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. Commented Apr 23, 2013 at 2:06
  • 5
    C is way less complex than C++.
    – fanl
    Commented Apr 23, 2013 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. Commented Apr 23, 2013 at 2:11

2 Answers 2

16

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.

2
  • 33
    "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. Commented Apr 23, 2013 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
    Commented Apr 23, 2013 at 5:17
16

"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.

11
  • 3
    Quite a few AAA game titles too.
    – Alan B
    Commented Apr 23, 2013 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
    Commented Apr 23, 2013 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
    Commented Apr 23, 2013 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. Commented Apr 23, 2013 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
    Commented Apr 23, 2013 at 12:15

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