Forgot your password?
Java Programming

C Programming Language Back At Number 1 535

Posted by kdawson
from the doin'-what-we-always-did dept.
derrida writes "After more than 4 years C is back at position number 1 in the TIOBE index. The scores for C have been pretty constant through the years, varying between the 15% and 20% market share for almost 10 years. So the main reason for C's number 1 position is not C's uprise, but the decline of its competitor Java. Java has a long-term downward trend. It is losing ground to other languages running on the JVM. An example of such a language is JavaFX, which is now approaching the top 20."
This discussion has been archived. No new comments can be posted.

C Programming Language Back At Number 1

Comments Filter:
  • nr.11 (Score:1, Interesting)

    by Anonymous Coward on Tuesday April 06, 2010 @11:20PM (#31757432)

    The news is maybe that objective C are really gaining momentum and are soon on the top 10. With the Ipad coming out and strong mac sales it will continue to become more important.

  • Java (Score:5, Interesting)

    by Andy Smith (55346) on Tuesday April 06, 2010 @11:32PM (#31757516) Homepage

    I expect Java to gain ground again as developers create apps for Android phones.

    Although the bare-bones Nexus One hasn't sold in huge numbers, HTC have already produced several superb Android-based alternatives, such as the Legend and the Desire. If/when Android becomes the commonplace operating system in the smartphone market, this will lead to a rise in Java development.

    In fact, to join in with the recent Apple-bashing (which I whole-heartedly agree with), I'd suggest that mobile app development will move away from the iPhone, in favour of Android phones. When you are investing time and money in app development, there is simply more certainty in developing apps that will live or die on their merits, as opposed to Apple's 'approval' process.

    It is now over 2 weeks since Opera Mini was submitted to Apple for approval: []

  • by X0563511 (793323) on Tuesday April 06, 2010 @11:35PM (#31757552) Homepage Journal

    I'm also curious as to what the point is.

    Assuming the numbers are accurate (a big assumption here) all this turns out to be is a big popularity contest. Those have their uses, but none of them are to identify which of something is better. Confounding this further is the very idea of one language being better than another. ( ok, except VB :P ) The simple truth is that programming languages normally come about to fill a niche. Naturally, they are better in that niche.

    In the context of the "web" would you argue C or PHP is better? PHP I would wager (excepting truly specific instances, and this whole thing is about generalizing anyways, so that doesn't apply). But you most certainly wouldn't think the same when it comes to systems programming.

    Wake me up (so I can wake myself from the nightmare) when replacements for tools such as bash and fdisk are written in PHP.

    I pick on PHP, only because it's a good example of this. While I do personally dislike, detest, and disrespect it - that's not my point here.

  • Re:Why C? (Score:5, Interesting)

    by binarylarry (1338699) on Tuesday April 06, 2010 @11:42PM (#31757588)

    C and Java are for different things.

    C is a great systems language, it lets you get great performance, interact directly with the hardware and still stay fairly portable. Java is a great applications language, it lets you get work done quickly, runs very fast and is extremely portable and secure (which is getting more important everyday as Microsoft's grip on the desktop industry is on a slow but seriously downward trend).

    It makes sense that these two would be at the top, popularity wise.

  • by jrumney (197329) on Tuesday April 06, 2010 @11:50PM (#31757632) Homepage

    Speaking of which, C now stands for Citigroup according to Google. Before, typing C in google would just get you a web page concerning the C programming language.

    This symbolizes a shift in control at Google from the engineers to the beancounters. Doing evil will inevitably follow.

  • by MightyMartian (840721) on Wednesday April 07, 2010 @12:09AM (#31757742) Journal

    I think it's fair to say that, regardless of application or task, PHP is always the worst, unless the task is "programming language that dangerous retards can use". At least with languages like C, Java and even Python, there's a sufficient learning curve at the start that it scares precisely the kind of people who shouldn't be writing code.

  • by thoughtsatthemoment (1687848) on Wednesday April 07, 2010 @12:12AM (#31757756) Journal
    As a long time C++ programmer who recently went back to C, I can tell you that C feels like a different language if you use it with all the skills you acquired from other languages. As a language C is almost perfect. It's the libraries that makes all the difference.
  • C-whatever (Score:5, Interesting)

    by NicknamesAreStupid (1040118) on Wednesday April 07, 2010 @12:18AM (#31757808)
    C has become the English of computer languages. There are so many derivatives - C++, C#, 'Objective-C', Java, and all those other web scripting languages like Actionscript and PHP -- that I can't even keep track of them all. Their syntax are so similar, yet their libraries are from different planets. As for K&R's C, it is probably like the Queen's English - rarely spoken well and often slurred.

    Remember when languages really looked different - COBOL, PL/1, Fortran, Lisp? I date myself.
  • Re:Why C? (Score:5, Interesting)

    by binarylarry (1338699) on Wednesday April 07, 2010 @12:25AM (#31757858)

    That was partially my point. Java's security track record for applications is amazing. Look at the current generation game consoles, the only console that has yet to be exploited for piracy in a practical fashion has a Java based security framework.

    Java also powers most of the major internet applications available today.

    But Java isn't great at everything, C fits in places Java doesn't.

  • by Gr8Apes (679165) on Wednesday April 07, 2010 @12:31AM (#31757894)

    That'd be the #1 reason on the long list of reasons why Spring sucks. IoC. It's main raison d'être, from the initial release, was to allow the injection of test code, ie, mocks. Why on earth would you ever have "test code" in your production code? Much better to have a test framework instead. Harder to code initially, yes. Less invasively? Immeasurably.

    Not only that, it's merely a factory method call that can generally be coded in 4 or 5 lines and be type checked during compilation instead of runtime (a la Spring).

    Care to try again and with an actual reason this time?

  • Re:More mention of C (Score:5, Interesting)

    by Animats (122034) on Wednesday April 07, 2010 @12:44AM (#31757976) Homepage

    K&R's book on C is wordy. The true classic is the Revised Report on the Algorithmic Language ALGOL-60. [] In its original typeset form, it is 19 pages.

    Languages which need 1000-page books are badly designed.

  • by abigor (540274) on Wednesday April 07, 2010 @12:54AM (#31758034)

    Test code doesn't end up in production, so I have no idea what you're talking about. Spring is normally used in conjunction with a test framework like JUnit - in fact, Spring contains explicit test harness support (@ExpectedException, JNDI stuff, and so forth).

    Spring is good at lots of stuff - annotated transactions, annotated MVC (in Spring 3), etc. etc. IoC is very convenient also, particularly with auto-scanning.

    That said, I'm not some huge fan of Java the language. But Java the "ecosystem" (or whatever you want to call it) is pretty amazing.

    Spring for Python is interesting too.

  • by AndrewBC (1675992) on Wednesday April 07, 2010 @01:04AM (#31758076) Homepage
    You wouldn't be able to either if you were a super-calloused fragile mystic plagued with halitosis...
  • Robots only use C (Score:4, Interesting)

    by societyofrobots (1396043) on Wednesday April 07, 2010 @01:15AM (#31758126)

    Robot programming has become very big lately, and the overwhelming number of microcontrollers out there only use C/C++ (well, and Assembly, but that doesn't count).

  • by Gr8Apes (679165) on Wednesday April 07, 2010 @01:30AM (#31758178)

    If the only reason you have the IoC code in your code is to facilitate testing, then the IoC code is test code.

    MVC (in Spring3)? Really? You mean MVC in Spring 1.x or Spring 2.x sucked? Say it isn't so! So now MVC in Spring 3 is the cat's meow? Excuse me while I take a pass.

    Spring's transactions are a massive headache when you need to alter or overload a specific operation. Yeah, it seems "cool" when a simple annotation will give you a "transaction", but later on, when you need to modify one bit of code somewhere in the stream or if you're really daring, have a transaction with rollbacks across multiple operations that weren't envisioned in the original design.... let's just agree to disagree and you can deal with all the crap that Spring heaps on you while you cut and paste code and debug it a week later when individual operations change due to changing requirements and I'll be at the bar sipping something cold and enjoying myself after an hour or two's work.

    You didn't even mention Spring Security (ie, Acegi) which was so horribly broken 1.5 years ago that it is completely unusable in anything resembling a commercial application. Why, you ask? (I just know that was on the tip of your tongue) Because Acegi as of the current release at that time uses a token held by a thread, and limited the ability of a token to be held to a single thread. In layman's terms - there's only a single lane on the highway, folks.

    I still stand by my statement of years ago: Spring is a solution in search of a problem and is a source of not so subtle bugs which most will only realize once they're in far too deep to easily pull out. It truly deserves a picture next to the kool-aid in the wikipedia story about project killers.

    I will agree that JUnit4 is pretty darn decent all by itself. Without Spring.

    And just in case you think I haven't worked with it - I've dealt with 4 separate large projects and analyzed the problems in various external codebases in 3 different companies that bought into the Spring kool-aid all the way back to before Spring 1.0. I shamefully admit I was even a proponent in the early days, before I actually used it in a big project. Now Spring has joined Apache Commons in the list of libraries to remove asap.

  • Re:C-whatever (Score:5, Interesting)

    by FlyingGuy (989135) <> on Wednesday April 07, 2010 @01:55AM (#31758248)

    That's a good comparison. Like the queens english, C is becoming outdated - people want to do more by using the 100,000 lines of someone else's library routines. I think it's the equivalent of the evolution of smileys and lolz :)

    There, fixed that for ya.

    Read your insurance policy sometime. No I mean really read it. The reason for all that arcane language is because for the last 500 years it has been picked over, argued about, refined and re-worked until everyone agreed what the definition of "is" really is.

    The problems with most of the "quote" modern languages is that know one agrees on one object model. Everyone does theirs differently, but guess what, they are all written in two languages and those are C and Assembler.

    Pick just about ANY language out there, go ahead pick any one of them. It was written in C or C and Assembler. Even the ones that now can compile themselves the main language used to build the compiler that can compile itself was, wait for it... C.

    While C may indeed be the "Queens English" it is still the Queens English and is the root of all other dialects and will remain so.

  • Re:Java (Score:1, Interesting)

    by Anonymous Coward on Wednesday April 07, 2010 @02:27AM (#31758382)

    Java? Andriod? I wish it ran Java but it aint so. To be called Java it would seem that it must first have the ability to run valid java bytecode which it does not.

  • by cgomezr (1074699) on Wednesday April 07, 2010 @03:04AM (#31758546)

    Google can show different search results in different locations, probably due to its distributed nature and not all servers containing the same version of the data.

    If I click the GP's link, I also get Citigroup as the first hit.

  • Re:Java (Score:5, Interesting)

    by Niten (201835) on Wednesday April 07, 2010 @03:10AM (#31758568)

    I expect Android to be where the lion's share of Java development happens in the next few years

    This is a joke, right? You must have no sense of how broadly Java is used in the industry. Even if Android were to surpass the iPhone in popularity, all the Android apps put together would be just a drop in the bucket next to the massive, active Java codebase in other sectors.

    You're onto something with regard to JavaScript's importance, on the other hand, but I'd hardly call that "regrettable". It has its quirks (coerced concatenation with the + operator, some math gotchas), but on the whole it's an excellent programming language, as dynamic imperative languages go. I'm surprised at the extent to which the language is still misunderstood... think of it as Lisp in C's clothing [].

  • by Malc (1751) on Wednesday April 07, 2010 @03:22AM (#31758608)

    They have Java ranked as the number one language in 2000. Maybe the number language for discussion, but I remember there being a relatively tiny number of jobs... the majority were C or C++, and I would say that C++ was the main language for anything started in the previous five years. Java was barely out the gates in 2000, four years after all the (over-)hype about applets in the browser (a Pentium 75 for instance could barely run a Java applet in Netscape). Java was mostly an academic language that didn't feature in the real world.

    So no, these rankings are incredible shite if you want to use them as a basis for directing your career.

  • by Anonymous Coward on Wednesday April 07, 2010 @03:24AM (#31758616)

    Meh. When I want to show people how bad perl is, I just open up a text editor. Mash my face against the keyboard a couple of times. Then point out that the resulting gibberish is valid perl.

    When I want to show people how bad perl is, I just open up a text editor. Mash my face against the keyboard a couple of times. Then point out that the resulting gibberish is valid perl. And solves their programming problem better than the 2,000 lines of C code they've been working on.

  • by Teun (17872) on Wednesday April 07, 2010 @04:33AM (#31758842) Homepage
    How about the results being linked to the OS/client system that does the query?

    Like MS users get financial help, *nix users get technical information.

  • Re:C-whatever (Score:3, Interesting)

    by Philip_the_physicist (1536015) on Wednesday April 07, 2010 @05:52AM (#31759106)

    I have heard C++ compared to English, both are the best language for everything, but neither are especially good languages for anything. You can almost always find a better language for any particular task, but it is at least tolerable to use for almost anything, so people use it. C is like one of the more formal varieties of English, like what Sir Ernest Gowers calls Madarin Prose: elegant when used properly, terrible and incomprehensible when used badly (which it often is), somewhat antiquated, and often over-used by its supporters.

    Common Lisp is like Latin, elegant, powerful, and expressive, but complex and hard to wrap one's head around, so it's rarely used for any "real work". Scheme is like (ancient) Greek, actually using it is generally regarded as at least slightly impressive, but its too unfamiliar for most people to learn.

    Somewhere I saw a long list of languages analysed like that, unfortunately I can't find it now, which is a shame,a s some of teh comparisons were rather funny.

  • by Rockoon (1252108) on Wednesday April 07, 2010 @07:14AM (#31759424)
    Delphi, as with Pascal before it, is strong tho. Really.

    The language just doesnt dominate a domain. C dominates on the low level, C and Java dominate embedded devices, C++ dominates application space, Java dominates the enterprise. VBA dominates the accounting department.

    Delphi doesnt dominate anything, but its got its hands in all of it.
  • by dkleinsc (563838) on Wednesday April 07, 2010 @08:45AM (#31759924) Homepage

    Have you ever used Python? I get the distinct impression that you haven't. Especially since you describe the syntax incorrectly.

    It's very simple: In any C style, indentation is used to show quickly what is and isn't in a particular code block. Various holy wars were started over where the curly braces go, but the concept of indenting code blocks was pretty consistent. So with Python, you skip the curly braces and just use the indentation. It's not completely idiot-proof (no language is), but it works as well as anything else that's been tried, and I can assure you that I've yet to run into a bug caused by somebody not ending a code block properly.

    Oh, and it's not just a C wrapper: It's list manipulation and lambda features make it sometimes downright Lisp-ish at times.

  • by Anonymous Coward on Wednesday April 07, 2010 @09:26AM (#31760274)

    You've just witness the power of Search History. If you have it enabled (or didn't bother to turn it off) the order will depend on what you have searched before. For me Citigroup is way down there, first thing to come up is C programming, followed by wikipedia articles.

  • by Civil_Disobedient (261825) on Wednesday April 07, 2010 @09:38AM (#31760396)

    For the web-tier, absolutely nothing beats the Stripes [] Framework.

  • by Tablizer (95088) on Wednesday April 07, 2010 @11:33AM (#31761932) Homepage Journal

    Web is a done deal

    No it's not. Companies want desktop-like rich GUI's, and getting web apps to do that and keep them working for browser version N+1 is a pain in the arse. We need some real GUI standards.

  • Re:C-whatever (Score:3, Interesting)

    by shutdown -p now (807394) on Wednesday April 07, 2010 @01:26PM (#31763716) Journal

    the functions of the standard library (and yes, the standard library is part of the language standard) have got cryptic names (because C programmers are too lazy to type, same problem with UNIX shell commands)

    UNIX shell commands are short for historical reasons. They were originally designed to be used over remote terminal connections, at whopping speeds of 300 bauds. At that point, saving a character or two actually has a noticeable effect on speed.

    C function names are also short for historical reasons. Specifically, in K&R C (and, if I recall correctly, also in ANSI C89 / ISO C90), the implementation was only required to treat the first 6 characters of a function or variable name declared in another compilation unit as significant. Or, to put it in real-world terms, linkers were allowed to only store and use the first 6 symbols of any exported name, and discard the rest. Which is why all standard C functions are unique in the first 6 characters, and also why most of them are no longer than 6 characters in the first place.

    lack of sets

    You mean, Pascal-style? IIRC, those were rather useless, since they were implemented as bit flags, and word size was completely implementation-defined. So you never knew if your set of a 17-value enum would work on a different Pascal compiler or not.

    If you mean Python-style, then it's a construct way too high-level for a language such as C (same as auto-reallocating dynamic arrays, or associative arrays).

    undefined behaviour (a computer language allowing female logic is just what the world needs)

    You can't have an efficient implementation of a low-level systems programming language without proclaiming undefined behavior at some point. For example, strict order of evaluation inhibits many optimizations. If language has pointers, then to avoid undefined behavior you need fat pointers (which know their bounds), which are significantly slower. And so on.

    At the same time, most languages of that period, even more high-level, had U.B. clauses. Pascal had U.B. Common Lisp has plenty of U.B.

If you're not part of the solution, you're part of the precipitate.