Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

C Beats Java As Number One Language According To TIOBE Index

samzenpus posted about 2 years ago | from the mom's-favorite dept.

Programming 535

mikejuk writes "Every January it is traditional to compare the state of the languages as indicated by the TIOBE index. So what's up and what's down this year? There have been headlines that C# is the language of the year, but this is based on a new language index. What the TIOBE index shows is that Java is no longer number one as it has been beaten by C — yes C not C++ or even Objective C."

cancel ×

535 comments

Sorry! There are no comments related to the filter you selected.

Woohoo (2, Interesting)

Anonymous Coward | about 2 years ago | (#42507991)

Go C!

Re:Woohoo (5, Funny)

K. S. Kyosuke (729550) | about 2 years ago | (#42508135)

Go C!

Actually, Go has some catching up to do on C.

Re:Woohoo (0)

Anonymous Coward | about 2 years ago | (#42508203)

My college education is paying off!

Redundant but it's pretty awesome. (0)

Anonymous Coward | about 2 years ago | (#42508665)

go go [golang.org] !

Re:Redundant but it's pretty awesome. (1)

Anonymous Coward | about 2 years ago | (#42508793)

See C go, Go!

Re:Woohoo (5, Funny)

Anonymous Coward | about 2 years ago | (#42508747)

oh no you don't
my friend told me to visit go c before
i'm not falling for that one again

Re:Woohoo (3, Interesting)

ByOhTek (1181381) | about 2 years ago | (#42508941)

Not going to complain about that.

It's depressing that Objective-C, Ruby and VB.Net have gone up, and see C# go down...
But nice to see C and Bash go up, as well as Java go down. Then again, Java goes down on everything, that's how much it blows. I need a job that doesn't require me to program so much of that. Oh well, occasionally I can get to use C, Bash or Python...

Dying gasps (3, Funny)

OrangeTide (124937) | about 2 years ago | (#42507993)

Doesn't a dying star expand into giant before it dies?

Re:Dying gasps (5, Informative)

Anonymous Coward | about 2 years ago | (#42508083)

You would be surprised how many mission critical embedded systems - are still being written in C

Re:Dying gasps (4, Funny)

yurtinus (1590157) | about 2 years ago | (#42508199)

...I think you'd be more surprised at how many are written in C#

Re:Dying gasps (3, Funny)

Vanderhoth (1582661) | about 2 years ago | (#42508341)

If it's more than one, then I'm surprised!!!

I kid.

Re:Dying gasps (0)

Anonymous Coward | about 2 years ago | (#42508379)

Considering how many mission critical systems failures I've seen, no, I wouldn't.

Re:Dying gasps (2, Insightful)

Anonymous Coward | about 2 years ago | (#42508433)

If you think the failures are due to the language being selected, you're the problem, not C#.

Re:Dying gasps (1, Interesting)

ByOhTek (1181381) | about 2 years ago | (#42508999)

Seconded.

Like Java, C# will be attractive to nubblecake coders due to the ease of use, but I'd have to say, in my experience, the documentation is way better, and, provided you follow what's listed on the Mono project as compatible, you get better cross platform compatibility as well.

Anything can crash with an incompetent coder. If you think C# is bad, imagine what they'd do on a less well documented language like Java, or a much more skill-dependent language like C, C++ or assembler.

Re:Dying gasps (1)

mysidia (191772) | about 2 years ago | (#42508825)

Critical systems written by vendors other than Microsoft?

Re:Dying gasps (5, Insightful)

Hentes (2461350) | about 2 years ago | (#42508225)

Not really. While I agree that C is a bad language, it has no competition in low-level coding. With embedded systems gaining ground, more and more people will start to use it. Although C++ could take its role and it even fixes many of its shortcomings (e.g. namespaces), it's very easy to misuse, so most project leaders don't trust their collegues with it. What would people switch to? Forth, Pascal?

Re:Dying gasps (5, Insightful)

localman57 (1340533) | about 2 years ago | (#42508333)

Exactly. When you are working in a resource constrained environment, and you want to be able to accurately predict what machine instructions will be generated from your source code, you use C. It's faster to code, and more portable than assembly language, with almost all of the control. Typically maybe 5% or less of your application needs to be really, really fast (interrupt handlers, DSP code, special communications or math or encryption libraries). You might code these in assembly, and the rest in C.

But if you're starting new big applications for the PC in C, you're probably insane.

Re:Dying gasps (-1)

Anonymous Coward | about 2 years ago | (#42508799)

But if you're starting new big applications for the PC in C, you're probably insane.

I know where you live. I know where you work. I know where you eat. I even know your claim to have sexual relations every night is only with yourself. ;) Supper is ready, son. LOL

Re: Dying gasps (0)

Anonymous Coward | about 2 years ago | (#42508471)

particularly as a growing army of hobbiests ( like me ) use for small systems like ardinio

Re:Dying gasps (0)

Anonymous Coward | about 2 years ago | (#42508627)

Ada and Eiffel

Re:Dying gasps (2)

Synerg1y (2169962) | about 2 years ago | (#42508707)

You just answered my question on why C could even be considered :)

Embedded systems would explain the growth, .NET FW is windows only pretty much, NOBODY, but MS is going to try to port it to an embedded machine. I'd still say 90% of businesses are .NET shops to varying degrees, but I didn't immediately understand what C was doing up there.

Java though... makes me doubt the validity of TIOBE heavily, object-C doesn't help either, I get that there's a lot of android/iOS programming going on (I believe this is what object-C is used for mostly nowadays, but... more than 90% of businesses combined using .NET... doubtful). Maybe if TIOBE was based on +/- % changes I'd understanding, but as an overall popularity index, businesses have the $, and businesses use .NET unless they're web based... then something Linuxy is the overwhelming trend, which mostly equals something php, ruby, etc... I've got to call shenanigans on this :)

Re:Dying gasps (0)

Anonymous Coward | about 2 years ago | (#42508781)

Not really. While I agree that C is a bad language, it has no competition in low-level coding. With embedded systems gaining ground, more and more people will start to use it. Although C++ could take its role and it even fixes many of its shortcomings (e.g. namespaces), it's very easy to misuse, so most project leaders don't trust their collegues with it. What would people switch to? Forth, Pascal?

Why not Forth? It's been used for firmware:

http://en.wikipedia.org/wiki/Open_Firmware

We've had entire operating systems written in Lisp in the 1980s as well:

http://en.wikipedia.org/wiki/Lisp_machine

Many of those systems didn't have much more resources than many of the so-called embedded systems do now.

It's just that most folks are used to ALGOL-like syntax (because of the popularity of C) that the visuals of coding in these languages is a big put off.

Re:Dying gasps (0)

Anonymous Coward | about 2 years ago | (#42508815)

One also has to remember that Java is split into three languages on the index now as well where C is not; java is Scala, Groovy and Java. So that java stat isn't quite accurate in the truest since.

What would you use? (1)

overshoot (39700) | about 2 years ago | (#42508903)

What would people switch to? Forth, Pascal?

About 25 years ago, working in an embedded product company, I had a friendly little argument with my software colleagues (me design hardware, UGH!) They insisted that there was nothing around that could compete with the C-compiler-that-later-became-Microsoft's for tight compiled code. So we had a little contest: they wrote a chunk of our kind of code in C, and I did it in Modula-2 (Logitech's compiler.) In both cases we were building reusable code with object methods.

Quite enlightening.

How the comparison would go today, given the advances in compiler optimization, I couldn't guess.

Re:Dying gasps (3, Interesting)

UnknownSoldier (67820) | about 2 years ago | (#42508925)

> While I agree that C is a bad language, it has no competition in low-level coding.
Mostly agree. Although I prefer turning all the crap in C++ off to get better compiler support.

> Although C++ could take its role and it even fixes many of its shortcomings (e.g. namespaces)
Uh, you don't remembered "Embedded C++" back in the late 90's early 00's ?

If you think namespaces are part of the problems you really don't understand the complexity of C++ at _run_time_ ...

Namely:

* Exception Handling
* RTTI
* dynamic memory allocation and the crappy way new/delete handle out of memory
* dynamic casts
* no _standard_ way to specify order of global constructors/destructors

Embedded systems NEED to be deterministic, otherwise you are just gambling with a time-bomb.

http://en.wikipedia.org/wiki/Embedded_C%2B%2B [wikipedia.org]

--
There are 2 problems with C++. Its design and implementation.

Re:Dying gasps (1)

Anonymous Coward | about 2 years ago | (#42508297)

No, but loads of high level language based frameworks optimizing their backends lately.
Also, as hardware hacking seem to be some kind of trend, C comes in handy.

Yes, unfortunately TIOBE is bollocks. (5, Informative)

Anonymous Coward | about 2 years ago | (#42508489)

Seriously, for the last fucking time, can we stop posting on Slashdot random shit picked up from TIOBE? The TIOBE index is so completely and utterly full of fail that I can't believe people are STILL clinging onto it as evidence of anything whatsoever.

It shouldn't be traditional to do anything with TIOBE, except perhaps laugh at it or set it on fire.

So once last time, one final fucking time I'll try and explain to the 'tards who think it has any merit whatsoever why it absolutely does not.

We start here, with the TIOBE index definition, the horses mouth explanation of how they cludge together this table of bollocks they call and "index":

http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm [tiobe.com]

First, there is their definition of programming language. They require two criteria, these are:

1) That the language have an entry on Wikipedia

2) That the language be Turing complete

This means that if I go and delete the Wikipedia entry on C, right this moment, it is no longer a programming language, and hence no longer beating anything. Apparently.

The next step, is to scroll past the big list of languages, to the ratings section, where we see that they state they take the top 9 sites on Alexa that have a search option, and they execute the search:

+" programming"

Then weight the results as follows:

Google: 30%
Blogger: 30%
Wikipedia: 15%
YouTube: 9%
Baidu: 6%
Yahoo!: 3%
Bing: 3%
Amazon: 3%

The first problem here is with search engines like Google, I run this query against C++ and note the following:

"About 21,500,000 results"

In other words, Google's figure is hardly anything like a reasonable estimate because a) Most these results are fucking bollocks, and b) The number is at best a ballpark - this accounts for 30% of the weighting.

The next problem is that Blogger, Wikipedia, and YouTube account for 54% of the weighting. These are all sites that have user generated content, as such you could literally, right now, pick one of the lowest languages on the list, and go create a bunch of fake accounts, talking about it, and turn it into the fastest growing language of the moment quite trivially.

To cite an example, I just ran their query on English Wikipedia for the PILOT programming language and got one result. A few fake or modified Wikipedia entries later and tada, suddenly PILOT has grown massively in popularity.

The next point is the following:

"Possible false positives for a query are already filtered out in the definition of "hits(PL,SE)". This is done by using a manually determined confidence factor per query."

In other words yes, they apply an utterly arbitrary decision to each language about what does and doesn't count. Or to put it simply, they apply a completely arbitrary factor in which you can have no confidence of being of any actual worth. I say this because further down they have a list of terms they filter out manually, they have a list of the confidence factors they use, and it takes little more than a second to realise massive gaps and failings in these confidence factors.

For example, they have 100% confidence in the language "Scheme" with the exceptions "tv", and "channel" - I mean really? the word Scheme wouldn't possibly used for anything else? Seriously?

So can we finally put to bed the idea that TIOBE tells us anything of any value whatsoever? As I've pointed out before a far better methodology would at least taken into account important programming sites like Stack Overflow, but ideally you'd simply refer to job advert listings on job sites across the globe - these will tell you far more about what languages are sought after, what languages are being used, and what languages are growing in popularity than any of this shit.

Finally I do recall last year stumbling across a competitor to TIOBE that was at least slightly better but still not approaching anything of any worth. Is it really so hard to setup something that actually uses worthwhile data?

Anyway, excuse the bile in this post, I hate abuse of statistics generally in politics, the media and so forth, but to see perhaps what is the biggest statistical failing ever posted so often to a site like Slashdot where discussion then continues as if there's any validity to it makes me sick to my stomache like all the language fanboys switch off all logic and common sense in the face of such a piss fucking failure of an index if it means their pet language is suddenly near the top, or falling to the bottom.

TIOBE tells us nothing other than the fact the people referring to it haven't got a single clue about what the most popular languages are, nor do they have even a basic grasp of what would be required for such a list to be anything close to valid in it's summaries, despite what they think.

Re:Yes, unfortunately TIOBE is bollocks. (1)

omnichad (1198475) | about 2 years ago | (#42508725)

I think someone should mod AC informative. This does sound like a worthless statistic.

Re:Yes, unfortunately TIOBE is bollocks. (1)

cod3r_ (2031620) | about 2 years ago | (#42508871)

The second they said Java WAS in #1 spot made me really question the validity of this.

Re:Dying gasps (0)

Anonymous Coward | about 2 years ago | (#42508739)

C is much better than Java but sadly given the comparison it is not really an accolade. I enjoy programming with C and detest touching anything written in Java. The creator of Java should be hanged by the neck until dead and then burned to ashes. All the pussy IT folks these days cannot programme worth a damn and the software developers cannot handle a language with sharp edges.

...Bash? (5, Interesting)

earlzdotnet (2788729) | about 2 years ago | (#42508017)

Am I the only person seriously wondering how Bash went from position 72 to 20? Bash is in the top 20 programming languages... Something is wrong with the programming universe

Re:...Bash? (5, Insightful)

Tridus (79566) | about 2 years ago | (#42508043)

More like something is wrong with the measuring system being used.

Re:...Bash? (0)

Anonymous Coward | about 2 years ago | (#42508123)

indeed

Re:...Bash? (4, Informative)

i kan reed (749298) | about 2 years ago | (#42508213)

Yep, they use frequency of search on the internet for the language to estimate. Which means confusing, and easily broken languages like C, and infrequently used(and thus easily forgotten) languages like bash get a huge leg-up.

Re:...Bash? (1)

mysidia (191772) | about 2 years ago | (#42508955)

Yep, they use frequency of search on the internet for the language to estimate. Which means confusing, and easily broken languages like C, and infrequently used(and thus easily forgotten) languages like bash get a huge leg-up.

How come BATCH (.BAT) isn't on there, then?

Re:...Bash? (0)

Anonymous Coward | about 2 years ago | (#42508947)

Maybe it is non-metric.

Re:...Bash? (1)

N!k0N (883435) | about 2 years ago | (#42508095)

2013 is the year of the Linux Desktop? Alternatively, Raspberry Pi/Arduino/Android devices maybe?

From a fan of bash... (0)

Anonymous Coward | about 2 years ago | (#42508139)

No, you aren't. I got distracted writing the same comment.

When was the last time that you sat down to do an important project and the consensus of best language choice was "bash?"

Re:From a fan of bash... (0)

Anonymous Coward | about 2 years ago | (#42508515)

When was the last time that you sat down to do an important project and the consensus of best language choice was "bash?"

TIOBE isn't about the "best" language choice. It's about what is actually being used (or at least being inquired of in search engines.)

The choice of Bash is implicit. You may indulge whatever tools you wish, but at the end of the day the system must boot, backups must be performed, builds must be automated, file systems must be assembled, artifacts must be deployed, maintenance tasks must occur. So we all end up writing a bunch of Bash regardless of whatever our consensus choice might be.

The fact that Bash ranks that well says a lot about *nix generally. Where did PowerShell land?

Re:From a fan of bash... (1)

Bill, Shooter of Bul (629286) | about 2 years ago | (#42508961)

Yeah, I think it also has a lot to do with how much reference is needed for a particular language. Bash, perl and PHP are all odd ducks. Searching for things about them are more indicative of how messed up their syntax is, rather than a measure of their usage.

Re:...Bash? (0)

Anonymous Coward | about 2 years ago | (#42508363)

I had to write a bash script the other day...that probably accounts for 5 of those 52 places...

Re:...Bash? (1)

nemasu (1766860) | about 2 years ago | (#42508513)

Bash can be very powerful, and it's easy to use. The entire (obviously minus sed,awk,dd,etc) packaging system for noop linux [nooplinux.org] uses bash scripts. Works very good, and is easy to figure out or modify.

C? (1, Interesting)

Anonymous Coward | about 2 years ago | (#42508023)

That's insane. Exactly what are people writing in C these days???

Re:C? (4, Insightful)

Rockoon (1252108) | about 2 years ago | (#42508055)

...libraries for all those managed languages and platforms.

Re:C? (5, Insightful)

AwesomeMcgee (2437070) | about 2 years ago | (#42508081)

Specifically the platforms. The boom in mobile devices all having varied hardware requires C glue for each one to let the managed stuff run. The mobile boom has ironically been a new hardware boom causing an old software boom.

Re:C? (4, Interesting)

Joce640k (829181) | about 2 years ago | (#42508221)

And why not C++? It has a number of advantages over C...

Re:C? (2, Interesting)

javamann (410973) | about 2 years ago | (#42508435)

Name three

Re:C? (1)

Anonymous Coward | about 2 years ago | (#42508495)

Inheritance, Namespaces, Templates

Re:C? (2, Insightful)

Pinhedd (1661735) | about 2 years ago | (#42508605)

Those aren't clear advantages. Rather, they're a shortcut toward writing shitty code.

Re:C? (3, Insightful)

jjohnson (62583) | about 2 years ago | (#42508639)

The name of the fallacy you just demonstrated is "No True Scotsman".

Re:C? (2)

Nethead (1563) | about 2 years ago | (#42508787)

Name three true Scotsmen!

Re:C? (4, Funny)

CanHasDIY (1672858) | about 2 years ago | (#42508951)

Sean Connery, Doctor Who, and the asshole who invented golf.

Boo-ya.

Re:C? (2)

Jerslan (1088525) | about 2 years ago | (#42508611)

He meant name three advantages, not disadvantages and feature bloat ;)

Re:C? (1)

Cassini2 (956052) | about 2 years ago | (#42508803)

Encapsulation - the ability to hide functions inside classes is a far bigger feature of C++ than any of the above.

Additionally, C++ has the advantage that you can write one piece of code that can compile either in C++ or in C, which can be a huge advantage when doing communications code with embedded systems.

Re:C? (0)

Anonymous Coward | about 2 years ago | (#42508657)

Zero is a number. :p

Comment syntax (the fact that C programmers stole the // because of it's obvious usefullness doesn't mean it wasn't a C++ feature)
Operator overrides ( (a + b) / c, or divide_3d_vector_set(add_3d_vector_set(a,b),c) )
Name Space Collision avoidance

No one says you have to use "cout"

Re:C? (0)

Anonymous Coward | about 2 years ago | (#42508993)

the aqueduct, the sanitation and the roads

Experiment (2, Insightful)

Anonymous Coward | about 2 years ago | (#42508827)

Write "Hello World" or any other program you desire in C and in C++.

Now look at the executable size.

Run it through a profiler and see execution time.

Now ask yourself, which language would you want to use on a system that has very limited resources without breaking out the assembler?

Re:C? (1)

narcc (412956) | about 2 years ago | (#42508897)

C++ causes more problems than it solves.

If you're using C++, you should probably be using C. If C isn't a good fit for your project, C++ isn't likely to be the answer.

Re:C? (4, Insightful)

Old97 (1341297) | about 2 years ago | (#42508223)

'C' is the lowest common denominator. With 'C' I can write code for anything and everything. Mainframes, embedded devices, mobile, etc. Objective-C just extends C so it is more "pure" than C++ which introduces additional notations with different semantics and implementations such as memory allocation. So I can code for iPhone mostly in 'C'. I can write 'C' libraries and link them in on applications for iOS, Android, mainframe COBOL, Mac OS/X, any *ix operating system, Windows (including .NET), etc. It's the one language that is highly performant, ubiquitous and interoperable with every platform and language I can think of. Its almost always available for free.

Re:C? (1)

Goaway (82658) | about 2 years ago | (#42508347)

Uh, pretty much everything?

Re:C? (4, Interesting)

EmperorOfCanada (1332175) | about 2 years ago | (#42508717)

Your operating system, almost all shrink wrap applications such as MS Office or Photoshop, Your console's operating system, Your games, Your microwave's OS, Your car. C or C++ but even the C++ in most of the above systems is more C like than C++. Where people mistake the popularity of Java is that many of the jobs at hand such as the local phone company's new billing system will be in Java. But the code that makes the phones actually ring will be something more hardcore such as C or even erlang.

So most of the public will go through their day probably using C or C++ based code 99% of the time and a bit will be say the timesheet software running Java that they access through their C based browser using C based network drivers on viewed through a video card with C based drivers on a C based OS with their packets going through C based routers and switches after using a C based security system to get into the building where they used a C based elevator system to get up to work. Of course many of the above systems use a smattering of other bits such as scripting libraries but those are being run by a C library. The only other language that the average person might encounter would be some Objective-C on their iPhone or some Java on their Android; but again those OS's are basically C.

When they get home and browse the web they then get the full onslaught of servers running a dog's breakfast of PHP, Java, RoR, etc. But those servers are all programmed in.... you guessed it C.

Re:C? (0)

Anonymous Coward | about 2 years ago | (#42508917)

I develop in C, BASH, and Perl to keep the knuckleheads from messing with my systems. When they see I am using only a terminal console they run crying to the manager but the mean man in the cubicle. ROFLMAO

a bit of latency (4, Interesting)

lorinc (2470890) | about 2 years ago | (#42508025)

Java will come back to number 1 in a few years thanks to Android...

Re:a bit of latency (1)

Anonymous Coward | about 2 years ago | (#42508241)

Nope. No need to rely on java for android development, and many (most?) dont.

All your droid games, media streamers, gps, and other apps of note, are using straight C to do all the heavy lifting.

Re:a bit of latency (0)

Anonymous Coward | about 2 years ago | (#42508257)

Java will come back to number 1 in a few years thanks to Android...

Not if Google makes Go and Dart their default languages, which they should do to cut their dependencies with Oracle.

Re:a bit of latency (1)

culmor30 (2676135) | about 2 years ago | (#42508447)

They can't just "change the default language" of Android as easily as you suggest. The Dalvik VM is heavily integrated into the operating system. Perhaps they could write a compiler that compiles some other language to Dalvik bytecode, but library incompatibilities would make that a huge mess.

Re:a bit of latency (0)

Anonymous Coward | about 2 years ago | (#42508343)

Not really, Android is moving away from Java because it's shit. Anything more complex than a todo list app is going to be written largely in C or C++ with some Java wrappers.

Re:a bit of latency (2)

tepples (727027) | about 2 years ago | (#42508679)

In what way is Java "shit" for developing an Android application, as you claim?

Re:a bit of latency (1)

ADRA (37398) | about 2 years ago | (#42508959)

Don't feed trolls!

Re:a bit of latency (4, Informative)

EmperorOfCanada (1332175) | about 2 years ago | (#42508557)

Quite a few people are using the NDK and programming in C++ much to the chagrin of Google. So technically there might be 10-100 lines of Java loading 20,000 lines of C or C++. A great place to get started is: http://www.raywenderlich.com/11283/cocos2d-x-for-ios-and-android-getting-started [raywenderlich.com]

Here they have the most popular iOS game development library ported for programming on android in C++.

Re:a bit of latency (1)

alannon (54117) | about 2 years ago | (#42508777)

Why would you think that Google is unhappy that people are coding games on the Android using the NDK?

Re:a bit of latency (1)

Jerslan (1088525) | about 2 years ago | (#42508635)

Except that Android, iOS, and probably even Windows Phone are what drove C to the top of the pile.... All those cross-platform game engines are written in C because that language is supported on all 3 platforms.

Re:a bit of latency (1)

Coward Anonymous (110649) | about 2 years ago | (#42508849)

And if it doesn't can we finally put the notion of the inevitable ascendency of Android to rest?

Re:a bit of latency (0)

Anonymous Coward | about 2 years ago | (#42508889)

You mean Dalvik? I don't think that counts...

As mobile device research take off... (1)

eksith (2776419) | about 2 years ago | (#42508029)

This only makes sense. The sheer flexibility of low-level access is very powerful, especially with limited resources. Same reason older hardware is also C friendly.

Re:As mobile device research take off... (0)

Anonymous Coward | about 2 years ago | (#42508187)

Is this anything to do with microcontrollers and the rise of arduino?

definition (5, Informative)

mapkinase (958129) | about 2 years ago | (#42508041)

TIOBE programming community index is a measure of popularity of programming languages, calculated from number of search engine results for queries containing the name of the language. [1] The index covers searches in Google, Google Blogs, MSN, Yahoo!, Wikipedia and YouTube.

thx, bye.

Re:definition (2)

localman57 (1340533) | about 2 years ago | (#42508395)

This may be a leading edge indicator. C is sufficently simple that after your first few months you seldom need to consult documentation. I've got nearly 20 years experience, and I seldom or never have to google how to achieve something in C. Algorithms, maybe, but not C syntax. As opposed to very heavy library based languages, such as C# .Net, where I'm constantly googling, because I typically assume there's already a library that does "that" for me, whatever "that" happens to be.

Re:definition (1, Informative)

Anonymous Coward | about 2 years ago | (#42508469)

So what this really means is that coding in C requires more searches than Java in order to remember how to use the language.

Re:definition (1)

erice (13380) | about 2 years ago | (#42508475)

TIOBE programming community index is a measure of popularity of programming languages, calculated from number of search engine results for queries containing the name of the language. [1] The index covers searches in Google, Google Blogs, MSN, Yahoo!, Wikipedia and YouTube.

So it isn't really about usage then.

Bash gets a lot of hits because it is a popular shell, not because so many people want to program in it.

C gets some lift because of so many C-like languages and C bindings used by people are not necessarily programming in C.

Re:definition (0)

Anonymous Coward | about 2 years ago | (#42508651)

Okay, so all this means is that C is resurging and interest in it is growing faster than interest in Java. That doesn't mean that Java's usage in terms of number of systems and developers is not still dominant.

Re:definition (1)

SirGarlon (845873) | about 2 years ago | (#42508773)

The index covers searches in Google, Google Blogs, MSN, Yahoo!, Wikipedia and YouTube.

So its definition of "popularity" is: "I'm trying to use this language, but I don't know how." This may say more about the number of C programs whose original authors have left the field, than the number of new C programs being written.

Oh say can you C? (0)

Anonymous Coward | about 2 years ago | (#42508045)

When I first encountered C, back when I was 14 and I preferred assembly language, I could not see the point. But as I moved beyond simple programs I quickly got it and I've been a "native speaker" ever since.

What a load (0)

Anonymous Coward | about 2 years ago | (#42508111)

http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm

This is a measure of search popularity of a single term. Hardly a definitive comparison of the state of languages.

Using the TIOBE methodology (5, Funny)

notknown86 (1190215) | about 2 years ago | (#42508233)

Using the TIOBE methodology, I deduce that the following activities are more popular that C Programming:

- Abduction by alien
- Going to prison
- Dying

Re:Using the TIOBE methodology (1)

localman57 (1340533) | about 2 years ago | (#42508411)

Using the TIOBE methodology, I deduce that the following activities are more popular that C Programming: - Abduction by alien - Going to prison - Dying

Yeah, I program in C a lot, and that sounds about right.

Re:Using the TIOBE methodology (3, Funny)

Nemyst (1383049) | about 2 years ago | (#42508457)

Well hey, dying is an activity practised at least once by the entire population of this planet.

Re:Using the TIOBE methodology (1)

dragonquest (1003473) | about 2 years ago | (#42508973)

And yet they procrastinate to no end about it.

D still below top 20 (0)

Anonymous Coward | about 2 years ago | (#42508291)

I can't believe D (http://dlang.org) is still below the top 20, even below Ada or Bash.. I really expected it to rise up.
According to
            http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
it is number 35.

Not surprising (3, Informative)

Murdoch5 (1563847) | about 2 years ago | (#42508313)

Is anyone really surprised by this? C is the best overall language, it spans every platform I can think of, it's the most standarized language and above all of that simple to learn and use. C is the language for real programmers, if you can't do it in C then you just can't program.

Xbox Live Indie Games and several others (1)

tepples (727027) | about 2 years ago | (#42508769)

C is the best overall language, it spans every platform I can think of

I can think of several platforms that C doesn't easily span. Xbox Live Indie Games and Windows Phone 7 only support C#, the Web only supports JavaScript, Flash Player only supports ActionScript and other languages that compile to ActionScript bytecode, and the Java applet environment and MIDP phones only support Java and other languages that compile to JVM bytecode. Or are you counting Emscripten as "C support"?

TIOBE algorithms (4, Insightful)

sl4shd0rk (755837) | about 2 years ago | (#42508491)

Clearly C is more popular as more people complain about it sucking.

C sucks -- About 321,000,000 results
bash sucks -- About 7,500,000 results
Java sucks -- About 5,810,000 results
c++ sucks -- About 898,000 results
objective c sucks -- About 293,000 results

Re:TIOBE algorithms (2, Informative)

Anonymous Coward | about 2 years ago | (#42508841)

Jets suck -- About 4,770,000 results
Yankees suck -- About 1,430,000 results
Knicks suck -- About 1,370,000 results
Krypton sucks -- About 166,000 results

C Just works (4, Insightful)

EmperorOfCanada (1332175) | about 2 years ago | (#42508497)

The bulk of my recent programming has been in Objective C but once I leave API calls my code quickly becomes pretty classic C with elements of C++. Yes I love the simplicity of a foreach type structure where it is brain dead to iterate through some set/hash/array of objects with little or no thought about bounds but once I start to really hammer the data hard I often find my code "degenerating" into c. Instead of a class I will create a structure. Instead of vectors I use arrays. I find the debugging far simpler and the attitude to what can be done changes. In fairly raw C I start having thoughts like: I'll mathematically process 500,000 structures every time someone moves their mouse and then I literally giggle when it not only works but works smoothly. What you largely have in C is if the machine is theoretically able to do it then you can program it. Good mathematics can often optimize things significantly but sometimes you just have brute manipulations that need to be fast.

But on a whole other level my claim with most higher level languages ranging from PHP to .net to Java is that they often make the first 90% of a large project go so very quickly. You seem to jump from prototype to 90% in a flash; but then you hit some roadblocks. The garbage collection is kicking in during animations causing stuttering and the library you are using won't let you entirely stop garbage collection. Or memory isn't being freed quickly enough resulting in the requirement that all the users' machines be upgraded to 16Gb. Then that remaining 10% ends up taking twice as long as the first 90%. Whereas I find with C (or C++) you start slow and end slow but the first 90% actually takes 90% of the final time.

But where C is a project killer is the whole weakest link in the chain thing. If you have a large project with many programmers as is typically found in a large business system working on many different modules that basically work on the same data set that a safer language like Java is far far better. I am pretty sure that if the business programmers working on projects that I have seen were to have used C instead of Java that those server systems would crash more than once a minute. You can still program pretty badly in Java but a decent programmer shouldn't blow the system apart. Whereas a decent C programmer might not be good enough for a large project.

So the story is not if C is better than say Java but what is the best language for any given problem set. I find broad systems, like those found in the typical business, with many programmers of various skill levels are idea for Java. But for deep system where you layer more and more difficulty on a single problem such as real-time robotic vision that C or C++ are far superior. A simple way to figure out what is the best language is to not compare strengths and weaknesses generally but how they apply to the problem at hand. In a large business system where horsepower is plentiful then garbage collection is good and pointers are only going to be a liability. But if you are pushing up to the limits of what the machine can do such as a game then a crazy pointer dance might be the only possible solution and thus demand C or even ASM.

Lastly do you want your OS programmed in Java?

Apples to apples and peaches to peaches (0, Redundant)

Anonymous Coward | about 2 years ago | (#42508569)

One cannot compare C to Javascript because they serve very different purposes. That list should look more like this:

Category A ("heavy duty"):

    First place: C and Java, with 25% each.
    Second place: Objective C and C++, with 15% each.
    Third place: C# and Visual Basic (incl .NET), with 7% each.
    Fourth place: Pascal and Delphi, with less than 3% each.

Category B ("light weight"):

    First place: PHP and Python, with 35% each.
    Second place: Perl, with 15%.
    Third place: Javascript and Ruby, with 7% each.

Languages such as Lisp, Matlab, Ada, and Lua are mostly used in specific fields/environments and probably should not be included on this list.

Re:Apples to apples and peaches to peaches (1)

dingen (958134) | about 2 years ago | (#42508797)

Javascript is a special case because it is used almost exclusively for writing front-end code for websites. Not because front-end web developers love Javascript, but because browsers do not support any other language.

So in one specific field (front-end web applications), Javascript is king because developers have no other choice. But next to nobody uses the language for anything else than that. It could be used for other stuff (node.js etc.), but that's not significant by a long shot.

Parallelism (1)

loufoque (1400831) | about 2 years ago | (#42508697)

C and C++ are still the best languages for parallelism, in particular vectorization and shared memory systems.

C used in your favorite programming language (2)

amejia1 (2675461) | about 2 years ago | (#42508851)

It should be noted that for most programming languages, it is highly likely that the compiler and other code used for most if not all programming languages are written in C. If you're using Java, you're using C code. If you're using Perl, you're using C code. If you're using Python, you're using C code. And so on.

As predicted (2)

interval1066 (668936) | about 2 years ago | (#42508981)

C haters: told ya so.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?