Slashdot Mirror


C Programming Language Back At Number 1

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

535 comments

  1. That's great and all... by Thorrablot · · Score: 5, Insightful

    but shouldn't it really be at number 0?

    --
    Any sufficiently advanced technology is indistinguishable from a rigged demo. -- James Klass
    1. Re:That's great and all... by RuBLed · · Score: 0, Offtopic

      what a sensational title!.. it's like the end of the world flashing in my feed...

    2. Re:That's great and all... by athlon02 · · Score: 1

      Nah, that's the NULL position. That's where programming languages go to die.

    3. Re:That's great and all... by martin-boundary · · Score: 2, Funny

      Nah, that's the NULL position. That's where programming languages go to die.

      And signals raise from the dead.

    4. Re:That's great and all... by Imagix · · Score: 1

      Techincally it's only convertable to NULL..... no guarantees how it's actually represented in memory.

    5. Re:That's great and all... by noidentity · · Score: 1

      That's great and all but shouldn't it really be at number 0?

      The ranking program isn't written in C.

    6. Re:That's great and all... by Anonymous Coward · · Score: 0

      Whatever it is in memory, in C you will always see the 0. It's part of compiler's job.

      And NULL is nothing more than #define NULL 0. (Hint: in the C there are two 0.)

      Memorized that well after seing once explanation how NULL was implemented on the arch which had 3 pointer types of different sizes. IIRC they were like (short unsigned int)-2, (unsigned int)-2 and (uint64_t)-2. Yet in C you still use 0, compiler correctly recognizes pointer type from the context and substitutes it with whatever the arch requires in the case.

    7. Re:That's great and all... by Anonymous Coward · · Score: 0

      NULL is nothing more than #define NULL 0

      No, it isn't.

      $ cat nul.c
      #include <stddef.h>

      int main(void){
      int n = NULL;
      return n;
      }

      $ gcc -Wall nul.c -o nul
      nul.c: In function 'main':
      nul.c:4: warning: initialization makes integer from pointer without a cast

    8. Re:That's great and all... by Jurily · · Score: 1

      It's (void *)0 in C, and 0 or 0L in C++. Also, there were architectures way back where memory address 0 wasn't a guaranteed segfault. It had a different value there.

    9. Re:That's great and all... by Anonymous Coward · · Score: 0

      Not if you are a Cobol programmer.

    10. Re:That's great and all... by rjstanford · · Score: 1

      It's (void *)0 in C, and 0 or 0L in C++. Also, there were architectures way back where memory address 0 wasn't a guaranteed segfault. It had a different value there.

      0 had a different value? Like, uh, 7? Wow... that must have made life complicated.

      --
      You're special forces then? That's great! I just love your olympics!
    11. Re:That's great and all... by Anonymous Coward · · Score: 0

      Exactly my point. Assuming that NULL has the same scaler value as integer 0 may cause nasal demons.

    12. Re:That's great and all... by thetoadwarrior · · Score: 1

      That would be untrue as zero and null are generally two different values completely.

    13. Re:That's great and all... by jgrahn · · Score: 1

      It's (void *)0 in C, and 0 or 0L in C++.

      Just 0, or "nullptr" or whatever the new C++0x keyword is. I suppose 0L might be guaranteed to translate down to 0, but using it instead of 0 has no benefit; it just looks funny.

      Also, there were architectures way back where memory address 0 wasn't a guaranteed segfault. It had a different value there.

      I think you are mixing up two different things. The real, MC680x0, Commodore-Amiga had a writable address 0, and yet NULL was that address. The C language never guaranteed a crash when you dereferenced a NULL pointer.

    14. Re:That's great and all... by Jurily · · Score: 1

      I suppose 0L might be guaranteed to translate down to 0, but using it instead of 0 has no benefit; it just looks funny.

      Yes, it does.

      The C language never guaranteed a crash when you dereferenced a NULL pointer.

      That might be because it's not part of the C language. However, the whole point of introducing the NULL macro was to provide a pointer that is always invalid.

    15. Re:That's great and all... by Anonymous Coward · · Score: 0

      I ask you now! Is that logical?

    16. Re:That's great and all... by Anonymous Coward · · Score: 0

      If that's true how come they made a movie titled 'Year 1"?

    17. Re:That's great and all... by Dushnock · · Score: 1

      Nah, that's the NULL position. That's where programming languages go to die.

      Programming languages never die, they just decompile. (hint: http://www.bored.com/agehumor/)

      --
      "Soylent Green is people." (1973)
  2. nr.11 by Anonymous Coward · · Score: 1, Interesting

    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.

    1. Re:nr.11 by Macrat · · Score: 1

      But the Windows/Android fanbois keep saying developers are abandoning the Apple platforms.

    2. Re:nr.11 by Anonymous Coward · · Score: 0

      Well, it's only around 2.5%, with a 2.5% rise, hardly meteoric. If you consider also that the bottom languages are separated by tenths or hundredths of a percentage point, I think that it's slightly misleading (a jump of 30 places on the back of a 2.5% increase seems to indicate that all languages pretty close in that usage range)

    3. Re:nr.11 by Gerzel · · Score: 1

      They said that when I got into computers nearly almost two decades ago.

    4. Re:nr.11 by jcr · · Score: 2, Funny

      Yeah, they do keep saying that. I'm also sure that they can point to dozens of people who stopped iPad development and switched to Android. Somehow, the iPhone and iPad will have to get by with the tens of thousands who remain...

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    5. Re:nr.11 by TheCowSaysMooNotBoo · · Score: 1

      well, maybe they are. it's just that the consumers aren't following :p

    6. Re:nr.11 by Anonymous Coward · · Score: 0

      So then perhaps maybe they were wrong.

    7. Re:nr.11 by pspahn · · Score: 2, Funny

      Well, you're like, entitled to your own opinion, man.

      --
      Someone flopped a steamer in the gene pool.
    8. Re:nr.11 by Carewolf · · Score: 1

      I could be wrong, but I think that was a rise of 2.4 percent-point not a rise of 2.4%. This means it went from 0.1% to 2.5%

    9. Re:nr.11 by 3dr · · Score: 1

      I've been doing Mac (cocoa) development for a few years now, but in the beginning I didn't know what to think of Obj-C. I like it because of it's C basis, and it has enough dynamic features to make it flexible at run time.

    10. Re:nr.11 by marcosdumay · · Score: 1

      Well, if you read the summary, it says that the news is that java is losing momentum for the rest of the JVM languages.

    11. Re:nr.11 by Anonymous Coward · · Score: 0

      As Carewolf said, it's a change from almost 0% to more than 2%. Did you even follow the link to the specific info on Objective-C?

  3. TIOBE methodology is so flawed it's pointless by shutdown+-p+now · · Score: 5, Insightful

    Go ahead, read it for yourself, and tell me how this is supposed to give any meaningful results. They aggregate together things of all kind, to the point where an aggregate doesn't make any sense at all (I mean, hits such as "programming in PHP sucks" or "you must be an idiot to write production code in VB" would count as +1 for PHP and VB, correspondingly!). You can have one language having many job postings, another having many books, and yet another having many basic "how to?" questions and dumbed-down tutorials, and they'd all get the same rating.

    In any case, most certainly, at these numbers (Java 18.051%, C 18.058%), speaking of one overtaking another is completely pointless, given the margin of error.

    Anyway, if you want to know how popular a particular language/technology is, the simplest - and much more accurate! - way of doing so is to check any popular job search web site. Just keep in mind that preferences vary in different regions, so if you are making career choices, stick to local/national postings, and if you want to see an overall worldwide trend, you have to aggregate data from enough sources.

    1. Re:TIOBE methodology is so flawed it's pointless by gzipped_tar · · Score: 5, Insightful

      > I mean, hits such as "programming in PHP sucks" or
      > "you must be an idiot to write production code in VB"
      > would count as +1 for PHP and VB, correspondingly!

      This is the true spirit of our times. Any publicity is good publicity.

      --
      Colorless green Cthulhu waits dreaming furiously.
    2. Re:TIOBE methodology is so flawed it's pointless by stephanruby · · Score: 0

      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.

    3. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      > much more accurate! ...
      > check any popular job search web site

      Job adverts are for empty desks. Do you really measure the number of programmers by counting the empty desks ?

    4. Re:TIOBE methodology is so flawed it's pointless by MaggieL · · Score: 1

      Agree. The methodology is laughable.

      I think searches that expect to see the word "Java" in content about Java may be falling because in a lot of contexts it's assumed you're talking about Java, it's not necessary to mention it. And if Java's being displaced by other JVM-based languages, why aren't they searching for Scala?

      I'd take a look at the products these guys are selling, too. :-)

      --
      -=Maggie Leber=-
    5. Re:TIOBE methodology is so flawed it's pointless by jrumney · · Score: 2, Interesting

      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.

    6. Re:TIOBE methodology is so flawed it's pointless by Alex+Belits · · Score: 3, Informative

      The use of ">" as a quote marker in email and Usenet news is at least 30 years old.
      Displaying lines quoted with ">" in a color that differs from the rest of the message is at least 20 years old.

      4chan and its "> Implying..." greentext has nothing on those traditions.

      --
      Contrary to the popular belief, there indeed is no God.
    7. Re:TIOBE methodology is so flawed it's pointless by gandhi_2 · · Score: 1

      bitch, BBS post replies were done like that...don't gimme that 4chan bullshit.

      WWIV was written in C. Holler!

    8. Re:TIOBE methodology is so flawed it's pointless by Vellmont · · Score: 5, Insightful

      What, you don't think Google Go, a language even Google doesn't use in production is just a hair less popular than PL/SQL, the programming language used in an Oracle DB for the last 18 years?

      Shocking!

      --
      AccountKiller
    9. Re:TIOBE methodology is so flawed it's pointless by MrMista_B · · Score: 5, Funny

      > This is the true spirit of our times. Any publicity is good publicity.

      People falsely accused of pedophilia would beg to differ.

    10. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      Gandhi can't take a joke!

    11. Re:TIOBE methodology is so flawed it's pointless by gzipped_tar · · Score: 1

      I've always suspected that Google Go is just some Rob Pike & ken "fan service".

      Never underestimate the power of fanboys.

      --
      Colorless green Cthulhu waits dreaming furiously.
    12. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      This might be a decent interview question for companies that subscribe to the "sit back and watch the candidate think out loud" philosophy of interviewing.

      What are they trying to measure? Seems that they are attempting to find the relative usage of programming language (satisfying certain conditions specified in the article) by professional developers over a typical week or month. Since this distribution cannot be precisely determined, some proxy measurements have been identified. What useful measurements can you (the interview candidate) think of? People who program do google searches for language and API help, they buy or download compilers and other language-specific tools, they check in source code to open source projects, they search for jobs keyworded by programming language on job sites....

      Hey, why not just ask a community of software developers *not* what languages they are proficient in (which tends to encourage one-upsmanship and esoterica), but what languages they programmed in over the past month, giving estimated percentages of time spent in each? But geez, *wrings hands* I guess it would be pretty hard to find a community of broad-based software developers who have shown willingness to answer random polls about use of technology. Sigh.

    13. Re:TIOBE methodology is so flawed it's pointless by pushing-robot · · Score: 2, Insightful

      Then again, the first link on the Google search results takes you to Yahoo! Finance. Apparently the bean counters are both evil and anarchists.

      --
      How can I believe you when you tell me what I don't want to hear?
    14. Re:TIOBE methodology is so flawed it's pointless by Trepidity · · Score: 5, Funny

      Huh, I could've sworn Java was over 18 by now. Oops.

    15. Re:TIOBE methodology is so flawed it's pointless by AndrewBC · · Score: 3, Interesting

      You wouldn't be able to either if you were a super-calloused fragile mystic plagued with halitosis...

    16. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      Are you accusing VB developers of pedophilia?

    17. Re:TIOBE methodology is so flawed it's pointless by TapeCutter · · Score: 3, Funny

      Speaking of which, C now stands for Citigroup according to Google.

      Huh? Your search shows "C programming language" as the first hit. "C is for cookie" comes before the citigroup hits.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    18. Re:TIOBE methodology is so flawed it's pointless by shaitand · · Score: 1

      "Anyway, if you want to know how popular a particular language/technology is, the simplest - and much more accurate! - way of doing so is to check any popular job search web site."

      No that is a good way to determine what languages are more popular in business or are more likely to land you a job.

      How many people are discussing a language (good or bad) is a pretty reasonable indicator of total popularity.

    19. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      Gandhi can't take a joke!

      Because Gandhi was an idiot.

    20. Re:TIOBE methodology is so flawed it's pointless by Michael+Kristopeit · · Score: 1

      Anyway, if you want to know how popular a particular language/technology is, the simplest - and much more accurate! - way of doing so is to check any popular job search web site. Just keep in mind that preferences vary in different regions, so if you are making career choices, stick to local/national postings, and if you want to see an overall worldwide trend, you have to aggregate data from enough sources.

      how is talking about those numbers any less completely pointless? there could be more jobs for a language because past marketing caused project managers to make bad decisions and systems were built using bad languages that for whatever reason make switching the system to be implemented in another language platform nearly impossible.

      i'd almost always expect the least efficient language to have the most available jobs, because, by definition, they require more resources to get the same job done which ends up leading to more people required to get the same job done.

    21. Re:TIOBE methodology is so flawed it's pointless by someone1234 · · Score: 2, Informative

      No, they are more likely the abused.

      --
      Patents Drive Free Software as Hurricanes Drive Construction Industry
    22. Re:TIOBE methodology is so flawed it's pointless by shutdown+-p+now · · Score: 1

      My first thought is to put up a poll on a website frequented by diverse crowd of programmers for job-related activities. StackOverflow might be one, though I'm afraid that it is somewhat biased towards Microsoft languages & technologies.

    23. Re:TIOBE methodology is so flawed it's pointless by shutdown+-p+now · · Score: 1

      Well, judging by TIOBE index, many people are discussing Go (which is not surprising) - but how popular it in fact is for doing anything useful?

    24. Re:TIOBE methodology is so flawed it's pointless by cgomezr · · Score: 2, Interesting

      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.

    25. Re:TIOBE methodology is so flawed it's pointless by Xest · · Score: 2, Insightful

      Yep, just did my daily job check, there's still around 20 new Java, 35 new .NET jobs and no C jobs whatsoever, it looks like C hasn't in fact made a massive leap overnight since I checked yesterday, and TIOBE is in fact still completely useless as you say.

    26. Re:TIOBE methodology is so flawed it's pointless by cgomezr · · Score: 1

      Slashdot might be one too, although I suspect the results could be somewhat biased towards CNPL (Cowboy Neal Programming Language).

    27. Re:TIOBE methodology is so flawed it's pointless by Darinbob · · Score: 1

      Tiobe? Who other than the poster ever heard of them before?

    28. Re:TIOBE methodology is so flawed it's pointless by fyngyrz · · Score: 2, Funny

      Why, are they Catholic?

      --
      I've fallen off your lawn, and I can't get up.
    29. Re:TIOBE methodology is so flawed it's pointless by Bromskloss · · Score: 1

      People falsely accused of pedophilia would beg to differ.

      The rightly accused as well, I'd guess.

      (Will our posts here be interpreted as a rise in pedophilia? Are we both now guilty by association for posting them?)

      --
      Swedish plasma phys. PhD student; MSc EE; knows maths, programming, electronics; finance interest; seeks opportunities
    30. Re:TIOBE methodology is so flawed it's pointless by Teun · · Score: 2, Interesting
      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.

      --
      "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
    31. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      To be fair, 4chan uses '>' as a quote marker as well. The whole "> implying [statement]" business is just a special case of the replying poster using the quote feature to denote a rhetorically charged paraphrase.

    32. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      The League of Immodest Celebrities (President: Paris Hilton, Chairman: Lady Gaga, members: casts of various reality TV shows) would beg to differ.

    33. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      google results are different depending on a number of factors: earlier searches you've done (even if you're not logged in to your google account at the time), location etc. What you see as #1 is not necessarily what everyone else sees as #1. I'm surprised how few people have noticed this.

    34. Re:TIOBE methodology is so flawed it's pointless by Chris+Mattern · · Score: 1

      Actually, it probably just reflects that "C" is Citi's New York Stock Exchange ticker symbol.

    35. Re:TIOBE methodology is so flawed it's pointless by Alex+Belits · · Score: 1

      It does, however for 30 years it was a massive violation of netiquette to place anything other than a verbatim quote after ">".

      Then this stupid "Fixed for you" appeared, and after that, "Implying..."

      --
      Contrary to the popular belief, there indeed is no God.
    36. Re:TIOBE methodology is so flawed it's pointless by Rockoon · · Score: 2

      Languages that are more popular in business is really the only definition that matters.

      If it is advantageous to use the language, then businesses will use it. If its not advantageous to use the language, then its just some minor obscurity that doesn't really mean shit.

      These ranking have been under-representing Java, VB/VBA, and Python for years.

      --
      "His name was James Damore."
    37. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      You're absolutely right. For instance, the very high position of Go is, I suspect, due to lots of people talking about it. It's not going to translate into actual projects using it at all.

    38. Re:TIOBE methodology is so flawed it's pointless by fbjon · · Score: 1

      Nope, Citibank on Linux here. Anyway, OT but I just discovered the timeline feature. I had no idea about the explosion in popularity of the letter C around 1000 AD.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    39. Re:TIOBE methodology is so flawed it's pointless by Compaqt · · Score: 1

      This.

      --
      I'm not a lawyer, but I play one on the Internet. Blog
    40. Re:TIOBE methodology is so flawed it's pointless by Compaqt · · Score: 1

      Evilll!

      All this time, I've continued to think of Google as the nerd's best friend. The one that,

      if you type "C", it tells you about the One True Programming language
      if you type "386", it tells you about the Intel x86

      Argh! Glevil now gives Citigroup as the first hit for C, and Northern Florida area code for 386.

      --
      I'm not a lawyer, but I play one on the Internet. Blog
    41. Re:TIOBE methodology is so flawed it's pointless by xTantrum · · Score: 1

      I think the parent had a good point. I live in Montreal and I check several job sites daily, over here its PHP all day everyday. Check San Francisco and around the bay area and it seems different as well.
      Although it may not be an indication of how popular the language is, it is an indication of what businesses are using now. God help us all.

      --
      $action = empty(PHP) ? backToC() : unset(PHP) ; "when the concrete cases are understood, the abstractions are readily
    42. Re:TIOBE methodology is so flawed it's pointless by cynical+kane · · Score: 1

      And that's good enough for me.

    43. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 1, Interesting

      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.

    44. Re:TIOBE methodology is so flawed it's pointless by jeanph01 · · Score: 2, Informative

      Well Google insights give another view and this confirm the trend that tiobe gives :

      http://www.google.com/insights/search/#q=java%20job%2Cc%20job%2Cc%23%20job%2Cjavascript%20job&cmpt=q

    45. Re:TIOBE methodology is so flawed it's pointless by MarkGriz · · Score: 1

      They aggregate together things of all kind, to the point where an aggregate doesn't make any sense at all

      Not only that, but I find it difficult to take seriously a company that bills itself as "The Coding Standards Company", and then requires javascript to be enabled to simply view their website. Sure, use javascript for fancy menus or whatever, but how in the world do you justify requiring it to see anything on the page besides their logo.

      --
      Beauty is in the eye of the beerholder.
    46. Re:TIOBE methodology is so flawed it's pointless by tepples · · Score: 2, Funny

      This.

      C has no this; this is a C++ and Java and JavaScript thing.

    47. Re:TIOBE methodology is so flawed it's pointless by David+Nathan+Welton · · Score: 1

      I think my own http://langpop.com/ is better, as I use various metrics (jobs, books, etc...), and also let the user play around with the normalized results. I am fairly confident in my results, but on the other hand, I think "oh, look, C just passed Java" is a giving them a precision that they simply don't have.

    48. Re:TIOBE methodology is so flawed it's pointless by Matt+Perry · · Score: 1

      Huh? Your search shows "C programming language" as the first hit. "C is for cookie" comes before the citigroup hits.

      I get Citigroup as the first results. C (programming language) is fourth.

      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    49. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      >Implying people dont use '>' to sarcastically quote each other
      It does come from the same tradition. Similar to the whole "fixed" meme you see on message boards;

      [quote]4chan and its "> Implying..." greentext follows directly those traditions.[/quote]
      Fixed

    50. Re:TIOBE methodology is so flawed it's pointless by b4dc0d3r · · Score: 1

      Your post references java 4 times, giving it a further boost, so maybe we should re-check the stats now?

      Wait wait, you also reference C 10 times so you're probably the one bringing the java average down. Everyone quit typing!

    51. Re:TIOBE methodology is so flawed it's pointless by Matt+Perry · · Score: 1

      That.

      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    52. Re:TIOBE methodology is so flawed it's pointless by Compaqt · · Score: 1

      *->()

      --
      I'm not a lawyer, but I play one on the Internet. Blog
    53. Re:TIOBE methodology is so flawed it's pointless by thePowerOfGrayskull · · Score: 1
      Another interpretation would be searches increasing indicating that old programs are failing more often, and programmers are writing (and complaining) more about this stupid C app that was written 20 years ago and now it's broken...

      Absurd, true -- but no more so than their own conclusion.

    54. Re:TIOBE methodology is so flawed it's pointless by Teun · · Score: 1
      I just tried it (via a British IP) on google.nl and a Dutch Wikipedia article about C, the computer programming language came up top followed by the English version.
      Above them there is a Google Calculator reference for c being the speed of light.

      That's from a Linux machine.

      --
      "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
    55. Re:TIOBE methodology is so flawed it's pointless by TapeCutter · · Score: 1

      Yeah, your right. It was redirected to google.com.au

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    56. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      Are you speaking from experience?

    57. Re:TIOBE methodology is so flawed it's pointless by tietokone-olmi · · Score: 1

      Dude, it's a long-term study. It doesn't matter if their metric isn't the absolute bestest metric you could come up with to measure impact etc. right now. What matters is that their metric works over several decades and that the results remain comparable between then and now.

      tl;dr -- you want to look at the graphs, not the numbers.

    58. Re:TIOBE methodology is so flawed it's pointless by Anonymous Coward · · Score: 0

      Speaking of which, C now stands for Citigroup according to Google.

      Huh? Your search shows "C programming language" as the first hit. "C is for cookie" comes before the citigroup hits.

      "C is for cookie"... and that's good enough for me! yum yum yum

    59. Re:TIOBE methodology is so flawed it's pointless by shutdown+-p+now · · Score: 1

      Huh, I could've sworn Java was over 18 by now. Oops.

      It's 14.

      So overweight for such a young girl, tsk-tsk.

    60. Re:TIOBE methodology is so flawed it's pointless by ultranova · · Score: 1

      Huh, I could've sworn Java was over 18 by now. Oops.

      It's 14.

      So overweight for such a young girl, tsk-tsk.

      Not really, it's all the glittery stuff and wrappings she's wearing that makes her seem bulked up. Once you get her out of her clothes she's - I mean, I ... crap.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    61. Re:TIOBE methodology is so flawed it's pointless by psithurism · · Score: 1

      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.

      So what you are saying is that all occurrences of C were being treaded as equals? So really all we need is this chart to determine the leading language:
      http://www.google.com/finance?q=c,+JAVA,++cpp

    62. Re:TIOBE methodology is so flawed it's pointless by thetoadwarrior · · Score: 1

      The thing is though no one just randomly says PHP sucks. The odds of them saying that would very much imply there is someone else in the conversation that likes PHP.

    63. Re:TIOBE methodology is so flawed it's pointless by srealm · · Score: 2, Funny

      Does that make C a cougar?

    64. Re:TIOBE methodology is so flawed it's pointless by SL+Baur · · Score: 1

      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.

      There is no "probably". Google goes to extraordinary lengths to ensure that when you reference google.com it really goes to google.com?.XX, where XX is the country code that your IP reverse resolves to.

      It didn't use to be that relentless. They started doing it when I lived in Japan and I was able to avoid google.co.jp for awhile with some magic in the URL.

      Google.co.in shows the C programming language as 2 of the top four hits (1 and 3) with Vitamin C as the 2nd hit. Citibank comes in 4th. Unsurprisingly, Citibank has the largest national presence of any US bank.

    65. Re:TIOBE methodology is so flawed it's pointless by shaitand · · Score: 1

      "Languages that are more popular in business is really the only definition that matters."

      I'm sure that is the consensus... in business.

      "If it is advantageous to use the language, then businesses will use it."

      Where do you get that nonsense? Next you'll try to hand me some nonsense about the free market keeping prices down.

      "These ranking have been under-representing Java, VB/VBA, and Python for years."

      Amazing you defeat your argument with your example. Python isn't even on the radar in the business world.

    66. Re:TIOBE methodology is so flawed it's pointless by shaitand · · Score: 1

      "but how popular it in fact is for doing anything useful?"

      That would be a different question wouldn't it? How many people are discussing it on the other hand, is a direct metric of popularity.

  4. Submitter bias: Java's "downward trend" by Raul+Acevedo · · Score: 2, Informative

    "Java has a long term downward trend". Wrong. For one, C and Java share the same "downward trend" from 2002 (earliest year on the chart) and 2007. From 2007 to late last year, both C and Java basically stay about the same. Only in the last 6 months or so can you say Java has been doing down and C rising.

    --
    In a real emergency, we would have all fled in terror, and you would not have been notified.
    1. Re:Submitter bias: Java's "downward trend" by binarylarry · · Score: 1

      Well, it's directly copied from the TIOBE site.

      Jobs wise, Java still dominates.

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:Submitter bias: Java's "downward trend" by ozbird · · Score: 5, Funny

      C rising due to global warming. Film at 11.

    3. Re:Submitter bias: Java's "downward trend" by joefubar · · Score: 1

      I'd say it's Linux or OSX development, but really, I think it's iPhone or Android. Nothing short of that would entice me away.

      --
      ==>Lancer---
    4. Re:Submitter bias: Java's "downward trend" by Hooya · · Score: 5, Funny

      > Film at 11.

      You're off by 1. The film is actually at 10.

    5. Re:Submitter bias: Java's "downward trend" by buchner.johannes · · Score: 1

      "Java has a long term downward trend". Wrong.

      They just put that into the summary to make it appealing for slashdot readers.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    6. Re:Submitter bias: Java's "downward trend" by mcvos · · Score: 1

      Also: competitors? For the top spot, perhaps, but in actual use, Java and C don't compete much with each other. C is a systems language, whereas Java is an application language with a strong tendency towards enterprisey stuff.

      What worries me about that chart is that Ruby is dropping. Wasn't Ruby supposed to be gaining momentum and be the Next Big Thing? Being overtaken by Objective-C I can understand, given the iPhone's popularity, but Delphi? That can't be right.

    7. Re:Submitter bias: Java's "downward trend" by Anonymous Coward · · Score: 0

      Hadji!!!!

    8. Re:Submitter bias: Java's "downward trend" by Malc · · Score: 2, Interesting

      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.

    9. Re:Submitter bias: Java's "downward trend" by Anonymous Coward · · Score: 4, Funny

      Suggested title: An Inconvenient Knuth

    10. Re:Submitter bias: Java's "downward trend" by mb1 · · Score: 1

      Agreed, the film is at DEADBEEF.

    11. Re:Submitter bias: Java's "downward trend" by icebraining · · Score: 1

      What? iPhone is Objective-C (which is clearly demarcated in the index) and Android is a flavor of Java, afaik.

    12. Re:Submitter bias: Java's "downward trend" by Rockoon · · Score: 2, Interesting

      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.

      --
      "His name was James Damore."
    13. Re:Submitter bias: Java's "downward trend" by Anonymous Coward · · Score: 1

      I'd mod you up as funny, but I'm busy cleaning the coffee spills from my monitor and keyboard.

      Also, my co-workers are asking me if I'm OK because the last five minutes I've been having incontrollable bursts of laughter, my face is red and I'm having difficulty breathing. Explaining the joke didn't really help either...

    14. Re:Submitter bias: Java's "downward trend" by sparr0w · · Score: 1

      your news comes on either much earlier or much later than mine. our film's always on at 1010

    15. Re:Submitter bias: Java's "downward trend" by NewbieProgrammerMan · · Score: 1

      Everybody knows C's film is so awesome it goes to 11.
      .
      .
      .
      (sorry)

      --
      [b.belong('us') for b in bases if b.owner() == 'you']
    16. Re:Submitter bias: Java's "downward trend" by Ash+Vince · · Score: 1

      What worries me about that chart is that Ruby is dropping. Wasn't Ruby supposed to be gaining momentum and be the Next Big Thing? Being overtaken by Objective-C I can understand, given the iPhone's popularity, but Delphi? That can't be right.

      The thing is, the TIOBE metric is about number of hits found for a particular language. That will give a higher figure for a purely academic language (ie - Pascal) than a heavily used commercial counter part (ie - VBSCRIPT). The reason is that a monkey could VBSRCRIPT in their sleep without needing to search for help on it so their will not be very many links on the web suggesting methods. Pascal is going to have more hits as far more novice programmers will use the web to compare notes when they are learning it at university.

      I learnt Pascal when I was studying but it has long since fallen off my CV as I was never asked about it while applying for jobs. A quick search elicited this site which seems to more reflect the spread I would expect for commercial languages:

      http://www.indeed.com/jobtrends?q=java%2C+c%2B%2B%2C+pascal%2C+c%23%2C+vb%2C+ruby%2C+perl%2C+python%2C+eiffel&l=

      Interestingly, if you click on the relative link it will show the rate of change in percentage that indicates why people keep referring to Ruby as the next big thing:

      http://www.indeed.com/jobtrends?q=java%2C+c%2B%2B%2C+pascal%2C+c%23%2C+vb%2C+ruby%2C+perl%2C+python%2C+eiffel&l=&relative=1

      Disclaimer - I know nothing about Ruby, but looking at the second graph I might learn.

      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    17. Re:Submitter bias: Java's "downward trend" by shutdown+-p+now · · Score: 1

      Delphi, as with Pascal before it, is strong tho. Really.

      Where? Do you have any numbers, or even anecdotal experience, to show this?

      I can tell you mine. In my country (Russia), Delphi was an extremely popular development tool from mid-90s to early 2000s, especially for internal and other business application development. It was more popular than VB and Java combined.

      Today, though? Most new stuff is written in .NET. For web apps, Java is preferred sometimes. Delphi is mostly for legacy code.

    18. Re:Submitter bias: Java's "downward trend" by Anonymous Coward · · Score: 0

      I'm confused:
      When you say at 11, do you mean 00000011, 11d, 0x11 or 011?

  5. These numbers are garbage by Anonymous Coward · · Score: 2, Insightful

    There is no way these numbers are anywhere near an approximation of reality.

    How many people have real jobs where they get paid to program in Go full-time? Ten guys in the whole world maybe? But it's ranked 15. But when you look at Groovy (the JVM dynamic language) it's ranked at #44, and I personally know at least 20 developers who've used it at a variety of companies (and get paid to do so).

    I don't trust these stats at all.

    1. Re:These numbers are garbage by sys.stdout.write · · Score: 3, Funny

      Your anecdotal evidence it irrefutable.

    2. Re:These numbers are garbage by binarylarry · · Score: 2, Funny

      Damn if you know 20 developers, Groovy must be like 2-3 at least!

      --
      Mod me down, my New Earth Global Warmingist friends!
    3. Re:These numbers are garbage by X0563511 · · Score: 2, Interesting

      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.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    4. Re:These numbers are garbage by pnewhook · · Score: 1

      There's no such thing as 'better'. Given an specific task or application, one language may be better suited to it than another, but 'better' or 'best' language has no meaning when looking at all possible applications.

      --
      Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
    5. Re:These numbers are garbage by MightyMartian · · Score: 2, Interesting

      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.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    6. Re:These numbers are garbage by Gr8Apes · · Score: 1

      There's no such thing as 'better'. Given an specific task or application, one language may be better suited to it than another, but 'better' or 'best' language has no meaning when looking at all possible applications.

      I think we can all agree COBOL sucks no matter the application.

      --
      The cesspool just got a check and balance.
    7. Re:These numbers are garbage by abigor · · Score: 1

      It's arguable that Python's learning curve is a lot higher than those of C and Java. Take a look at this, for just one example: http://www.dabeaz.com/coroutines/

    8. Re:These numbers are garbage by Anonymous Coward · · Score: 0

      So say we all!

    9. Re:These numbers are garbage by bdenton42 · · Score: 1

      It may suck, but it wasn't that long ago (~15 years ago) that there was more COBOL in production than any other language. It wouldn't surprise me if it was still in the top 5 today.

    10. Re:These numbers are garbage by Gr8Apes · · Score: 1

      and it sucked as much then as it does today.

      Just ask the second lemming if he thought it was a good idea.

      --
      The cesspool just got a check and balance.
    11. Re:These numbers are garbage by azgard · · Score: 1

      I think you are confusing "higher" and "steeper". You don't need to actually use coroutines while programming in Python.

    12. Re:These numbers are garbage by Garridan · · Score: 1

      Don't blame the tool, dumbass. Kitchen knives are dangerous in the hands of a klutz. That doesn't make a kitchen knife a bad tool. Moreover, a sharp knife is less dangerous in the hands of somebody who knows what they're doing -- this is the nature of good tools.

      PHP is wonderful for web development. I used mod-perl, c/cgi, coldfusion, and asp before I found PHP -- it saved my world. I wasn't scared off by these other tools -- but my productivity went through the roof when I found PHP. OTOH, I'm now I use Python / Cython for 99% of what I do, and I refute your claim that Python has a steeper learning curve than PHP.

    13. Re:These numbers are garbage by X0563511 · · Score: 1

      Wow, way to rephrase exactly what I just got done saying!

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    14. Re:These numbers are garbage by ckaminski · · Score: 1

      I would be willing to be that there is STILL more COBOL in production today than any other language.

    15. Re:These numbers are garbage by pnewhook · · Score: 1

      Sure, but look how many fewer words I used.

      --
      Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
    16. Re:These numbers are garbage by thetoadwarrior · · Score: 1

      How many use Go in their free time? Sure getting paid to program is nice but not everyone does it as a job. It depends on whether you want to know which language will give you more job options or which one is more popular over all.

    17. Re:These numbers are garbage by Anonymous Coward · · Score: 0

      Agreed. PHP has actively deprecated and removed the more dangerous/stupid aspects in PHP5 (and 6).

      Meanwhile development is magnitudes faster than Java and many other "web" languages. I left a PHP shop for a Java+C# shop, and see applications taking 3 months to write in C# that took 2 weeks in PHP, and that took 6 months in PHP take 3 years in Java with 3 times as many developers.

      At the same time, at the PHP shop I had to refactor a lot of that terrible PHP. But you know what? It wasn't that hard, and the company wouldn't have existed and been #2 in their market if they had taken 3+ years to launch their app (and addon basic features) due to using a horrible language like Java. The PHP also cleaned up really well once we got in there to refactor it and migrate it to PHP5.

    18. Re:These numbers are garbage by Anonymous Coward · · Score: 0

      I don't care too much about a language being something that retards _use_ ... but with PHP, it's also quite clear that it's a language that said dangerous retards _wrote_. Even in its sixth iteration now, it's full of broken hardwired behaviors that appear to have sought out exactly the wrong thing to do and implemented it that way.

  6. Java by Andy+Smith · · Score: 5, Interesting

    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:
    http://my.opera.com/community/countup/

    1. Re:Java by binarylarry · · Score: 1

      Oracle is also putting a lot of resources into desktop Java. So if they don't screw up, it's possible a resurgence (well, a reboot) is on it's way there as well.

      And server side Java is king.

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:Java by guhknew · · Score: 1

      I don't doubt that Android may become the most common phone operating system at some point, but I strongly doubt it will drive Java's popularity for several reasons. For one, the mobile computing market is relatively small relative to all the rest of the java code out there. The android market place has also been an abysmal failure and might not ever be as profitable as the iPhone app store unless Google gets their act together.

    3. Re:Java by Gr8Apes · · Score: 1

      Java may actually lose ground in this "metric". Since the Java programmers are generally segregating in this recession to more seasoned programmers, fewer and fewer will utilize web resources for anything.

      --
      The cesspool just got a check and balance.
    4. Re:Java by jcr · · Score: 0, Troll

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

      I expect Android to be where the lion's share of Java development happens in the next few years, but I also expect Java to continue to decline.

      Java's initial popularity was a combination of marketing hype, and the fact that the world desperately needed an alternative to C++. Once people were weaned off of Stroustrup's mistake, they started looking into other languages as well. My picks for the most important languages ten years from now are C, Python, Objective-C, Ruby, and (regrettably) PHP and Javascript.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    5. Re:Java by c4t3y3 · · Score: 1

      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.

      Real numbers say otherwise. The growth in development of iPhone apps is unmatched. Joe Clark explains why talking about the iPad:

      This was the weekend those of us with high standards lost their remaining residue of patience for ideologues who hyperbolize about open systems without actually creating something people want to use.

      An example of this is Apple rejecting.. how many? 40 out of 170,000 available applications? consumers don't freaking care, they just want something that works. If you do care, check the iPhone graveyard for explanations why. But back to the point: you are delusional to think your Apple bashing will "move away development from the iPhone". Just check the iPads sold today, more units than the iPhone. Get a reality check mate.

    6. Re:Java by GreyLurk · · Score: 1

      It's also true that in terms of usage in the US, Android is only lagging by about 2-4% behind the iPhone last month. If trends continue the way they have been, Android usership should overtake iPhone within the next month or two, meaning that iPhone developers will actually have a smaller target audience than Android developers.

      http://jaxenter.com/iphone-is-loosing-a-great-deal-of-market-share-to-android-10688.html

    7. Re:Java by Anonymous Coward · · Score: 1, Interesting

      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.

    8. Re:Java by Niten · · Score: 5, Interesting

      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.

    9. Re:Java by codepunk · · Score: 1

      I have only ever seen one android based phone since it was released. I cannot begin to tell you how many iphones I see in a single day but it is a bunch. Something pretty damn drastic would have to change for me or anyone else that I know before they would give up their iphone.

      --


      Got Code?
    10. Re:Java by swilver · · Score: 1

      There we have it! Anecdotal proof that the android will never overtake iPhone.

    11. Re:Java by chrb · · Score: 1

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

      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.

      It depends on what you mean by "Java" - if you mean the language, then Android is going to increase the usage of "Java". If you mean the "Java Virtual Machine" - then Android will not directly increase the usage of "Java", since it runs Dalvik byte code. But when most people say "Java", they mean the former.

    12. Re:Java by Anonymous Coward · · Score: 0

      Why would people develop for a market where nobody wants to pay for software, and the hardware market is so fragmentet that you don't even know if you have a display ? Nah, Android fragmentation will likely kill the platform. Otherwise the cheapskates who thinks all software should be free on an open platform will do it.

      And Microsoft will kill Phone 7 by forcing developers to switch to Silverlight. A developer community of 10 is not that many.

      Developing for iPhone makes sense. Opera just nmade something that mimics buit-in functionality too close, and just at the time of easter holidays and the rush of iPad apps, which gets the attention now. Bad timing on their part. The iPhone makes good money for many developers, and even small niche products can make OK money.

    13. Re:Java by ThePhilips · · Score: 1

      You must have no sense of how broadly Java is used in the industry.

      Well, it all depends how broadly you define the industry :D

      Java sat tight in the server niche (and even narrower niche where Eclipse belongs). Android is literally first breakthrough for Java out of the server niche and I think that deserves a bit more of the praise.

      the massive, active Java codebase in other sectors.

      And how many "other sectors" you can name? It is a server stuff: sitting on the server doing business automation. That counts as precisely one sector on my book.

      And I do not want to even start on why the Java code base is so "massive"...

      --
      All hope abandon ye who enter here.
    14. Re:Java by Anonymous Coward · · Score: 0

      >... that will live or die on their merits, as opposed to Apple's 'approval' process.
      And yet thousands have already been approved without a hitch, so ... you're probably just talking shit

    15. Re:Java by gbjbaanb · · Score: 1

      Android is literally first breakthrough for Java out of the server niche and I think that deserves a bit more of the praise.

      I can think of words other than 'praise' for this aspect of Android .....

    16. Re:Java by Anonymous Coward · · Score: 0

      Even if Android were to surpass the iPhone in popularity

      Suggesting that Android will become more popular than the iPhone is like suggesting the PC will become more popular than the Mac.

      History has a few details on that prediction.

    17. Re:Java by Anonymous Coward · · Score: 0

      Those who claim that Stroustrup made a mistake, don't really understand C++. I used to hold your view until I was forced to write C++ code. Now that I understand the language it appears downright elegant. Sure there are features that I will never ever use, but by and large I like it.

    18. Re:Java by MrKaos · · Score: 1

      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 so right, I think IBM hired 2000 odd Java programmers back in the nineties, that would have been a good start. That said I really like C but I think I like Java better and still want to develop my skill in that area.

      --
      My ism, it's full of beliefs.
    19. Re:Java by tepples · · Score: 1

      I used to [put down C++] until I was forced to write C++ code. Now that I understand the language it appears downright elegant. Sure there are features that I will never ever use

      But if you don't use all the language features, you start having to deal with lamers who repeat a no true Scotsman fallacy. For example, I've seen people claim that a C++ program that uses <cstdio> instead of <iostream> isn't really written in C++ but in "an odd Frankensteinian mix of C and C++". This despite the fact that statically linked C++ programs using <iostream> start at a quarter megabyte for Hello World, which is a lot on a handheld platform with less than half a megabyte of RAM.

    20. Re:Java by hattig · · Score: 1

      Given that this metric separates JavaFX from Java, I'm sure that Android development will count separately as well.

    21. Re:Java by Compaqt · · Score: 1

      >Android is literally first breakthrough for Java out of the server niche

      Does Blackberry not count? Or Java games/apps on feature phones?

      --
      I'm not a lawyer, but I play one on the Internet. Blog
    22. Re:Java by shutdown+-p+now · · Score: 1

      From programmer's point of view, it is still Java the language exactly as one you get on JVM, and core library is the same, too, as well as all tools.

    23. Re:Java by mini+me · · Score: 2, Insightful

      iPhone apps run on the iPhone, the iPod touch, and now the iPad. Commercially, Android, so far, only runs on cell phones. So even if Android does surpass the iPhone, you are only accounting for a percentage of the devices Apple sells in the same marketplace.

    24. Re:Java by mini+me · · Score: 1

      Why would people develop for a market where nobody wants to pay for software, and the hardware market is so fragmentet that you don't even know if you have a display ?

      That is a valid question. Generally speaking, the indie Mac developers do much better than indie Windows developers in, despite the larger Windows audience. If we extrapolate that out to cell phones, the major players might do well on Android, but will the smaller companies?

  7. 0.007% by westlake · · Score: 5, Insightful

    The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, Wikipedia and YouTube are used to calculate the ratings

    I feel so much confidence in these numbers.
     

    1. Re:0.007% by corbettw · · Score: 5, Funny

      Why not? Hell, I know when I want to check out the goings on in programming the first and last place I turn is YouTube.

      --
      God invented whiskey so the Irish would not rule the world.
    2. Re:0.007% by Gr8Apes · · Score: 2, Funny

      Because with Java - I generally do not need to search the web for the answer. However, take C# for instance, and depending on which OS I'm running on, I may have to run 20 or 30 searches for every single answer, because I thought I might have it - but won't know until I try it whether it works for 2.0, 3.0, 3.5, or 3.51....etc.

      --
      The cesspool just got a check and balance.
    3. Re:0.007% by Anonymous Coward · · Score: 0

      Because with Java - I generally do not need to search the web for the answer, I know it just isn't possible!

    4. Re:0.007% by Anonymous Coward · · Score: 0

      So your point is that unlike Java, low quality languages tend to do silly things such as adding functionalities to newer versions?

    5. Re:0.007% by ewg · · Score: 1

      Flawed or not, it's the only measure of its kind spanning such a large swath of the history of computing.

      --
      org.slashdot.post.SignatureNotFoundException: ewg
    6. Re:0.007% by arndawg · · Score: 2, Funny

      Untill they use twitter as well, these numbers means nothing!

    7. Re:0.007% by Gr8Apes · · Score: 1

      Not really - more like arbitrary changes and deletions of functionality, or random renaming of methods. Pick any or all of the above.

      --
      The cesspool just got a check and balance.
    8. Re:0.007% by badkarmadayaccount · · Score: 1

      Everything works best with 3.11 for Workgroups.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  8. Why C? by Borongo · · Score: 1

    As an old C programmer (who actually is looking to get back into development) what kinds of apps make C popular (over C++) seems a lot of the stuff on the web made me feel out of date because I didn't know C++ as well or some other OO based language. I also think that while the overall ranking of a language is something to consider, it does seem that various specialties favor a few languages (web, gaming, scientific, business etc.) so that should be taken into consideration as well.

    1. Re:Why C? by binarylarry · · Score: 5, Interesting

      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.

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:Why C? by Anonymous Coward · · Score: 0, Flamebait

      Haha, you're old.

    3. Re:Why C? by Eudial · · Score: 1

      C has an iron-fist grasp on certain niche markets. For one part, there are very few other languages that require so little in terms of bootstrapping. You can run C code (sans standard library) on bare metal, requiring only that you set up the stack before you go. So for systems programming, and code run on embedded systems, C stands uncontested.

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    4. Re:Why C? by X0563511 · · Score: 3, Insightful

      Haha, you're young (and a douchebag).

      Yes, I will take the karma for that.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    5. Re:Why C? by Tex2000 · · Score: 1

      Well I still Love C and believe me nothing would give me more joy to hear it is back at #1, but being realistic and at least for Mexico (I mean the country) It would be "way easier" to get a job doing some Java programming than C programming. Of course most of the programming jobs here are for corporate applications and not much related to servers, services, or applications for end users.

      On the other hand trends usually hit us a bit late and if there is really a downturn we might see it later than in the good old US.

    6. Re:Why C? by ucblockhead · · Score: 5, Funny

      Java is extremely portable. A Java application can be run anywhere someone wrote a VM for it in C or C++.

      --
      The cake is a pie
    7. Re:Why C? by lennier · · Score: 1

      C is a great systems language, it lets you get great performance, interact directly with the hardware and still stay fairly portable.

      And without C's blindingly fast array (not) checking, we wouldn't have those lovely buffer overflows that make our Internet so secure.

      C is fast, yes. But is fast all we should have asked for?

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    8. Re:Why C? by Macrat · · Score: 2, Informative

      At least it's not Pascal or Fortran.

    9. Re:Why C? by binarylarry · · Score: 5, Interesting

      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.

      --
      Mod me down, my New Earth Global Warmingist friends!
    10. Re:Why C? by Vyse+of+Arcadia · · Score: 1

      You're half right. C certainly is a great systems language. But Java is a terrible applications language. It's clunky, providing all of the drawbacks of a bytecode-compiled language with very few of the benefits. Which is why it has been steadily losing ground to other, nicer languages that run on the JVM.

      Really, Java's only advantage is that it's easy to learn if you already know a C-esque language. Other than that, there's no point to using it to write JVM programs.

    11. Re:Why C? by Anonymous Coward · · Score: 0

      Sometimes, yes it is. Considering I've used Java since '97 or so, I can only imagine what it would have been like 25 years earlier. C has done a great job at what it was meant to do, and Java has several strong points. Don't blame a well-designed tool for the people who use it incorrectly.

    12. Re:Why C? by thoughtsatthemoment · · Score: 1

      C does not force you to check at the language or library level. It allows the programmer to decide what or when to check. This way, good programmers can still produce good code.

    13. Re:Why C? by binarylarry · · Score: 3, Insightful

      Yep, as I pointed out, it's an application language not a systems language.

      reading comprehension++

      --
      Mod me down, my New Earth Global Warmingist friends!
    14. Re:Why C? by slimjim8094 · · Score: 4, Insightful

      Your point is?

      What I think you're being snide about (how Java still depends on C) is misguided. That's the point - nobody's saying your system programming languages are dead. At the end of the day, something needs to be a straight sequence of 0s and 1s that the processor can just run, and that's where C dominates. There's a lot of things (like scheduling algorithms) that really can't be written in a higher level language, either.

      But at this point, the only reasons you'd need to use C would be for low-level systems programming, as a base for another language (interpreter/JIT VM), or anywhere where you *really* need to manage your own memory or get close-to-assembly performance. (not) Coincidentally, this covers just about everything C is used for nowadays. Many small utilities are now written in Python, particularly small accessory GUI programs on Linux.

      Fact is, a higher level language like Java is just faster to program in, and for a basic application it's more than fast enough. But we'll never lose C, at least because all these higher-level fancy applications need to run on something, and nobody wants to write that "something" in straight assembly.

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    15. Re:Why C? by binarylarry · · Score: 1

      I'm curious to find out what you think would be better?

      --
      Mod me down, my New Earth Global Warmingist friends!
    16. Re:Why C? by binarylarry · · Score: 1

      Yeah, before Java showed up it was a happy place. They had flowery meadows and rainbow skies, and rivers made of chocolate, where the programmers danced and laughed and played with gumdrop smiles.

      But back in reality, even "good programmers" are going to run into crunch time in the vast number of projects and that bodes purely for well written and *secure* applications.

      --
      Mod me down, my New Earth Global Warmingist friends!
    17. Re:Why C? by binarylarry · · Score: 1

      *bodes poorly

      --
      Mod me down, my New Earth Global Warmingist friends!
    18. Re:Why C? by slimjim8094 · · Score: 1

      First of all, we didn't 'ask' for anything. K&R invented C, and coded Unix in it. Everybody adopted it after that.

      If you read "The C Programming Language" (white book), they do mention lack of bounds-checking. And yes, it is for speed. And yes, they do acknowledge that this is dangerous. But consider this - if they had built it in, you'd be stuck with that performance waste even when you didn't need it. There's a ton of ways to use arrays where it's impossible to overrun (such as a constant-bound loop or an input with "if" statement bounds-checking). And a smart compiler will optimize away the checks where they're not needed.

      But C was developed on the PDP-11. To say this computer was limited would be an understatement. IIRC C was designed to be a single-pass language, so that the compiler could keep only a few lines in memory. And storage space was minuscule.

      There's a lot of "safety/convenience vs speed/size" tradeoff in the early days of computing. Sometimes, even today, that's still the right tradeoff. When it's not, we should blame the developers for using an unsuitable language.

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    19. Re:Why C? by publiclurker · · Score: 1

      And cocky programmers to produce easily exploitable code.

    20. Re:Why C? by Trepidity · · Score: 1

      Yes, but empirically they don't. Even OpenBSD has had multiple remote-root holes in the default install (and many more remote-root holes in any actually working install).

    21. Re:Why C? by Vyse+of+Arcadia · · Score: 1

      Better than Java on the JVM? Groovy and Jython would be my first choices. I've also heard good things about Scala, but I've never used it.

      But if you meant better than C for systems programming, I don't believe such a language exists.

    22. Re:Why C? by abigor · · Score: 1

      Spoken like someone who doesn't write software for a living, and is accountable to nobody.

    23. Re:Why C? by Anonymous Coward · · Score: 0

      at least for Mexico (I mean the country)


      Is there another kind?

    24. Re:Why C? by thoughtsatthemoment · · Score: 1

      Are you suggesting I am Bill Gates? No, I am not that rich at all.

    25. Re:Why C? by thoughtsatthemoment · · Score: 1

      Exactly, knowing when and what to check is part of the programmer's job.

    26. Re:Why C? by someSnarkyBastard · · Score: 1

      Shouldn't it be "++reading_comprehension" as I would assume you would want to increment the value before evaluating it?

    27. Re:Why C? by Anonymous Coward · · Score: 0
    28. Re:Why C? by Jackmn · · Score: 1

      Sorry, applied the wrong mod type. Posting to undo.

    29. Re:Why C? by mukund · · Score: 1

      Borongo,

      if you know C and bring yourself to write some programs to get up to speed again, then you are very well off already. The POSIX environment is available on almost all modern operating systems, and you can do all kinds of things with various C libraries including graphics, sound, web programming, etc. In the case of web applications where you have to work with and manipulate strings mainly and interface with databases, languages such as PHP, Perl, etc. are better. You can achieve the same things in C, but you will end up writing a lot more code.

      You do not have to learn a new language such as C++ to do object oriented programming. Old raccoons like me will tell you how terrible a language C++ is. C is enough to implement object oriented programming, and you can use a library such as GObject to help you with it. Learn object oriented programming concepts though. There are these books on 'design patterns' that you can read. Browsing through the source code of some large C application such as GIMP (written in C) is useful to see the design of an object oriented app.

      Many people in the pursuit of learning languages miss out on doing useful stuff. If you write a program in Visual Basic that is useful, it's still worth a lot more than knowing 20 languages and not doing anything. [E.g., Richard Feynman only knew BASIC. He went to work at Thinking Machines and analyzed distributed algorithms, and wrote implementations in a BASIC-like language because that was the only programming language he was proficient in.]

      C is a fine language, as long as you know it well. Join a free software project to practice your C skills. Happy hacking.

      --
      Banu
    30. Re:Why C? by Anonymous Coward · · Score: 0

      The point is using the term "fairly portable" in context with C while using "extremely portable" with Java when on the language level Java almost necessarily is less portable.
      I get the point, but a lot of people get the idea to use Java if you want your apps to run anywhere, which is just idiotic, if you want it run really almost anywhere and are ready to make an extra effort, C is a far better choice than Java.

    31. Re:Why C? by Anonymous Coward · · Score: 0

      Have any of you proponents of java for applications ever asked users what they think of your java apps and widget interface? You wouldn't like what you hear.

    32. Re:Why C? by Xest · · Score: 3, Insightful

      "I get the point, but a lot of people get the idea to use Java if you want your apps to run anywhere, which is just idiotic, if you want it run really almost anywhere and are ready to make an extra effort, C is a far better choice than Java."

      No, it's really not. Java apps are portable because they're write once, run anywhere there's a JVM. C apps are only portable if you write for every single different platform providing a suitable C compiler exists for each of those platforms.

      The issue is that you're confusing a portable application, with an application that can be ported, and having to specifically port for each platform is expensive as it requires much more development time, and it creates more headaches in terms of debugging etc. as you face platform specific issues more often.

      The extra effort to go cross platform on C isn't trivial, if you've got to write an IO, networking, graphics, threading abstraction layer and so forth, as well as multiple implementations of for those abstractions layers to get your app to run on multiple platforms then it's likely going to be equivalent to re-writing your entire app a few times over. What's worse is you do not get the inherent security benefits of a language like Java either, meaning the end result is a lot more work, much harder debugging of platform specific issues, much higher chance of security flaws and for what? certainly no worthwhile performance gain.

      This is why C is best kept as a systems language- creating things like JVMs, drivers, kernels and so forth it's just fine for. But replacing Java for cross platform application development if Java is an option? that's insane.

      Part of being a good developer is using the right tool for the job, anyone recommending C when Java is an option for cross platform development cannot possibly be classed as a good developer, advocating C over Java where Java is an option is simply the sign of a developer who is not capable of picking the right tool for the job.

      I'm not even advocating Java as the be all and end all of languages, I don't use it at work, I use C# and .NET because we're a Microsoft based company and C# and .NET simply offer much better development tools, albeit at the expense of portability. It really is about using the right tool for the job to get the best balance of cost, features, and quality possible, and languages like Java have simply matured to offer a far superior solution to many of the more classic languages like C and C++, even if those languages do deserve a special place in our hearts in terms of the behemoths they once were- the languages which you could pretty much just do everything in.

      Of course, it's not a new situation either, assembly programmers said about C, what C programmers say about Java. Unfortunately, those who say these are those unable to keep up with the times rather than recognise and sensibly weigh up the benefits and disadvantages of each option.

    33. Re:Why C? by Alioth · · Score: 1

      What you see on the web is the tip of the iceberg, in terms of what developers do. It's the shiny trendy end, so it gets talked about a lot.

      But think about embedded. Every car, every washing machine, every microwave oven, every bicycle light, power shower, dishwasher, dryer... all those specialised instruments used in the construction industry, tools... the list goes on. Most of them today have a small 8 bit microcontroller which cost pennies per unit. If you don't want to use assembler, you use C. There still is an *awful* lot of systems programming and close-to-the-metal programming going on that requires C. You're not going to be using Java or the trendy Microsoft language of the day on an Atmel AVR with 1K of flash and 64 bytes of RAM that you want to clock at 1MHz.

    34. Re:Why C? by cfriedt · · Score: 1

      There's a major difference you're not realizing. Java does not use 'arrays' in the classical sense (probably like many other languages with a VM).

      In fact, a Java array is not even necessarily in the same congtiguous block of memory, while an array in C is. This holds for arrays of Objects as well as arrays of primitive types.

      A Java array is essentially like any other object managed by the JVM but with syntactical support for indexing.

      If you've ever used a C struct and some function pointers before, you could easily create a managed array 'class' in C. 'Object oriented' programming in C is used far more than you might think.

      Poorly written code is the cause of buffer overflows, and naive programmers tend to make that very apparent when they write in C.

    35. Re:Why C? by roman_mir · · Score: 1

      Your C and C++ are very widely used, they can be ran anywhere where Assembler exists that can be compiled into binary that runs on an instruction set and memory provided by the hardware manufacturer. Of-course those computers themselves are very widely used, they can be found anywhere where the laws of physics can be understood, chemistry figured out and mathematics computed. So yeah, it's Turtles all the way down.

    36. Re:Why C? by Rockoon · · Score: 1

      But if you meant better than C for systems programming, I don't believe such a language exists.

      Its called Assembly.

      --
      "His name was James Damore."
    37. Re:Why C? by khakipuce · · Score: 1

      I have several hand saws and several power saws. Just because I can saw everything with the hacksaw but the circular saw is only good for wood does not mean I should just use the hacksaw.

      --
      Art is the mathematics of emotion
    38. Re:Why C? by Viol8 · · Score: 3, Insightful

      "anyone recommending C when Java is an option for cross platform development cannot possibly be classed as a good developer,"

      Very few systems (especially in house ones) require true cross platform development so that's generally irrelevant anyway.

      "advocating C over Java where Java is an option is simply the sign of a developer who is not capable of picking the right tool for the job."

      Or maybe its a developer who doesn't have a knee jerk reaction that the tool that leads to the quickest prototype is the best. I've developed back-end trading apps in the past that required the fastest possible throughput of data (we're talking down to milliseconds being shaved off here) to beat the competition and for that Java simply was not an option. We went for a mixture of C and C++ using the standard sockets API and the system was blazingly fast.

      Not every "app" is some floppy piece of GUI code that sits there doing bugger all 99% of its life - some apps are back end systems that are maxed out all the working day and for that you can't beat C and C++.

       

    39. Re:Why C? by Viol8 · · Score: 1

      Good luck writing a modern OS kernel (not some noddy monitor program that runs an 8 bit microcontroller) in pure assembler. You'll be bequeathing the still unfinished code in your will for your kids to finish and probably their kids in turn.

    40. Re:Why C? by Anonymous Coward · · Score: 0

      You don't feel strange, that you can actually not do those things in your higher language? Why not? C++ included lowlevel, why didn't Java? What's so special about high languages that they can't be bothered with accessing things "down close to the metal" ?

      I can not see why is should be impossible to write a JVM in the same language that actually executions on a JVM. It could be by protected / unprotected execution of the code. Java could compile both to bytecode and to preJITed code. Why not?

      Languages are good for different things, right, but even more so is true that different standard libraries are good for different things. What is a high language anyway, the language or the standard library. I use Java at work, and it works very well, but it's not really for the languages itself, it's for the amazing standard library. Actually the languages are missing features I would like it to have (even higher level constructs, and of course lower level).

    41. Re:Why C? by Anonymous Coward · · Score: 0

      >C is a great systems language
      C is used for Systems,(OS's), libs to interact with the system, and for gui's (X windows, win32 api), and for libs to intercat with the gui, and for services (e.g. crypto) and for libs to interact with those services, and for tools to build new systems (compilers, linkers, ide's), and for building interpreters that create portable languages (ruby, python), and for apps - dbms's, web servers, word processors.

      C is in every interaction you make with your machine, be it smartphone, PC or even mainframe.

      >interact directly with the hardware and still stay fairly portable.
      The minute you interact directly with the hardware you're by definition not portable, and I believe embedded asm was a feature added much later to C by vendors.

      Java is for calling all that C stuff in libs, hopefully in a portable abstracted fashion so you never have to interrogate errno yourself again.

    42. Re:Why C? by Anonymous Coward · · Score: 0

      But he doesn't evaluate it so post increment is perfectly valid.

    43. Re:Why C? by Xest · · Score: 3, Insightful

      "Very few systems (especially in house ones) require true cross platform development so that's generally irrelevant anyway."

      That's too blanket a statement to be valid in the general case, it's certainly true for some companies. As I stated however, our company is Microsoft based, however even here we want to expand some of our apps onto mobile devices and we have a combination of them such that Java is the only real sensible option. Of all the companies I've worked in I've yet to work in one that only ever has a single platform throughout the entire company, they've all had the odd Linux server between their Microsoft servers, a combination of mobile devices and so forth. It's certainly not an uncommon situation to want apps to be portable. There's also the issues of larger companies which have different operating subsidiaries who have to share some apps and data, but who also are given autonomy on IT decisions from subsidiary to subsidiary- Java absolutely excels here, it acts as a common language that just works between subsidiaries pretty much whatever their platform choices.

      If you're not developing in house applications and are developing to sell Java makes sense too, because there's no point writing say, a piece of helpdesk software in C# .NET, or C/C++ with multiple binaries to sell when you can just write once with Java and inherently have a product that works across Windows, Linux and Mac OS X greatly expanding your potential clientbase.

      "Or maybe its a developer who doesn't have a knee jerk reaction that the tool that leads to the quickest prototype is the best."

      Whose talking about prototypes? I'm referring to real working apps.

      "I've developed back-end trading apps in the past that required the fastest possible throughput of data (we're talking down to milliseconds being shaved off here) to beat the competition and for that Java simply was not an option."

      Really? Apparentlyy the NYSE doesn't agree with you:

      http://www.nyse.com/tradingsolutions/transacttools/1204674243385.html

      "Not every "app" is some floppy piece of GUI code that sits there doing bugger all 99% of its life - some apps are back end systems that are maxed out all the working day and for that you can't beat C and C++."

      Simply put, you're wrong. Java performs just as well as C/C++ in many cases, better in some, slightly worse than others. This is largely because the JIT compiler is better suited to optimising per platform, rather than per architecture like classic compilers. Plenty of case studies here for Java use in HPC for example:

      http://www.sun.com/customers/index.xml?soln=31a8487e-0f60-11da-99bc-080020a9ed93&page=1&sort=date&asc=false

      The fact that you talk about Java being faster simply for prototyping, the fact you are not aware of the fact that Java performs just as well in many cases as C/C++, and the fact that you do not think Java is used for high load back end processing demonstrates one thing- you do not know enough about Java to be able to correctly evaluate whether it is the right tool for the job or not in the face of C/C++ and are a good example of the type of developer I was referring to as not being a great developer for this reason. It may well be that C/C++ was in fact the right tool for your particular solution after all (i.e. if you had some custom hardware to take advantage of), but as you clearly don't know much about Java, you cannot possibly say for sure whether that was the case or not, despite the fact you are attempting assert otherwise.

      The likes of eBay runs on Java and much of Google's back end work is done with Java also. There's a good reason it's the most prominent language in business still today and has been for a while. It's because it does offer advantages, it is versatile, and yes, it ca

    44. Re:Why C? by ThePhilips · · Score: 1, Insightful

      That was partially my point. Java's security track record for applications is amazing.

      Because for every dozen C/C++ applications there are about 1 Java application out there. And since Java runs mostly somewhere in corporate data center, it also has much less exposure to all the security risks.

      On the security topic, I have recently seen an example where Java service was easily tricked into dropping whole DB. Java might have removed problems with strings handling, but is still vulnerable to plain logical errors.

      Another good example of "poor" Java security was when folks accidentally managed to "crash" a service: instead of doing anything useful it was in endless loop printing NullPointerException on a console.

      In the end, it all depends on a developer. "Secure" language is a myth. Developers simply do different mistakes in Java.

      --
      All hope abandon ye who enter here.
    45. Re:Why C? by Jamu · · Score: 1

      The postfix ++ was deprecated in the standard I think, although it's very unlikely it'll ever be removed from the language.

      --
      Who ordered that?
    46. Re:Why C? by Anonymous Coward · · Score: 0

      You forgot assemble.
      Oh, and some micro-processors implements java in hardware. DID I JUST BLOW YOUR MIND?

    47. Re:Why C? by ThePhilips · · Score: 1

      You do not have to learn a new language such as C++ to do object oriented programming.

      It's hard to believe that it takes time.

      Yet I still can recall that it took me a week to swallow the ~5 pages on OO theory in Turbo Pascal 5.5 book. It was 15 years ago, but I still can recall the struggle.

      I managed to grasp all of it - finally - only after reading twice the Booch's OOAD. In the end that cost me probably a month or two of my spare time.

      I feel that it was time well invested. But OO in practice isn't really that much and generally overrated. It often saves typing, but as touch typists I can't really relate to the sentiment.

      --
      All hope abandon ye who enter here.
    48. Re:Why C? by binarylarry · · Score: 1

      orly? because applications using SWT are indistinguishable from native applications: http://www.eclipse.org/

      --
      Mod me down, my New Earth Global Warmingist friends!
    49. Re:Why C? by Anonymous Coward · · Score: 0

      As opposed to all Java programs by virtue of being written on top of a C runtime written by programmers who don't care about security anywhere close to OpenBSD programmers?

      By the way, code execution is on the way out thanks to advances in hardware and OSes. So all of this is irrelevant.

      When was the last time you got a computer virus? A real one? Even in 1995 most viruses were already tied to "unexploitable" managed VMs such as VisualBasic and Javascript.

      Code execution is lasting a bit more, but by now, only real aces can break it, whereas in the 80s you just needed debug.exe and half a brain to wreak havoc and DOS the whole Internets.

    50. Re:Why C? by Xest · · Score: 2, Insightful

      "Because for every dozen C/C++ applications there are about 1 Java application out there. And since Java runs mostly somewhere in corporate data center, it also has much less exposure to all the security risks."

      No, because Java offers inherent protection against buffer overflows, which have been the bane of C/C++ security for, well, forever.

      "On the security topic, I have recently seen an example where Java service was easily tricked into dropping whole DB. Java might have removed problems with strings handling, but is still vulnerable to plain logical errors."

      Yes, it's called an SQL injection attack. It's a problem that is fairly easy to solve, but most database frameworks don't solve by default. It's not a Java problem though, it's a problem that affects the wider software development industry, I don't think really any major database framework for any platform or any language does a good job of database security right now unfortunately.

      "Another good example of "poor" Java security was when folks accidentally managed to "crash" a service: instead of doing anything useful it was in endless loop printing NullPointerException on a console."

      That's called having crap developers, it's also a problem that effects any language, and you'd struggle to write a language that can't be broken by people who are incompetent.

      "In the end, it all depends on a developer. "Secure" language is a myth. Developers simply do different mistakes in Java."

      This is where I disagree, it doesn't all depend on the developer. Java and .NET aren't secure, you're right about that, but they're more secure, and there is less that the developer has to actively do to make sure their applications are secure because again, they don't need to worry about things like buffer overflows. You also have things like assembly security, and so forth too, so that even if an assembly does have a bug in it, the JVM can keep check on what it can actually do if it is compromised. The likes of C/C++ don't have these benefits, you have to manually make sure every single section of code is secure in ways that you simply do not need to in managed languages like Java and C#.

      Like you say, that doesn't mean that bad developers can't still write bad software in these languages just as they can in any language, but the fundamental difference is this- in languages like C/C++ it's far too easy for even the most competent developers to miss a security vulnerability, whilst in languages like Java/C++ the window in which developers can accidently create security vulnerabilities is much smaller. So certainly Java and C# apps wont always be absolutely secure, but in general they'll be more secure than C/C++ apps and importantly, they can be developed much more quickly too.

    51. Re:Why C? by Abcd1234 · · Score: 1

      C is a fine language, as long as you know it well.

      Yeah.

      On the other hand, POSIX is *horrendous*. Have you ever seen the block of code necessary to actually reliably read from a socket (handling all cases, ie EINTR, etc)? It's dozens and dozens of lines long.

      Maybe if there was a common set of portable, higher-level abstraction libraries, C would be bearable. But as it stands, all it is is a dangerous weapon wielded by people who, by and large, don't know how to use it safely.

    52. Re:Why C? by grumbel · · Score: 1

      It's not a Java problem though, it's a problem that affects the wider software development industry, I don't think really any major database framework for any platform or any language does a good job of database security right now unfortunately.

      The way I see it, it is a Java problem as well as a problem with most other languages out there and the very reason why the industry struggles to solve it, is because of that, as you can't solve a language problem with yet another library. Would the SQL queries be properly integrated into the language and syntax checked, instead of just being some unchecked string manipulation that only gets checked after the string is already complete you wouldn't have a problem with SQL injection. Its a classic case of mixing code and data.

      Not sure how good C# Language Integrated Queries are in practice, but making the query code part of your other code instead of data certainly seem to be the right direction.

    53. Re:Why C? by ThePhilips · · Score: 1

      In the end, it all depends on a developer. "Secure" language is a myth. Developers simply do different mistakes in Java.

      This is where I disagree, it doesn't all depend on the developer.

      You are entitled to the opinion, but practice speaks otherwise.

      The likes of C/C++ don't have these benefits, you have to manually make sure every single section of code is secure [...]

      No, you really do not. One simply has to properly validate input (valid to any language) and use proper data type (with proper sizes) consistently across the application.

      Not a big deal, if you ask me. And there are even tricks in C++ with strict typing/operator overload how to identify such non-compliant places already during compilation (or less elegant in C with struct pointers). Something weak typed languages like Java or C# simply do not support.

      --
      All hope abandon ye who enter here.
    54. Re:Why C? by mukund · · Score: 1

      How painful it was reading that book :)

      Objects exist in different forms in different codebases. C libraries which let you create a struct and various functions accept an opaque pointer to it. On the other hand, libraries such as GObject provide the whole OO experience, with loadable dynamic types, signals, properties, etc. Then there are people who love using languages with support for generics, operator overloading, templates, etc. How much you want to use is up to you.. different people wrap their brains around it differently :)

      I'd be happy with just C structs and the odd macros, knowing how to use them well. As I said in the parent comment, I think programming using the methods, and in an environment that you are productive in is better than learning many languages and falling into a hole where you can't make up your mind as to which language/framework you want to implement something with. There are many many things to know about programming methodologies today. Sometimes, ignorance is bliss.

      --
      Banu
    55. Re:Why C? by DarthVain · · Score: 1

      "Java...runs very fast"

      I must be doing it wrong then.

    56. Re:Why C? by Viol8 · · Score: 1

      "It's certainly not an uncommon situation to want apps to be portable"

      It certainly is uncommon in my experience. I guess it depends what industry you work in.

      "Whose talking about prototypes? I'm referring to real working apps"

      I've seen plenty of teams who think the sooner they can get some prototype out there to demonstrate to the CEO or whoever the happier everyone will be. And once the prototype is written it'll be a brave man who suggests starting from scratch in another language.

      "the fact you are not aware of the fact that Java performs just as well in many cases as C/C++, and the fact that you do not think Java is used for high load back end processing demonstrates one thing"

      Well my experience in a number of different arenas suggests otherwise. JVMs consistently lag in speed, memory used and CPU utilisation compared to a compiled binaries (written in any language) not to mention I/O throughput, poor memory mapping functionality, no forking, virtually non existent process control (yes , process, not thread) ability, no interprocess pipes, no tty control and in general just lame support for OS APIs. These are standard APIs I used as a unix programmer developing back end systems. If java can't provide me the equivalent functionality then frankly its of little use to me.

      "This is largely because the JIT compiler is better suited to optimising per platform, rather than per architecture like classic compilers."

      So you're saying it only optimises based on the type of OS, not the type of CPU. Yes , I can see how that would be better. Not.

      "and are a good example of the type of developer I was referring to as not being a great developer for this reason"

      And you're the typical kind of arrogant know-it-all who just goes by what he's been told rather than first hand experience. So any views you have to offer are worthless frankly IMO.

      "much of Google's back end work is done with Java also"

      Really? You sure about that?

      "As I say, it's not perfect, I prefer .NET on Microsoft platforms"

      Well that blows any credibility you had out the water. WHy not google the fun the London Stock Exchange had with .NET and why they eventually ditched it along with Windows.

      "Java has succeeded in precisely the areas you say it cannot"

      I know what I saw with the test runs I've done at various companies in the past and with the java system I'm working with at the moment. Java isn't there yet.

      "risk of things like buffer overflows"

      TBH I can't remember the last time I came across a buffer overflow bug in C/C++. That tired old argument seems to be the only thing some people can think to wheel out against these 2 languages.

    57. Re:Why C? by mukund · · Score: 1

      I understand where you are coming from. You are right, but I disagree that things are very bad.

      POSIX is a relatively old and established environment, which you get out of the box with most operating systems. My POSIX project works properly on Fedora, on old versions of RHEL, on BSDs, on Solaris, on embedded platforms such as iPhone, on several routers that run embedded Linux and BSDs, etc. We run into issues and quirks from time to time that we fix, but then this can be said of any maintained software project. We didn't handle several issues (similar to the cases you mention) in many years of our project. Then some user ran into a bug that had existed in so many releases, and we slapped our heads and fixed it. Wasn't it Dijkstra who wanted software to be like televisions, where you ship it and it's done? No version 1.1, etc. :)

      There are many POSIX things to keep in mind.. implementation bugs, quirks, and there are even issues in the standard. In my career, I've had similar problems with many higher-level libraries I've used too. Software is difficult like that. You must be aware that there are higher level abstraction libraries such as glib, gnet2 in the GNOME family, Apache's apr, etc. And other things such as libsoup, libcurl, etc. if you want higher level protocol handlers which even hide the socket interface. These have their own issues, quirks, etc. Some problems go away in newer versions, and there may be new ones introduced. This is not to say that such libraries are not useful. I'm just replying to point out that this is not unique to POSIX. Your program evolves to handle various cases.

      I think it's beautiful that a project works on various platforms, on different operating systems and on hardware which are large to very tiny. This is due to POSIX.

      --
      Banu
    58. Re:Why C? by dgriff · · Score: 1

      some apps are back end systems that are maxed out all the working day and for that you can't beat C and C++

      If your systems are maxed out constantly then your problem is higher up the foodchain, probably with management trying to save money. Buy a faster machine and use Java. The difference in speed these days between Java and C is minimal. People are using Java everywhere for the high throughput server systems you describe.

    59. Re:Why C? by Viol8 · · Score: 1

      "Buy a faster machine and use Java"

      *boggle*

      If you're an example of the future of IT there really is no hope.

    60. Re:Why C? by Anonymous Coward · · Score: 0

      Is there a "-1 comment longer than posted article"

    61. Re:Why C? by shutdown+-p+now · · Score: 1

      Given that most exploits are for trivial things such as buffer overflows (can't be bothered to find the link for paper that came up with it, Google it yourself), I dare say that it might have more to do with the fact that you simply cannot have a buffer overflow in Java, period - it's completely memory-safe.

    62. Re:Why C? by ucblockhead · · Score: 1

      The point, other then to be snarky, is that while C and C++ aren't as transparently portable out of the box, they are available on far more platforms than Java. Too many people throw out "Java is more portable than C", which is only really the case if you are porting between PC platforms.

      In many ways, Java's "portability" is overblown as pretty much any VM based or interpreted language is equally portable. I'd be willing to bet that JavaScript is available on more platforms.

      --
      The cake is a pie
    63. Re:Why C? by Anonymous Coward · · Score: 0

      There are multiple systems languages that are better than C. There's Ada, there's Sing# (which is used for the singularity operating system), there is ATS and there is Go. Just because you don't know the alternatives to C doesn't mean they don't exist.

    64. Re:Why C? by improfane · · Score: 1

      How long have you been programming in the real world, for a business?

      This sounds pretty naive as it seems you are really are missing a large part of the world that depends on Java and rightfully so. Hardware changes, VMs do not, as much.

      --
      Slashdot needs Geekcode | Can anyone recommend any good SCIFI? My tastes: Foundation, Startide Rising, CITY, Ringworld,
    65. Re:Why C? by ThePhilips · · Score: 1

      Buffer overflows is the most common coding error in the most common applications - that's why they are targeted. But then it's only Windows (thanks to its monoculture) which is affected most by it. Linux or *NIX have too much variants to be an easy target for such elaborate exploit technique.

      I'm pretty sure that if Java applications become so widespread as the C ones (on desktops, on servers facing directly Internet - not only in corporate data centers) then crackers would shift their effort to Java and I'm pretty sure that they would find enough logical holes to completely bypass the unexploitable buffer handling.

      --
      All hope abandon ye who enter here.
    66. Re:Why C? by binarylarry · · Score: 1

      Probably. With practice I'm sure you'll become a better programmer.

      --
      Mod me down, my New Earth Global Warmingist friends!
    67. Re:Why C? by DarthVain · · Score: 1

      Considering your Sig, I will take that with a big grain of salt.

    68. Re:Why C? by Xest · · Score: 1

      "Well my experience in a number of different arenas suggests otherwise. JVMs consistently lag in speed, memory used and CPU utilisation compared to a compiled binaries (written in any language) not to mention I/O throughput, poor memory mapping functionality"

      Sorry, that's simply not true. I'll explain below in response to your other comment.

      "no forking, virtually non existent process control (yes , process, not thread) ability, no interprocess pipes, no tty control and in general just lame support for OS APIs."

      A lot of this is really irrelevant to the discussion, as I don't disagree if you want to do systems level stuff that Java and .NET are probably not the best options. Languages like Java and .NET language implementations abstract things away specifically so they are portable, if you need to be working with OS level APIs then you're right, Java and the likes of C# are not the tool for you, but most people do not need these things for many applications. That said, if you really do want it, there's still the option of JNI in Java and unmanaged code in C# regardless so you can still keep the unmanaged benefits where possible without the disadvantages throughout your entire codebase.

      "So you're saying it only optimises based on the type of OS, not the type of CPU. Yes , I can see how that would be better. Not."

      No, that's not what I'm saying. This is the issue again, you do not seem to understand how managed languages work and why they perform well now. The issue is this, C/C++ compilers can optimise a binary they compile only for a generic architecture, because they cannot tell what platform they will be run on. JIT compilers like those underlying Java and .NET nowadays still compile applications down to native code just like C compilers do, but as they compile JIT they can optimise for the exact machine that the application is being run on taking into account specific processor, RAM availability and so forth- they can do a much more specific set of optimisations than a C/C++ compiler. This is the reason Java performs as well as C/C++ in the vast majority of cases, and even performs better in some cases nowadays. The performance problem for managed languages is largely a solved issue nowadays.

      "And you're the typical kind of arrogant know-it-all who just goes by what he's been told rather than first hand experience. So any views you have to offer are worthless frankly IMO."

      This makes no sense, you're talking Java down with a clear lack of understanding about it, yet I'm responding to correct you precisely because I have actually got experience in multiple different languages including all those being discussed. The point is I do have first hand experience, whilst your lack of understanding about managed languages shows you simply do not.

      "Well that blows any credibility you had out the water. WHy not google the fun the London Stock Exchange had with .NET and why they eventually ditched it along with Windows."

      Ah, that's probably a bad example. LSE had .NET problems because of bad development, and not because of any inherent issue with .NET. You see, the reason I state that's a bad example, is because a few months back, the LSE ran into exactly the same set of issues with their shiny new Linux based implementation, oops-

      http://www.guardian.co.uk/business/2009/nov/26/london-stock-exchange-crashes

      Really, you couldn't have picked a worse example. Besides, I'm not doing HPC stuff at the moment, I'm using .NET simply because it fits the bill for the current projects perfectly, and because it offers the most rapid development, testing and maintenance tools for the job. I don't see how using the most sensible tool for the job blows my credibility out the water, you'd be hard pressed to justify using something like Java for the sort of work I

    69. Re:Why C? by ukyoCE · · Score: 1

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

      Change that to "large corporation intranet" apps and you might be right.

      (you might be right anyway, but I doubt it)

    70. Re:Why C? by petermgreen · · Score: 1

      Portability isn't purely or even mostly a language issue.

      The thing with java is it comes with a HUGE standard library that behaves in a pretty consistent way across platforms and is set up ready to use by the installation of the java runtime. I can easily write a networked GUI app in java and run it anywhere there is a usable j2se implementation. Other than file handling (which gets a bit messy whatever tool you use due to the fact that filesystem differences are hard to extract) it's easier to write portable java code than platform specific java code.

      With C I can write a simple text based app that monitors one thing at a time and it will be extremely portable. Beyond that things get a lot more complex and you either have to use third party portability libraries or start writing platform specific code. I don't even think there is a standard way to wait for activity on either a network socket or standard input. The standard variable types vary in size both between operating systems and between different ports of the same OS.

      Even when using those third party portability libraries (e.g. gtk/glib) getting the build process right for all platforms can still bean a PITA. I will also have to build and ship different binaries and most likely redo all my testing for each platform I want to support which is a lot of extra work to me.

      That is the difference, java encourages portable code, C makes you go out of your way to make your (non-trivial) code portable.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    71. Re:Why C? by petermgreen · · Score: 1

      In theory maybe, in practice writing "good" C code requires all of the following

      1: programmers who understands the issues
      2: programmers who are careful enough to keep the mistake count down.
      3: a tough auditing process to catch programmers who slip up (even the best programmers make mistakes from time to time).
      4: good design documents that are kept up to date to define what needs to be checked, what it should be checked against, when memory can be freed safely etc. Auditors can only do thier job if they know what to audit against.
      5: an attitude among those in charge that writing correct secure code is more important than the current crunch.

      Unfortunately history has shown that the combination of the above is very rare. If an app or library is popular, written in C and exposed to untrusted data it's almost inevitable it will suffer from this type of exploit sooner or later.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    72. Re:Why C? by petermgreen · · Score: 1

      I don't believe such a language exists.
      C++ may be a better option since you can use OOP constructs where they make sense while still doing the low level stuff.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    73. Re:Why C? by petermgreen · · Score: 1

      You're not going to be using Java or the trendy Microsoft language of the day on an Atmel AVR with 1K of flash and 64 bytes of RAM that you want to clock at 1MHz.
      With only 64 bytes of ram you probably aren't going to be using C either. When every byte matters assembler tends to be the tool of choice.

      But there is definitely a tier of microcontrollers where a higher level than assembler is desirable and C and assembler are the only options available.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    74. Re:Why C? by thoughtsatthemoment · · Score: 1

      Of course there is no silver bullet (unless you believe in strong AI). However what you described applies to any other languages and people tend to use this against only C as if other languages have magically solved the problem.

    75. Re:Why C? by Vyse+of+Arcadia · · Score: 1

      I programmed in the real world for a business for about a year and a half before going to grad school. What I learned is that the Python virtual machine is just as nice as the JVM, and there are much nicer JVM languages than Java.

    76. Re:Why C? by petermgreen · · Score: 1

      It's true that coders can and will fuck things up in any language. However there are things that language designers can do to influence both the number and the severity of fuckups.

      In Java and similar languages if the coder forgets to check a boundry or forgets to actually allocate an array or similar you get an exception. While an unanticipated exception is not ideal it is a lot better than what would happen in an older language.

      In C and similar languages where arrays aren't bounds checked and where the language will happily let you dereference an uninitialised pointer that kind of mistake leads to unrelated memory being overwritten. At best this means a crashed application butlikely it means either subtle corruption and/or an exploitable vulnerability.

      In the specific case of C things are made even worse by a couple of factors.

      1: the languages lack of a string type that manages the size of the string it contains. Programmers are therefore forced to do manually a lot of tedious and easy to fuck up string related bookkeeping that in more modern languages would be handled for them. Tedious manual processes are a recipe for mistakes.
      2: standard library routines that do it wrong both makign it difficult to use them in a secure way and setting a bad example for coders. Look at gets and sprintf for examples.

      There have been attempts to bolt extra checking onto C (google for fortify_source) but they are of limited effectiveness due to the language's design.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    77. Re:Why C? by thoughtsatthemoment · · Score: 1

      Things like sprintf do have a bad influence (there is also a good side). But the language does not prevent you from doing things differently. For example, I rolled my own sprintf-style function with strict bound checking(I wonder why similar efforts like fortify_source should have problems). If extensive string manipulation is required, C is better coded as the parser supporting a higher level format or language, like HTML/CSS/Javascript.

    78. Re:Why C? by Viol8 · · Score: 1

      "The issue is this, C/C++ compilers can optimise a binary they compile only for a generic architecture, because they cannot tell what platform they will be run on"

      Thats why you tell them. From the gcc options list:

                            i386 and x86-64 Options -mtune=cpu-type -march=cpu-type
                            -mfpmath=unit -masm=dialect -mno-fancy-math-387 -mno-fp-ret-in-387
                            -msoft-float -mno-wide-multiply -mrtd -malign-double
                            -mpreferred-stack-boundary=num -mcld -mcx16 -msahf -mrecip -mmmx
                            -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -msse4a
                            -m3dnow -mpopcnt -mabm -msse5 -mthreads -mno-align-stringops
                            -minline-all-stringops -mpush-args -maccumulate-outgoing-args
                            -m128bit-long-double -m96bit-long-double -mregparm=num
                            -msseregparm -mveclibabi=type -mpc32 -mpc64 -mpc80 -mstackrealign
                            -momit-leaf-frame-pointer -mno-red-zone -mno-tls-direct-seg-refs
                            -mcmodel=code-model -m32 -m64 -mlarge-data-threshold=num
                            -mfused-madd -mno-fused-madd

      If performance is critical you get familiar with at least some of these options.

      "but pretending they're still the best language for the majority of circumstances nowadays? That's insane."

      I'm not. But you were saying that they're not the best for anything, which is also clearly insane. I still say that for time critical realtime systems compiled binaries are the best. I really don't need a JVM suddenly deciding to do garbage collection if 10 milliseconds makes the difference between a good and bad price on the trading floor for a trade that was about to be processed.

    79. Re:Why C? by dgriff · · Score: 1

      The difference in speed is likely to be less than 10%. Quite a lucky coincidence don't you think that the amount of information you have to process is exactly equal to the processing power of your machine?

    80. Re:Why C? by Xest · · Score: 1

      "Thats why you tell them."

      So you compile and release separate binary for every single processor, RAM and other hardware combination which your application might run on? That's an awful lot of binaries to compile and distribute simply to get the same performance benefits that JIT compilation can provide.

      "I'm not. But you were saying that they're not the best for anything, which is also clearly insane."

      It is insane, but then, you're also wrong that I ever said that. I made it quite clear throughout (and think I brought it up in each of my posts in fact) that C and C++ are well placed for some things- I'd never write a device driver in Java for example. One example of a project I worked on in the past is a distributed network monitoring tool, we looked closely at Java because we'd be monitoring from Windows and Linux boxes with the tool, but Java's support for low level networking (raw sockets, and protocols like ICMP) wasn't acceptable, and so we went with C++. I fully recognise that Java does not always offer the solution, and that sometimes C or C++ are the best option, but this is what I've been getting at all along- use the best tool for the job.

      "I still say that for time critical realtime systems compiled binaries are the best."

      But that's exactly what modern VM based languages are, they're compiled to native code the first time they run.

      "I really don't need a JVM suddenly deciding to do garbage collection if 10 milliseconds makes the difference between a good and bad price on the trading floor for a trade that was about to be processed."

      You can tame the garbage collector fairly easily in Java to work with you as you want it to, in .NET you can even explicitly manage garbage collection.

      I'm really not trying to be nasty about C/C++, but most of the misconceptions about managed languages today are based on lack of understanding about how far these sorts of languages have come in the last 10 years. As I've said elsewhere before, this is really the same as what we've seen when languages like C came along and all the assembly programmers were making similar comments about how C can't ever be as good as assembly for some tasks- well, as it turns out, C compilers got better than most assembly programmers in the end but also allowed much faster development of much bigger, better, more impressive applications, so yes they can. It doesn't mean assembly programmers are useless even now however, but just as with C/C++ it's useful remit is shrinking as new languages and technology take to the floor a bit more- even embedded devices which used to purely be the realm of assembly developers now generally support higher level languages better for example. It's not as if Java and .NET wont end up being displaced sometime in the future either, it's really just the way things move on that's all.

      As I say, personally C/C++ have a special place for me, and I really have a lot of respect for C/C++ developers because of this, there's a certain beauty to those languages that's hard to explain. One point of concern that I see is that we end up with the opposite situation which does seem to happen all too often, particularly amongst modern graduates- we get people who know Java/.NET but who don't know C/C++ and end up trying to use Java where as we both agree, it's not always appropriate, places where C/C++ are in fact the best option. I do agree that there absolutely is a place for C/C++ development, I just disagree that it's as widespread as it once was and feel that Java has demonstrated itself well enough in many real world scenarios from eBay to the NYSE, to mobile devices, to various HPC centres across the globe to take on many of the roles that used to be reserved for C/C++.

    81. Re:Why C? by Nizumzen · · Score: 1

      Sorry, but Java is most certainly not write once, run anywhere. Especially when you try and run the Java code on a different Java VM implementation. What you really mean is, write once, run on the same Java VM implementation anywhere.

    82. Re:Why C? by Viol8 · · Score: 1

      10% is a lot of extra electricity and its always nice to have some headroom to play with for those really busy days. And why spend a fortune on faster machines and not use them to their full potential?

    83. Re:Why C? by Anonymous Coward · · Score: 0

      Interestingly, I feel that Objective-J is becoming the language that Java wanted to be.

      Its core framework, Cappuccino, is heavily inspired by Cocoa, the framework of choice for Mac development. Based on Javascript, it is able to run anywhere you have a Javascript interpreter (i.e. a web browser) and with its strong ties to Objective-C, it can easily be translated into a native executable built under Cocoa on the Mac, Cocoa Touch on iPhone OS, and Cocotron and GNUStep on Windows and Linux.

      Not only can you write once and run anywhere (that there is an interpreter), but you can also write once and compile anywhere.

    84. Re:Why C? by mini+me · · Score: 1

      Fact is, a higher level language like Java is just faster to program in, and for a basic application it's more than fast enough. But we'll never lose C, at least because all these higher-level fancy applications need to run on something, and nobody wants to write that "something" in straight assembly.

      Therein lies the beauty of Objective-C. You have a high level dynamic message passing language (not unlike Ruby) that has most of the modern features one comes to expect from a programming language and allows for the rapid development you speak of, and yet at the same time it is C and can do everything that C can do without compromise.

      Objective-C is certainly not the right tool for every job, but it does go to show that you do not have to compromise high level conveniences for low level access.

  9. More mention of C by 3seas · · Score: 1
    1. Re:More mention of C by Anonymous Coward · · Score: 1, Insightful

      Aye. I wish more technical books drew inspiration from The C Programming Language.

    2. Re:More mention of C by Animats · · Score: 4, Interesting

      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.

    3. Re:More mention of C by khoonirobo · · Score: 1, Insightful

      If shortness of documentation was the sole metric for language popularity, shouldn't we all be programming in Brainfuck - http://www.muppetlabs.com/~breadbox/bf/

    4. Re:More mention of C by Darinbob · · Score: 1

      And then they messed up all that brevity with ALGOL-68...

    5. Re:More mention of C by Anonymous Coward · · Score: 0

      About as useful a comment as saying a dictionary of a 1000 pages means the language is of little value

    6. Re:More mention of C by Anonymous Coward · · Score: 0

      I can define a language without the means of input or output in 19 characters, if you like. (If a program halts in a forest, blah, blah, blah)

    7. Re:More mention of C by Anonymous Coward · · Score: 0

      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.

      Actually the K&R book is 272 pages (including index)... and if a language can be transcribed to 19 pages of text it's obviously lacking...

    8. Re:More mention of C by Anonymous Coward · · Score: 0

      Languages which need 1000-page books are badly designed.

      Ah, so you've seen the C++ standard, too.

    9. Re:More mention of C by jhol13 · · Score: 1

      Was about to say the same.
      Besides documentation for the libraries are thousands of pages long (for any modern language), so the point is totally irrelevant.

    10. Re:More mention of C by Anonymous Coward · · Score: 0

      Scheme kept the spirit alive... Check out "R4RS" which was current when I was in university. Revised 4 Report on Scheme...

      The standard joke was that the entire Scheme specification was shorter than the index to the Common Lisp specification.

    11. Re:More mention of C by Anonymous Coward · · Score: 0

      You're not saying the K&R book is 1000 pages, are you? Mine is 261 pages.

    12. Re:More mention of C by shutdown+-p+now · · Score: 2, Insightful

      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.

      It's strictly a language spec, though, not a book explaining "why" as well as "what".

      By modern standards, it's still somewhat underspecified. Especially in parts such as computed gotos, but there were a few other bits as well - which is why they needed Modified Report on the Algorithmic Language Algol 60, the rationale for which is:

      Meanwhile, various defects have been noted in the language definition which have unnecessarily hindered the use of ALGOL. Although the existence of subsets has given some assistance to the compiler-writer and user of the language, numerous problems exist, some of which were noted in the Revised Report.

      Hence the need for a detailed commentary and standard interpretation has become apparent. Such a commentary is now available, defining the modifications necessary to produce this Report from the Revised Report.

      Finally, it describes a language which didn't have an extensible type system, didn't have pointers, had only 4 basic types (integer, real, Boolean, label) and arrays and procedures thereof, and didn't even have strings as first-class values (yeah, you had "text" type, but you could only produce values of it from string literals and pass it around - no operations on strings at all; you can't even read a string from standard input!).

    13. Re:More mention of C by rolando2424 · · Score: 1

      I'd rather use Malbolge

      --
      Okay seriously I've just run out of pointless things to say.
  10. But what about Johnny Mathis versus Diet Pepsi? by wandazulu · · Score: 2, Insightful

    Seems about as relevant as ranking programming languages to their popularity. Does the fact that C is #1 mean I should start writing my websites with it (I've done it, actually...and it was extremely fast and extremely painful)?

    I don't see how this metric has any use at all, especially given their criteria for determining popularity.

    1. Re:But what about Johnny Mathis versus Diet Pepsi? by glwtta · · Score: 1

      I don't see how this metric has any use at all, especially given their criteria for determining popularity.

      Oh, I don't know, might give you a hint as to where the jobs are, for one thing?

      Can't speak to their methodology (it does sound pretty sketchy, though).

      --
      sic transit gloria mundi
    2. Re:But what about Johnny Mathis versus Diet Pepsi? by pnewhook · · Score: 1

      You shouldn't use C to write web pages any more than I should use PHP and HTML to write my 3D OpenGL programs.

      Use the right tool for the job. There is no one fits all.

      --
      Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
    3. Re:But what about Johnny Mathis versus Diet Pepsi? by Anonymous Coward · · Score: 4, Funny

      I write ISAPI filters to serve up WebGL enabled sites you insensitive clod!

    4. Re:But what about Johnny Mathis versus Diet Pepsi? by Anonymous Coward · · Score: 0

      I never understood the sentiment WRT writing web apps in C being a bad thing. Ususually higher level languages or frameworks are in order for any non-trivial programming endeavour. If your writing a game your first thought is most likely not going to be ..hey you know what I think I'll write my own SDL, sound, shader, OpenGL libraries and a drawing/modeling package while I'm at it. Its generally not the choice of language that matters its what you do with it that is the important thing. If your task is best accomplished using a high level configuration or description language then thats what you should do.

    5. Re:But what about Johnny Mathis versus Diet Pepsi? by VTI9600 · · Score: 1

      Does the fact that C is #1 mean I should start writing my websites with it

      Actually, yes! According to TFA, the TIOBE index is an excellent resource for making "a strategic decision about what programming language should be adopted when starting to build a new software system"

      Too bad common sense isn't mentioned.

    6. Re:But what about Johnny Mathis versus Diet Pepsi? by Anonymous Coward · · Score: 0

      Extremely painful? Did somebody punch you whilst programming?

    7. Re:But what about Johnny Mathis versus Diet Pepsi? by marcosdumay · · Score: 1

      "might give you a hint as to where the jobs are"

      It doesn't. Ok the languages you expected to see there are there, but others with no jobs offering at all are at the top too. Let's be honest here, the article is just an excuse for a language flame war. We are missing those at /. lately.

    8. Re:But what about Johnny Mathis versus Diet Pepsi? by marcosdumay · · Score: 1

      After all said, I still expect you to choose a language that knows about strings when doing web development. Well, SEGFAULT will select the developers that don't.

    9. Re:But what about Johnny Mathis versus Diet Pepsi? by pnewhook · · Score: 1

      ISAPI filters. How quaint!

      --
      Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
  11. Woah! by IceCreamGuy · · Score: 1

    Check out the graph for Perl! I might start using it again just because I feel like I owe it to the old friend...

    1. Re:Woah! by Abcd1234 · · Score: 1

      Meh, it still use it. I could switch to, say, Python, but I have very little reason to... Python doesn't buy me anything (I'm actually capable of writing clean, maintainable Perl), and so there's little point in investing time in yet-another-scripting-language. And it's hard to give up the vast resource that is CPAN.

      Nah, if I'm gonna expend effort to learn a language, I'd rather it be something actually innovative, like Haskell.

  12. X is the new Y by michaelmalak · · Score: 1
    C is the new COBOL.

    Back in the Bush I recession, COBOL was the hip language to learn.

    1. Re:X is the new Y by mirix · · Score: 1, Insightful

      Nah, nothing can touch C for use on bare metal, and drivers and other lowish level stuff... especially embedded systems.

      --
      Sent from my PDP-11
    2. Re:X is the new Y by Sulphur · · Score: 1

      Later the recession ended.

      --

      When I was young, the girls would walk by and smile; now they laugh. W. Clarke Wescoe

    3. Re:X is the new Y by Hognoxious · · Score: 1

      Later the recession ended.

      The great news is, it's back! This time with extra debt burden!

      We should call it recession 2.0 - it has a catch ring to it.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    4. Re:X is the new Y by Lunix+Nutcase · · Score: 2, Funny

      You mean other than assembly?

    5. Re:X is the new Y by mirix · · Score: 2, Funny

      Yeah, other than assembly is implied ;-)

      I do not want to write drivers in asm... ughhh.

      --
      Sent from my PDP-11
    6. Re:X is the new Y by vlm · · Score: 1

      C is the new COBOL.

      Nahh. Java is the new COBOL.

      Think about it:

      1) Hyper-verbose.

      2) So much effort in designing it to be "easy" and "clear", that its impossible to use for applications it wasn't designed for. The stuff they simplified is too simple, the tough-stuff resembles line noise.

      3) Not used much outside of MIS departments.

      4) Trade schools teach it, as a trade. Folks getting an "education" learn something else, or at best take a class in it to widen their horizons. Nuff said.

      5) Every time someone points out no one uses it anymore, the graybeards snap their suspenders and make comments about how much business is done using it by listing companies that they haven't noticed went out of business 5 years ago, which inevitably drifts into reminisce about how it ruled the world back when dinos roamed the earth etc.

      6) Dad probably used it at work, and you know how teenagers love to be a rebel.

      7) Well, everybody uses it for database driven apps, don't we?

      8) Dead/moribund in the open source world, at least compared to C.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    7. Re:X is the new Y by Anonymous Coward · · Score: 0

      I do not want to write drivers in asm... ughhh.

      I dont want to write drivers in C... ughhh

      I dont want to write drivers in C++... ughhh

      I dont want to write drivers in Java... wait.. I cant and neither can you!

    8. Re:X is the new Y by tengwar · · Score: 1

      Bah, you kids can get off my lawn!
      Back in the days of CP/M, we had to write Z80 code with an 8080 assembler, which meant that a good part of the time we had to hand-assemble code, and splice it in with DB statements because the assembler didn't understand the opcodes.
      After that, K&R C was a blessed relief - and I don't mean this modern namby-pamby ANSI C with function prototypes and argument type checking.

    9. Re:X is the new Y by marcosdumay · · Score: 1

      Numbers 5 and 6 aren't true yet. But the thing is number 7... One'd expect database driven programing to be done on a language that understands databases from the back of their hearts, like earlier web programing was done on Perl (that understended strings), and current is migrating to ASP like languages, like PHP, that understand HTML. I know of no language that does that today.

  13. Re:Java is crap anyway by tomhudson · · Score: 3, Insightful
    So code it in c and then have someone else port it to java if you need a portable version ... problem (kind of) solved ...

    FTFA:

    Finally, we have also excluded assembly languages, although Turing complete, because they have a very different nature.

    Philistines! Heathens! There is nothing more beautiful than a good piece of assembly code.

  14. The Ultimate Language! by ArcadeNut · · Score: 1

    Is naturally, LOGO!

    --
    Visit the Arcade Restoration Workshop @ http://www.arcaderestoration.com
    1. Re:The Ultimate Language! by Darinbob · · Score: 2, Funny

      The ultimate imperative language is, of course, Klingon.

  15. Re:Java is crap anyway by mirix · · Score: 1

    And nothing more nightmarish than bad assembly.

    --
    Sent from my PDP-11
  16. pythons rating graph by Maglos · · Score: 1

    I am curious if anyone has any insight on what happened in 2004 to cause such a spike in python's "Rating". http://www.tiobe.com/index.php/paperinfo/tpci/Python.html

    1. Re:pythons rating graph by randallman · · Score: 1

      Probably Turbogears, Django and the other web frameworks that were springing up at the time.

  17. Re:Java is crap anyway by Gr8Apes · · Score: 3, Informative

    And nothing more nightmarish than bad assembly.

    Have you seen a thorough Spring implementation?

    --
    The cesspool just got a check and balance.
  18. No... by Killer+Eye · · Score: 2, Insightful

    Job listings don't mean very much.

    Employees that are very happy with a language, and productive in it, might keep their jobs for years; you may never even know that their companies were using that language. One productive employee might do the job of 10 people in some other language, and maybe that's why they aren't hiring.

    Some job postings only made me cringe when I saw them, and many make me think to myself: "all-Microsoft shop, never heard of what X, Y or Z can do". Just because there's a job available, doesn't mean the language is popular; it might even mean the opposite, i.e. all the sane people jumped ship months ago, instead of trying to maintain a steaming pile of code, that a company is now desperately trying to hire people to support.

    Don't ever learn one of the stupid programming languages just to get a job. Do something you enjoy...make money without programming if you have to, for awhile, until you find a job that requires languages and platforms that you actually like and can be productive in. Nothing else is worthwhile.

    --
    "Microsoft killed my company, I hold a personal grudge. I don't use Microsoft products and neither should you."-JWZ
  19. Re:Java is crap anyway by binarylarry · · Score: 1

    Yes, Spring architecture is fantastic. There's a reason why VMWare paid so damn much for it.

    --
    Mod me down, my New Earth Global Warmingist friends!
  20. It takes a good programer to apprieate C by thoughtsatthemoment · · Score: 3, Interesting

    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.

    1. Re:It takes a good programer to apprieate C by Maglos · · Score: 1

      Perfect would be Python with the speed of well crafted assembly, optional gui tools of C#/objective-C, ease of deployment of PHP/JavaScript/J2EE and better Vim integration. I suppose Python's libraries could be a little more consistent.

    2. Re:It takes a good programer to apprieate C by FlyingGuy · · Score: 1

      Python is a C wrapper with the absolutely moronic idea that white space is an appropriate closing curly brace.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    3. Re:It takes a good programer to apprieate C by daver00 · · Score: 1

      Python is a C wrapper with the absolutely moronic idea that white space is an appropriate closing curly brace.

      Why is it a moronic idea? Space is a valid character, as is a curly. Curlies add line noise, whitespace is much more readable. Its a plus in that code becomes more readable, I guess it adds some ambiguity so thats a minus, a net nothing then. But only if you actually make the effort to not care about how you write your code. Seriously, use four standard spaces instead of a tab and you will be sweet, if your IDE can't do this, then maybe you should try a better one.

      So why is it a moronic idea?

    4. Re:It takes a good programer to apprieate C by achurch · · Score: 1

      So why is it a moronic idea?

      It enforces a certain style on everyone who uses it, which decades of style wars (centuries, if you look at human languages) say is a Bad Idea.

      Just one example: When I want to try something out in a routine -- perhaps for debugging, perhaps to experiment with an alternate algorithm or what have you -- I frequently outdent the code so that its temporary nature is obvious: (pretend the underscores are spaces, because Slashcode seems to eat leading whitespace)

      foo() {
      ____for (int i = 0; i < length; i++) {
      ________printf("Sorting #%d...\n", i);
      if(1) new_sort(array[i]); else
      ________sort(array[i]);
      ____}
      }

      Python won't let me do that, which I find to be a significant source of frustration.

    5. Re:It takes a good programer to apprieate C by MemoryDragon · · Score: 1

      it breaks auto indentation

    6. Re:It takes a good programer to apprieate C by khchung · · Score: 1

      Unfortunately, it also takes a good programmer (in nowadays standard) to NOT make a hopeless mess in C.

      The biggest advantage of Java is even the average programmer can write something useful, and usually not so bad that a good programmer cannot fix later, if needed, without a complete rewrite.

      For bad programmers, they can make a hopeless mess out of anything, so it doesn't matter what language they use.

      --
      Oliver.
    7. Re:It takes a good programer to apprieate C by OneSmartFellow · · Score: 1

      Define the white-space characters. space, horizontal tab, vertical tab, line feed, form feed. (what about carriage return?) Oh, but wait, there might be another definition. Any non printable character (e.g. !isgraph() - hmm, isgraph has an exception for the space character, D'Oh! ) Understand why whitespace as a control construct is idiotic now ?

    8. Re:It takes a good programer to apprieate C by dkleinsc · · Score: 2, Interesting

      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.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    9. Re:It takes a good programer to apprieate C by Waffle+Iron · · Score: 1

      So outdent a comment instead:

      ##__map(sort, array)
      ____map(new_sort, array)

    10. Re:It takes a good programer to apprieate C by Abcd1234 · · Score: 1

      Ahh... I see your problem.

      You see, Guido is right.

      You're wrong.

      Don't worry, you'll get it eventually. :)

    11. Re:It takes a good programer to apprieate C by Maglos · · Score: 1

      personally I like pythons introspection and meaningful error messages. Oh and lack of compile complexities, actually I could probably go on for a while. I also use space delimiting folding in Vim, which is quite natural with python. the tabs do encourage you to break up your code, but personally, I see this as a good thing. if you have code nested 5-10 deep, its probably pretty ugly. And python isn't about being fast, its about not being ugly.

    12. Re:It takes a good programer to apprieate C by marcosdumay · · Score: 1

      Python could use some encapsulation.

    13. Re:It takes a good programer to apprieate C by shutdown+-p+now · · Score: 1

      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.

      This coming from an experienced C++ programmer, I'm surprised. Do you enjoy writing all those explicit returned error code checks, or all the gotos necessary to avoid repeating several lines of cleanup code every time?

    14. Re:It takes a good programer to apprieate C by Kymermosst · · Score: 1

      (pretend the underscores are spaces, because Slashcode seems to eat leading whitespace)

      Which is precisely why using whitespace as syntax is a bad idea.

      --
      "Alcohol, Tobacco, Firearms, and Explosives" should be a convenience store, not a government agency.
    15. Re:It takes a good programer to apprieate C by spitzak · · Score: 1

      I (and I assume a lot of other programmers) use an editor with auto indentation so this is almost impossible to edit. What I usually do is surround the temporary code with "#if 1" and "#endif" which can be left at the left margin.

      I do admit that Python, though much more readable, is a bit harder to write. I use auto-indentation for both.

    16. Re:It takes a good programer to apprieate C by thoughtsatthemoment · · Score: 1

      Those were my concerns too. But explicit returned error code is generally better than exceptions in my experience, and of course a debate about this would hijack this thread. Oh wait, Python did that already. cleaup doesn't have to done on the function level. If all related data is part of a structure and you have a function that can clean up a partially built structure, the cleaup is essentially centralized.

    17. Re:It takes a good programer to apprieate C by daver00 · · Score: 1

      You mean we should be able to parse our code through arbitrary html forms? Why?

    18. Re:It takes a good programer to apprieate C by daver00 · · Score: 1

      Firstly, vertical white space carries no meaning, so thats a red herring. Secondly, Python defines the block delimiter as the first bit of whitespace it encounters in your script, all following indents must adhere to the first one you used. So there is consistency, provided you can do something so simple as remember how many times you pressed the spacebar, or set your auto-indent to use the standard 4 single spaces.

    19. Re:It takes a good programer to apprieate C by daver00 · · Score: 1

      I use Eclipse with Pydev and Visual Stuio with IronPython, both of these have auto-indent working perfectly with Python, as does Idle and probably every other text editor/ide. This is just simply incorrect.

    20. Re:It takes a good programer to apprieate C by daver00 · · Score: 1

      Thats it? You are that inflexible that you balk at your *style* changing?

      How about this: I HATE that C enforces style on my code by forcing me to wrap code blocks in curly braces. Why should I have to use curly braces in my code??

      See how stupid that argument is?

    21. Re:It takes a good programer to apprieate C by Kymermosst · · Score: 1

      That's not quite what I meant.

      I am suggesting that because many systems/programs/processes treat whitespace as arbitrarily reformattable content, problems can be encountered. Once the whitespace is messed up, it is difficult to put it back together again because there are no other contextual hints.

      Slashdot's code tag is just one example. I've also seen Outlook chew up whitespace.

      Curly braces or functional equivalents are essentially unambiguous in any context and are almost never treated arbitrarily like whitespace is.

      --
      "Alcohol, Tobacco, Firearms, and Explosives" should be a convenience store, not a government agency.
    22. Re:It takes a good programer to apprieate C by achurch · · Score: 1

      That's it? You are that inflexible that you balk at eating cowpies?

      Sorry, couldn't resist. (: But you might try studying a bit of history to see how well that "style doesn't matter, so use mine" argument works. (Hint: Style comes from taste, and people's tastes differ.)

    23. Re:It takes a good programer to apprieate C by achurch · · Score: 1

      Ah, the classic case of the brainwashed devotee.

      Hm? Oh, never mind, just mumbling to myself. You're absolutely right, and I don't see how I could have possibly thought otherwise. Please, feel free to go on about your business. (:

    24. Re:It takes a good programer to apprieate C by FlyingGuy · · Score: 1

      Because we are visual creatures. If we weren't then the GUI would not have been invented.

      As some other posters have noted it removes flexibility. I like another poster frequently throw stuff against the left margin so that I visually know it is something that I am experimenting with or testing and mean to delete at a later point.

      And personally I like my tabs to be 8 spaces most of the time, thank you very much.

      An appropriate visual block closing symbol allows me to glance and know it is the end of the block. White space is called white space for a reason, it is inherently non-visual and blends right into the background. This is not conducive to being able to tell at a glance where my block closes.

      And it is just a guess but I am pretty sure whoever came up with this did so purely as a gimmick to try and make Python stand out from the rest of the scripting languages.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    25. Re:It takes a good programer to apprieate C by achurch · · Score: 1

      Interesting; I hadn't considered the possibility of allowing one's source code editor to enforce indentation. (Not necessarily disparaging that idea, but I keep it optional, because I've found from lengthy experience that there's never One Way that works for every possible case.) I wonder if that sort of editor was one of the factors in developing Python's syntax? Certainly, if your editor enforces certain indentation rules, then there's not much harm in making use of the information encoded by that indentation.

    26. Re:It takes a good programer to apprieate C by achurch · · Score: 1

      I suppose that's another option, but to my eye it makes the wrong line stand out. It also only works if there's an old line to be commented out in the first place, as opposed to just a new line being added, e.g.:

      ____//...
      int a=time(NULL);
      ____sort(array[i]);
      printf("%d\n",time(NULL)-a);
      ____//...

      Thanks for the suggestion, though.

    27. Re:It takes a good programer to apprieate C by Abcd1234 · · Score: 1

      Note to self, next time, include sarcasm tags...

    28. Re:It takes a good programer to apprieate C by daver00 · · Score: 1

      I think that, given the context you would be aware, I mean I think its kind of obvious that if you want to use something that chews up whitespace, Python is not the tool. The question is, does this make Python a bad tool? And the answer is most assuredly no. I think its rare and unambiguous when you are dealing with a situation where whitespace will be messed up, but otherwise, like when your file is just sitting on your OS and maybe being run from time to time, I think you are safe. Given this context, Python is an exceptional tool for what it does, and a complaint about its semantics isn't really a complaint about the merits of the language.

    29. Re:It takes a good programer to apprieate C by daver00 · · Score: 1

      Hint: Style comes from taste, and people's tastes differ.

      But thats exactly what I mean, that means that criticizing Python for its style is a silly argument, its not really pointing out an inherent flaw in the language its just proclaiming loudly that it doesn't suit your taste.

    30. Re:It takes a good programer to apprieate C by Kymermosst · · Score: 1

      True enough.

      --
      "Alcohol, Tobacco, Firearms, and Explosives" should be a convenience store, not a government agency.
    31. Re:It takes a good programer to apprieate C by achurch · · Score: 1

      Bleah. That was embarrassing. (Though maybe it indicates why I'm good at programming -- I tend to read things literally...)

  21. Re:Java is crap anyway by Culture20 · · Score: 5, Funny

    And nothing more nightmarish than bad assembly.

    (I (disagree (there (is (a (missing) (parenthesis (somewhere)) in)) (your Lisp code)))

  22. C-whatever by NicknamesAreStupid · · Score: 5, Interesting

    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.

    1. Re:C-whatever by Anonymous Coward · · Score: 0

      That's a good comparison. Like the queens english, C is becoming outdated - people want to do more with less (code). I think it's the equivalent of the evolution of smileys and lolz :)

    2. Re:C-whatever by Anonymous Coward · · Score: 0

      I date myself.

      A lot of Slashdotters do!

    3. Re:C-whatever by Anonymous Coward · · Score: 0

      Ah, yes, the proper programming language first taught (in K&R) with one-letter variable names everywhere, and address arithmetic. That's nothing worthy of royalty. C is fine for hacking a kernel or OS utilities, but totally inappropriate for modern applications (even 20 years ago it was dinosaur stuff). Languages like Smalltalk, Lisp, and even Java and Python are worlds more elegant. It's because programmers love their dangerous and primitive dinosaur language (least common denominator). As a consequence, we still have to deal with buffer overflows and other stupid problems that should have been fixed decades ago.

    4. Re:C-whatever by Slur · · Score: 1

      Amusingly enough, the interpreters/compilers for all those languages were originally developed in C and/or C++.

      --
      -- thinkyhead software and media
    5. Re:C-whatever by FlyingGuy · · Score: 4, Interesting

      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.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    6. Re:C-whatever by FlyingGuy · · Score: 3, Insightful

      It's because programmers love their dangerous and primitive dinosaur language (least common denominator). As a consequence, we still have to deal with buffer overflows and other stupid problems that should have been fixed decades ago.

      You could not be more wrong on both counts. As to the rest of your post, there is nothing elegant about Java and Python is just a bit of stupidity that someone wrote and passed it off as a scripting language.

      No Programmers love the simple elegance of C. C is a masterwork, it is subtle, it is sublime.

      Buffer overflows are caused by lazy and stupid programmers abusing a simple an elegant language that has all the power you need to prevent buffer overflows by simply taking the small step to bounds check your buffer as you proceed to willy-nilly stuff data into it.

      Java is a crutch for those that cannot find the time to write something correctly. There are major works written in C that will compile on ANY platform with a C compiler and the standard libraries. If you write your code to the ansi C standard it will compile anywhere. That is the design of a portable language and you end up will small, efficient and fast executables.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    7. Re:C-whatever by Lunix+Nutcase · · Score: 4, Informative

      Amusingly enough, the interpreters/compilers for all those languages were originally developed in C and/or C++.

      It would have been rather hard for the original Lisp compiler to be written in C since it predates the existence of C by almost a decade. Not to mention how for a decade or more that Lisp was pretty much running only on Lisp machines that were built to natively execute Lisp code. And most of the original Smalltalk implementations were also not written in C.

    8. Re:C-whatever by grumbel · · Score: 1

      It's because programmers love their dangerous and primitive dinosaur language (least common denominator).

      I think the real issue is simply that C (aside from Ada and C++) is basically the only language that lets you do low level stuff. If you use Python, Java or whatever you are too far away from the metal to do the interesting stuff. Also lots and lots of libraries are in C, you can use them from another language, but then you are stuck with wrapper code of varying quality. C is the language that doesn't need wrappers and stuff to work, it "just works". Which of course might not be much of a good argument to continue to use C, as you could use different languages for different parts of your application, but I still find it quite annoying that none of the "advanced" languages has bothered to allow the user to do what C can do.

    9. Re:C-whatever by Lunix+Nutcase · · Score: 1

      Buffer overflows are caused by lazy and stupid programmers abusing a simple an elegant language that has all the power you need to prevent buffer overflows by simply taking the small step to bounds check your buffer as you proceed to willy-nilly stuff data into it.

      So according to this logic every C programmer must be lazy and stupid because you can not find a single, non-trivial program or OS kernel, etc that has been immune from even a single buffer overflow or null pointer problem.

    10. Re:C-whatever by Lunix+Nutcase · · Score: 4, Insightful

      If you use Python, Java or whatever you are too far away from the metal to do the interesting stuff.

      That's because they are specifically designed to abstract away the computer hardware.

    11. Re:C-whatever by grumbel · · Score: 1

      Buffer overflows are caused by lazy and stupid programmers...

      And also by lazy and stupid language designers it seems, just look at gets(). The problem with C is that you can only avoid buffer overflows in theory, in practice on the other side basically all C applications have suffered from it and only after years and years of fixing security leaks the number of errors goes down. Having a standard library that is full of functions that make it trivial to introduce buffer overflows of course doesn't help either.

    12. Re:C-whatever by martin-boundary · · Score: 2, Funny

      But at least FORTRAN was written in C! Right? Right?

    13. Re:C-whatever by FlyingGuy · · Score: 1

      Yeah... Null pointer problems are NOT caused by the language but by the programmer and please don't try and dispute that because that is simply a fail from the start.

      And no, there are LOTS and LOTS of programmers who know how to write code wherein they do not blindly dereference pointers and assume something is there and let it fly.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    14. Re:C-whatever by FlyingGuy · · Score: 1

      gets() is not a language, gets() is a function, in the stdio lib. Sheesh.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    15. Re:C-whatever by MemoryDragon · · Score: 0

      Actually Oberon is written in Oberon, it is just compiled into binary code of the target platform, but the entire oberon system is self hostet and within its language written.

    16. Re:C-whatever by Philip_the_physicist · · Score: 2, Interesting

      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.

    17. Re:C-whatever by K.+S.+Kyosuke · · Score: 1

      Amusingly enough, the interpreters/compilers for all those languages were originally developed in C and/or C++.

      Uhm, not true. The original Smalltalk and Lisp implementations were written in Smalltalk and Lisp, respectively, and their compilers emitted instructions for specialized Smalltalk and Lisp CPUs - these were basically almost-VMs with even high-level operations microcoded, including type tags for memory cells and typechecking implemented in hardware, and with some GC support in HW. Later implementations had either a small C kernel for memory access primitives, GC and process management (typically Lisp), or used some other way to avoid C, such as the Squeak VM generator - the authors of Squeak explicitly did *not* want to hack C when they could hack Smalltalk, so they wrote the Smalltalk VM in Smalltalk, debugged it, tested it, and then they wrote a restricted-Smalltalk-to-C translator, not unlike the one that PyPy uses these days. So the lower layers of modern implemenetation? Some of them, perhaps. But the compilers were *never* written in C. Why would anyone do such thing?

      --
      Ezekiel 23:20
    18. Re:C-whatever by K.+S.+Kyosuke · · Score: 1

      That's because they are specifically designed to abstract away the computer hardware.

      That's a rather poor excuse. Languages like Forth or Factor or Lisp actually let you do absolutely everything, from high level DSLs down to low-level coding, including peeks and pokes and CPU port access and custom runtime native code generation, whatever you want, as long as you understand the part about the demons and your nose.

      --
      Ezekiel 23:20
    19. Re:C-whatever by Chris+Mattern · · Score: 1

      Um, what? No. All those languages are, in fact, OLDER than C.

    20. Re:C-whatever by dargaud · · Score: 1

      Is there a list somewhere of languages that can compile themselves ? I'm actually surprised that the perl interpreter is not in perl, with all this talk about its grammatical power...

      --
      Non-Linux Penguins ?
    21. Re:C-whatever by Anonymous Coward · · Score: 0

      If C is the Queen's English, then Lisp is Latin.

    22. Re:C-whatever by Anonymous Coward · · Score: 0

      It would have been rather hard for the original Lisp compiler to be written in C since it predates the existence of C by almost a decade. Not to mention how for a decade or more that Lisp was pretty much running only on Lisp machines that were built to natively execute Lisp code. And most of the original Smalltalk implementations were also not written in C.

      Can I say: "Assembler"

    23. Re:C-whatever by Anonymous Coward · · Score: 0

      I don't see it that way, at least for Python.
      The idea as always been to do the "interesting stuff" (i guess the OP meant bare-metal) through a library written in C, by you or someone else, and use the developper friendly features of the language to get away with the "glue stuff" quickly.

      For example the numpy library allows for pretty fast math operations, so you can build a not-that-much-slower-than-C calculus intensive app with Python a lot faster / cleaner that you could've done with C.

      Basically with python you do the "interesting stuff" in a neat C module, then you can hack the "boring stuff" in Python painlessly.

    24. Re:C-whatever by Viol8 · · Score: 1

      The original compiler was probably written in C or C++ though.

    25. Re:C-whatever by dunkelfalke · · Score: 1

      No Programmers love the simple elegance of C. C is a masterwork, it is subtle, it is sublime.

      It is subprime, to be honest. In C most conditions look like an ugly mess of braces and special characters, 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), lack of sets, undefined behaviour (a computer language allowing female logic is just what the world needs), zero-terminated strings (downright evil) and so on.

      Simple elegance is something like Lua, but definitely not C.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    26. Re:C-whatever by Eharley · · Score: 1

      Probably Pascal and assembly.

    27. Re:C-whatever by Abcd1234 · · Score: 1

      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.

      I'm sorry, but that's just deeply idiotic reasoning. By your logic: Every language compiler was once written in C. Every C compiler was once written in assembly language. Every assembler was once written in machine code. Therefore every programming language that has ever and will ever exist is written in machine code.

      Do you see how stupid this is?

      If we ignore that bit of silliness, there are plenty of languages that are self-hosting (ie, written in themselves). Haskell immediately comes to mind, but I'm certain there are many others (I'm just too lazy to go and find them).

    28. Re:C-whatever by Abcd1234 · · Score: 1

      If you use Python, Java or whatever you are too far away from the metal to do the interesting stuff.

      You have an interesting definition of interesting...

      See, mine is that you get to solve cool problems in innovative ways.

      Yours, apparently, is that you get to fuck around with pointers. Woo, awesome.

    29. Re:C-whatever by Lord+Ender · · Score: 1

      Pick just about ANY language out there, go ahead pick any one of them. It was written in C or C and Assembler

      Groovy (written in Java).

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    30. Re:C-whatever by FlyingBishop · · Score: 1

      Perl is great for turning malformed data into well-formed data. The Perl interpreter turns malformed data into malformed code.

      (I say this as someone who likes Perl, but the point is that Perl lets you clean stuff up, and a properly parsed Perl program is not clean.)

    31. Re:C-whatever by Matt+Perry · · Score: 1

      If you use Python, Java or whatever you are too far away from the metal to do the interesting stuff.

      Only for limited definitions of interesting.

      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    32. Re:C-whatever by epine · · Score: 1

      So according to this logic every C programmer must be lazy and stupid because you can not find a single, non-trivial program ...

      Well, the bad news is that you failed statistics, but the good news is the AI department called and wants you back. Since AI is actually making some progress these days, they're at risk of outstripping trivial. After 50 years it would be a shame to sneak over the bar by accident now that HAL is merely another half century down the road. With your help, history will record that HAL is the first ever non-trivial AI application.

      In the late 1980s I was lead architect on a non-trivial software package written entirely in C. We took some prudent measures to eliminate pointer abuse, both in terms of architecture and coding style. The number of times our team make a pointer mistake in a release build was running roughly neck and neck with the number of times we reported a code generation error concerning the Microsoft or Watcom C compiler. I pretty much forbid the use of CodeView until it was a coin flip whether it was the code or the compiler.

      Of course, we did have assert statements going off on a daily basis during heavy coding. We also made a lot of typing mistakes and sometimes we ran our build scripts with the wrong arguments. Doh! Yet after all that, most software projects still use keyboards and build scripts. Will we ever learn?

      What's the rationale for Goo against the use of assert() statements? Having eliminated pointers, it's no longer possible to violate a post-condition? Or does Goo include a magic eight ball to decide which developer should first tackle a code failure, having broken their side of the interface contract?

      That was the whole point of the assert() discipline, to create a social mechanism by which the person who screws up is most often the person who fetches the mop and bucket.

    33. Re:C-whatever by marcosdumay · · Score: 1

      Prolog has still more gramatical power than Perl, yet, it is mainly implemented on C. There is a huge difference between a generic powerfull parser and a programming language parser (the programming language being LR1), and the parser is one of the easiest parts of a compiler.

    34. Re:C-whatever by JamesP · · Score: 1

      C has become the English of computer languages. There are so many derivatives - C++, C#, 'Objective-C', Java,

      Erm... no

      Java and C# may have originated from C++ but they are very different

      Obj-C is a very different monster altogether. (want to have a taste of Obj-C? Take a look at the Adium source code)

      It's more like C has become the 'latin' of computer languages (except, contrary to what most java-fans think IT'S NOT DEAD)

      --
      how long until /. fixes commenting on Chrome?
    35. Re:C-whatever by shutdown+-p+now · · Score: 1

      No Programmers love the simple elegance of C. C is a masterwork, it is subtle, it is sublime.

      There's nothing elegant about C declarator syntax.

      void(*WTF)(int*(*)[])();

      Oh, and mixed signed/unsigned arithmetic being well-defined, and defaulting to unsigned - meaning that -2/2u == 0xFFFFFFFEu/2u == 0x7FFFFFFF == 2147483647 - that's subtle, but definitely not sublime.

      Or the wonderful idea to have separate namespaces for "tags" (struct/enum/union), which no-one uses anyway, forcing people to typedef their structs all the time?

      No, C is not elegant at all. For sure, it's a trusty hammer that has a proven track record of hammering nails well, and for that reason alone it's not worth the trouble replacing it, for all its design flaws. But don't ascribe to it what it doesn't have.

    36. Re:C-whatever by shutdown+-p+now · · Score: 2, Interesting

      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.

    37. Re:C-whatever by rolando2424 · · Score: 1

      J: My pardon; did I break thy concentration?

      Continue! Ah, but now thy tongue is still.

      Allow me then to offer a response.

      Describe Marsellus Wallace to me, pray.

      B: What?

      J: What country dost thou hail from?

      B: What?

      J: How passing strange, for I have traveled far,

      And never have I heard tell of this What.

      What language speak they in the land of What?

      B: What?

      J: The Queen's own English, base knave, dost thou speak it?

      B: Aye!

      J: Then hearken to my words and answer them!

      Describe to me Marsellus Wallace!

      B: What?

      JULES presses his knife to BRETT's throat

      J: Speak 'What' again! Thou cur, cry 'What' again!

      I dare thee utter 'What' again but once!

      I dare thee twice and spit upon thy name!

      Now, paint for me a portraiture in words,

      If thou hast any in thy head but 'What',

      Of Marsellus Wallace!

      --
      Okay seriously I've just run out of pointless things to say.
    38. Re:C-whatever by Lunix+Nutcase · · Score: 1

      So basically you say you are disputing what I'm saying and then you go on to say that this same project had daily problems with pointer problems. So in the end you just end up proving what I said.

    39. Re:C-whatever by Anonymous Coward · · Score: 0

      Replying to a statement "foo is bar" with "foo is specifically designed to be bar" is not in any way insightful.

    40. Re:C-whatever by dickens · · Score: 1

      What's interesting to him (gp) is probably not universally interesting.

    41. Re:C-whatever by MemoryDragon · · Score: 1

      ModulaII I guess + assembly, Pascal never really was a production language from Wirths POV, Modula II was it.
      Pascal just became famous due to Turbo Pascal.

    42. Re:C-whatever by FlyingGuy · · Score: 1

      Which is written in C

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    43. Re:C-whatever by badkarmadayaccount · · Score: 1
      --
      I know tobacco is bad for you, so I smoke weed with crack.
    44. Re:C-whatever by Philip_the_physicist · · Score: 1

      Thanks. Of course, you really deserve an Informative upmod, but you probably won;t get it since this is a fairly old thread.

    45. Re:C-whatever by Anonymous Coward · · Score: 0

      I could be wrong but was the first C compiler written in C?

  23. Re:Java is crap anyway by gzipped_tar · · Score: 1

    Those who can't appreciate the beauty of Lisp are doomed to rot in (mismatched) parenthesis hell.

    BTW: use a real text editor.

    --
    Colorless green Cthulhu waits dreaming furiously.
  24. Re:Java is crap anyway by Gr8Apes · · Score: 1

    Spring sucks.

    Give me one good thing it does that's necessary, done well, and not redundant.

    --
    The cesspool just got a check and balance.
  25. Re:Java is crap anyway by Gr8Apes · · Score: 1

    Lisp are [sic] doomed

    --
    The cesspool just got a check and balance.
  26. Re:Java is crap anyway by binarylarry · · Score: 1

    Spring Beans

    --
    Mod me down, my New Earth Global Warmingist friends!
  27. Can you name 25 most popular languages? by Warlord88 · · Score: 1

    Interesting game: http://www.sporcle.com/games/moogles/programlanguages. Obviously their rankings differ from those in tiobe.

  28. Time Capsule oblig meme by carp3_noct3m · · Score: 1

    Time-Travelling Brandy Theives! The only explanation.

    --
    "It's ok, I'm completely secure as long as my iron is off"
  29. Re:Java is crap anyway by Gr8Apes · · Score: 2, Interesting

    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?

    --
    The cesspool just got a check and balance.
  30. Ahhh C by Anonymous Coward · · Score: 0

    Ahh C, All is right with the world again :)

  31. Re:Java is crap anyway by dgatwood · · Score: 0, Troll

    And nothing more nightmarish than bad assembly.

    $string = "was born before 1986.";
    $string =~ s/w/h/;
    $string =~ s/ b/n'/;
    $string =~ tr/or/t /;
    $string =~ s/(?: (be)|9(\d+))/e$1$2/g;
    $string =~ s/n/h/;
    $string =~ s/n/h/;
    $string =~ s/h/n/;
    $string =~ s/h/n/;
    $string =~ s/n/h/;
    $string =~ s/beft/ard /;
    $string =~ s/ e 1/of P/;
    $string =~ s/[0-9][[:digit:]]/rl/;

    print "Spoken like someone who ".$string."\n";

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  32. Help keep C relevant in the modern era! by symbolset · · Score: 1

    Ok, maybe this dumb joke will play better in this thread than the first one I posted it in.

    Why is noone asking to examine the C programming language, to adapt it to modern programming processes and methods? Why is noone speaking out to defend C as a useful language, to update the aged methods of Kernighan and Ritchie?

    Oh, wait. Never mind. That was a stupid question.

    --
    Help stamp out iliturcy.
    1. Re:Help keep C relevant in the modern era! by Phaedra · · Score: 1

      Something like this? http://www.digitalmars.com/d/

    2. Re:Help keep C relevant in the modern era! by marcosdumay · · Score: 1

      It's nice that they already have a working compiler. Now I can play with it! Let's see if complex numbers and automatic garbage collection are good to have :)

    3. Re:Help keep C relevant in the modern era! by petermgreen · · Score: 1

      Why is noone asking to examine the C programming language, to adapt it to modern programming processes and methods?
      C++ is basically* an extention of C and it evolved over the years from "C with classes" to a language with powerfull templates, operator overloading, automatic constructor/destructor calls etc.

      The trouble with C++ though is things like operator overloading, templates etc are great in moderation but abusing them leads to hard to maintain code. Worse the standard IO libraries abuse operator overloading in the name of brevrity setting a REALLY bad example to programmers. The sheer complexity of the language also make it much harder to keep the ABI consistent than with plain C and made it much harder for other languages to import making it a poor choice for libraries.

      *yes a few constructs that were valid (but bad practice) in C were made invalid in C++ but good C should generally be valid C++

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  33. Re:Java is crap anyway by abigor · · Score: 2, Interesting

    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.

  34. strange brew that's also good for you by Anonymous Coward · · Score: 0

    That would be Kombucha. The 'old' ways are still/even more, useful now.

  35. Robots only use C by societyofrobots · · Score: 3, Interesting

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

    1. Re:Robots only use C by khakipuce · · Score: 1

      For some strange definition of BIG. I am sat in a room full of programmers, like many others in the world. We will spend 8+ hours a day 5 days a week writing apps, not a robot in sight. When I get time at home I wirte some embedded stuff for fun (I hope you would include this in the definition of "robot"). So this year I have probably done several thousand lines of app code in Java and less than 100 lines in C for embedded.

      Now I am far from average, because I am the only person I know of here (out of ~40 programmers) that does any embedded at all..Quite a few people here do PHP in their spare time for friends and profit.

      --
      Art is the mathematics of emotion
    2. Re:Robots only use C by societyofrobots · · Score: 1

      Yeap, I meant to include embedded. I'm surrounded by people who spend most of their time doing C for embedded apps.

      What is C used for these days other than embedded apps? (serious question as I don't know)

    3. Re:Robots only use C by Tablizer · · Score: 2, Insightful

      It sounds like you are the robot :-)

    4. Re:Robots only use C by marcosdumay · · Score: 1

      It is used for applications you want to be small (to download mainly) and reasonably portable. It is also done for lots of applications that don't have those requisites, but where the developers think it would be more professional looking. Also, obviously, C is used on number crunching applications.

      Some people also write things on C just because they want. The only ninche where C is rare is internet applications (even then, the middleware is nearly all in C).

    5. Re:Robots only use C by Anonymous Coward · · Score: 0

      But that does not mean you need write your code in c. Ive dumped python into micro controllers for a long time now.

  36. Nested parentheses for the masses by Slur · · Score: 1

    None of my code editors show nested parentheses in progressively larger sizes, but wouldn't that be nice? Or if the editor drew boxes around the nested groups (similar to XCode's cool code-block highlighting), that would be pretty excellent.

    --
    -- thinkyhead software and media
    1. Re:Nested parentheses for the masses by Drantin · · Score: 1

      There are plenty that will highlight the matching parentheses to whichever is under the cursor though.

      --
      Actio personalis moritur cum persona. (Dead men don't sue)
    2. Re:Nested parentheses for the masses by Anonymous Coward · · Score: 0

      use pico and learn how to count.

    3. Re:Nested parentheses for the masses by Eraesr · · Score: 2, Informative

      The problem with parentheses grouping/highlighting is that once you're missing a parenthesis, the editor will stop highlighting or worse, highlight the wrong parenthesis.

    4. Re:Nested parentheses for the masses by martin-boundary · · Score: 2, Insightful

      Real programmers use ed(1). Every line counts (or is counted) in ed(1).

    5. Re:Nested parentheses for the masses by Anonymous Coward · · Score: 0

      Real programmers use "cat > a.out"

    6. Re:Nested parentheses for the masses by dkleinsc · · Score: 1

      I thought we'd settled this: real programmers use butterflies.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    7. Re:Nested parentheses for the masses by marcosdumay · · Score: 1

      What? For fonts of changing size one'd need to use a GUI editor. That is not worth the cost.

      identation was created to solve that problem.

    8. Re:Nested parentheses for the masses by marcosdumay · · Score: 1

      That's why I love emacs. Why manualy arrange your butterflies?

    9. Re:Nested parentheses for the masses by tepples · · Score: 1

      What? For fonts of changing size one'd need to use a GUI editor. That is not worth the cost.

      But think of how much time you would save by not having to fix errors that you didn't make in the first place when you correctly visualized the program structure when you were writing it. A netbook to run your GUI editor costs what, 200 USD? How many programmer-hours does that buy?

    10. Re:Nested parentheses for the masses by david_thornley · · Score: 1

      Given a decent editor, you know when you've missed a parenthesis in Lisp because the indentation isn't what you expect. I've written Lisp code in the approximate equivalent of something like ed, and in emacs. It's much more useful with a good editor.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    11. Re:Nested parentheses for the masses by marcosdumay · · Score: 1

      Lots of microcontrolers nowadays can handle a GUI, you don't even need a $200 netbook. Anyway, I was not talking about the monetary cost of a GUI, I was talking about the bad thing that is coding on a GUI. It is not worth staring at a GUI all day long just for diferent sized parenthesis.

      Besides, that problem was solved shortly after Lisp was created, by identation. And that solution doesn't require a GUI.

  37. Actually it is... by Slur · · Score: 1

    The index is 0, but the string at that index in the array is "1".

    --
    -- thinkyhead software and media
    1. Re:Actually it is... by stuckinphp · · Score: 0

      no..

      --
      if only
    2. Re:Actually it is... by Threni · · Score: 1

      C doesn't have strings. Perhaps you were thinking of C++'s string class....or maybe you were thinking about char* ?

    3. Re:Actually it is... by ThePhilips · · Score: 1

      C has strings - in the same sense as the C++ has them. Check the /usr/include/string.h vs. /whereever/c++/std/string.

      --
      All hope abandon ye who enter here.
    4. Re:Actually it is... by Jurily · · Score: 2, Insightful

      Python has strings. Java has strings. C# has strings.

      C has functions that take a pointer and run until they find a \0.

    5. Re:Actually it is... by Threni · · Score: 1

      Well, they're both spelled the same way, but ultimtely they are different, in terms of implementation, usage, and whether they're part of the standard for the language vs something which was added, and then removed from the standard. So the best you could say is something like "some implementations of some version of C support strings which are similar in some respects to C++ strings".

    6. Re:Actually it is... by ThePhilips · · Score: 1

      If it walks like a duck and it quacks like a duck...

      --
      All hope abandon ye who enter here.
    7. Re:Actually it is... by Jamu · · Score: 2, Funny

      If it walks like a duck and it quacks like a duckX_$3[0#GENERAL PROTECTION FAULT

      --
      Who ordered that?
    8. Re:Actually it is... by ThePhilips · · Score: 2, Funny

      C'mon. Be serious.

      I do 50% of my coding in C and since the time a hooded man told me "Use the snprintf(), Luke!" I never had a problem :D

      --
      All hope abandon ye who enter here.
    9. Re:Actually it is... by epiphani · · Score: 1

      Want strings? Here:

      typedef struct __string {
                char *ptr
                int len;
      } string;

      Now you have strings. Shouldn't be to hard to add some wrappers around the n-series functions to make all your stuff "string safe". For example:

      int stringcmp(string *a, string *b)
      {
              int x = strncmp(a->ptr, b->ptr, MIN(a->len, b->len));
              if(!x)
                    return a->len - b->len;
              else
                    return x;
      }

      C can do anything you want it to. It just depends on how much you care to do it. Me, I can live without strings.

      --
      .
    10. Re:Actually it is... by Jurily · · Score: 1

      Shouldn't be to hard to add some wrappers around the n-series functions to make all your stuff "string safe".

      It's easy to add the wrappers.

      It's hard to get everyone at the same time to use them exclusively.

      It's impossible to ensure a->len is always modified when a->ptr changes.

    11. Re:Actually it is... by Bakkster · · Score: 1

      Agreed. They both abstract to the same principle (a linear collection of characters), but the implementation is an important difference for anyone who plans to use one effectively. It's the same way that a binary tree, linked list, and an array are all lists, but if a programmer ignores their implementation he can be in for a world of hurt.

      --
      Write your representatives! Repeal the 2nd Law of Thermodynamics!
    12. Re:Actually it is... by Anonymous Coward · · Score: 0

      It's impossible to ensure a->len is always modified when a->ptr changes.

      Um, no it's not. I just define sting as an opaque type.

    13. Re:Actually it is... by marcosdumay · · Score: 1

      "I never had a problem"

      Except for overwriting other variables, probably.

    14. Re:Actually it is... by marcosdumay · · Score: 1

      "It's impossible to ensure a->len is always modified when a->ptr changes."

      It's not, but if you are concerned about it, try C++. Guess what, there are even transparent garbage collectors on C++.

    15. Re:Actually it is... by ultranova · · Score: 1

      Java has char arrays with mandatory bounds checking. C has char arrays without mandatory bounds checking. That's because Java is a safe language for wimpy nerds and C is a festiy, dangerous, buffer overrun defying language for real macho coders. Unfortunately, C too is used by nerds instead.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    16. Re:Actually it is... by jgrahn · · Score: 1

      C has strings - in the same sense as the C++ has them.

      C has strings, but not in the same sense as the C++ has them. A C string is not a value in the same sense as an int, a char or even a struct is.

    17. Re:Actually it is... by Doctor+Faustus · · Score: 1

      That's all C++ had when I learned it, too, although roll-you-own string classes seemed to be popular.

    18. Re:Actually it is... by Creepy · · Score: 1

      C is a fairly stable language (last updated a decade ago), so the string representation is traditional. If you want string classes move to objective-C or C++ (no, I take that back - avoid C++ like the plague... it takes all the best features of an object oriented language and mangles them horribly into a functional language).

      I'm just glad most of my programming is not in C++ these days, its in GLSL shaders (which itself is a fairly sleek C-like language).

    19. Re:Actually it is... by Creepy · · Score: 1

      Remember C was written for late 1960s-early 1970s era hardware (came out in 1972) and bounds checking actually has an impact on execution speed. C was designed to compile system software (like operating systems) on diverse platforms with an emphasis on portability and speed. Bounds checking compromises speed, so that was left up to the OS developer to decide to implement or not.

      It would be nice to have a string class, and ASCII is stable, but someone somewhere will need to decide what form of Unicode to use for wide character strings - ask a westerner and they'll say UTF-8 or UTF-16, ask Asians and they want UTF-16 or UTF-32. Microsoft and Apple seem to favor UTF-16 (even though the BSD underpinnings uses 32 bit wide wchar_t), but when you get to the web and many database companies, they favor UTF-8, probably because of the ASCII compatibility (and asian languages do use one particular ASCII character a lot - space). Also note that UTF-16 does not guarantee the character is 16 bits like many people think, only the older UCS-2 format does, so you can't just parse it and assume every character is 16 bits wide.

      Then there's string conversion... every OS has string conversion functions that are OS specific - good luck on getting Microsoft, Apple, Linux, etc to standardize those.

  38. Re:Java is crap anyway by Courageous · · Score: 5, Funny

    Well it could have been worse.

    <I><disagree><there><is><a><missing><parenthesis><somewhere><in><your><lisp><code></code></lisp></your></in></somewhere></parenthesis></missing></a></is></there></disagree></I>

  39. Re:Java is crap anyway by Gr8Apes · · Score: 4, Interesting

    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.

    --
    The cesspool just got a check and balance.
  40. Squinting: what you did there. by symbolset · · Score: 1

    I see it.

    --
    Help stamp out iliturcy.
  41. Re:Java is crap anyway by Anonymous Coward · · Score: 0

    two words.... rainbow parens!

  42. 272 pages by symbolset · · Score: 1

    It's not 19 pages, but it's not 1000 either. You get a lot of book in 272 pages. And the book defines a language that can be used to compile itself (and hence, the book). You don't get that with Algol.

    --
    Help stamp out iliturcy.
  43. Re:Java is crap anyway by Score+Whore · · Score: 4, Funny

    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.

  44. Go is number 15 by Anonymous Coward · · Score: 0

    The telling detail of what is wrong with this index is that Go, a language which:
    * Has no employment prospects
    * Has not been used to write anything
    * Does not even have a stable implementation yet
    is at number 15 on the list.

    1. Re:Go is number 15 by K.+S.+Kyosuke · · Score: 2, Insightful

      When Java was two years old, it was utterly unusable and yet overhyped beyond reason, although it brought *nothing new at all*, even inside Sun Microsystems - it was basically a step back from Self-93. (Or rather a whole mile back?) Go actually bears the promise of bringing a "highly concurrent C-level language" into mainstream, at that's something that, unlike Java, makes sense to me. So, OK, it's probably overhyped, but much less than Java was when it was as "old" as Go is today.

      --
      Ezekiel 23:20
    2. Re:Go is number 15 by Rockoon · · Score: 1

      Go's fault is in trying to be a language instead of a class library for other languages.

      As far as "highly concurrent" .. there is ANOTHER movement in that area that is really taking off: stream processing.

      While not attacking quite the same problem space, its attacking the one that matters most for most people. These libraries provide immediate advantages even on single systems.

      --
      "His name was James Damore."
    3. Re:Go is number 15 by K.+S.+Kyosuke · · Score: 1

      Go's fault is in trying to be a language instead of a class library for other languages.

      Oh, yes, GC and channels and concurrency in form of a library for C++. Please, that's not even funny. They're still trying to make at least a half-competent memory model, fifteen years late or so. The Go people have at least some experience with massive concurrency. (Look up Newsqueak etc.) While I'm a staunch proponent of simple but powerful languages with orthogonal features, it strikes me as particularly odd to require concurrency features - of all things - to be a library when so many useless things aren't (see C++). You must make at least the memory model and execution semantics work properly before you attempt it, and libraries won't do this for you.

      As far as "highly concurrent" .. there is ANOTHER movement in that area that is really taking off: stream processing.

      Then why don't we all program in Simulink? Perhaps it's not worthy to model each and every addition and multiplication as a dataflow operator when Erlang-level concurrency is enough.

      --
      Ezekiel 23:20
    4. Re:Go is number 15 by Rockoon · · Score: 1

      You seem to be missing it.

      Massive concurrency is had via OpenCL/CUDA/DirectCompute/...

      Thats what you have missed in my argument. It is that people dont want to use a different language. They want to use the language they already use. Look at that.. plenty of C++ CUDA development.. oh, and C# CUDA development.. oh, and PYTHON CUDA development.. oh, and FORTRAN CUDA development.

      The same is true for OpenCL.

      Massive concurrency without dealing with the "problems" (memory models? execution semantics? please.) that you have imagined. As far as Simulink.. umm.. hello? Simulink has very little to do with implementing practical massive concurrency. OpenCL is doing it right now. CUDA is doing it right now. Very few are using custom languages or entire frameworks to get their concurrency.

      They are using class libraries like OpenCL, CUDA, and DirectCompute. Thats the reality of the situation. Yes, it doesnt attack quite the same problem as Go, but the reality is also that people dont need to attack that problem, nor do they even have the resources to make Go advantageous, nor do their customers.

      Go will fail precisely because other solutions exist that don't require adopting a pet language.

      --
      "His name was James Damore."
    5. Re:Go is number 15 by K.+S.+Kyosuke · · Score: 1

      Epic FAIL. Concurrency and parallelism are NOT the same thing. Such a rant and what a total waste of words, huh? Perhaps you should read before you write the next time.

      --
      Ezekiel 23:20
    6. Re:Go is number 15 by Rockoon · · Score: 1

      One is a subset of the other, dumbshit.

      I did say that they dont attack quite the same problem, right? In BOTH posts? Thats TWICE I said it, right? right?

      You sir are an idiot for not realizing that the current generation of stream processors is not equivalent to data parallel, ala SIMD... thats what it was about 10 years ago.. thats not what it is today. These things perform concurrent execution, not just data parallel stuff.

      --
      "His name was James Damore."
    7. Re:Go is number 15 by K.+S.+Kyosuke · · Score: 1

      One is a subset of the other, dumbshit.

      Thank you for your kind words. No, neither of them is a subset of the other one. You can implement parallel algorithms without having to deal with any significant amount of concurrency (or without having to deal with at all), and you can program concurrent programs that run on a sequential machine. (Read the previous sentences at least ten times.)

      I did say that they dont attack quite the same problem, right? In BOTH posts? Thats TWICE I said it, right? right?

      Perhaps, but that's precisely the point. OP was talking about Google Go, the goal of which is to put forward concurrency as the core issue of a low-level language. I, in turn, talked about concurrency, and what it means for a computer language. Suddenly you come with parallelism and libraries, of all things.

      You sir are an idiot for not realizing that the current generation of stream processors is not equivalent to data parallel, ala SIMD... thats what it was about 10 years ago.. thats not what it is today. These things perform concurrent execution, not just data parallel stuff.

      I realize it perfectly well. It's just that this is totally off-topic.

      --
      Ezekiel 23:20
  45. Changing landscapes by bytesex · · Score: 1

    The landscape is changing. Web is a done deal - there's php, java, perl (yes), ruby, asp. What's growing is 'embedded' which I put in quotes because they're actually mini-PC's on small boards. And they're going everywhere, because they cost nothing anymore. And if you have any sense, you program C on them. C is the new assembly.

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
    1. Re:Changing landscapes by MemoryDragon · · Score: 1

      Embedded will develop like every other field, there is C now and the next step again will be vm based solutions, heck just look at the cell phones there it happens already!

    2. Re:Changing landscapes by Tablizer · · Score: 2, Interesting

      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.
         

  46. Dude by Anonymous Coward · · Score: 1, Funny

    I'd totally date myself if I could reproduce asexually.

  47. Re:Java is crap anyway by pspahn · · Score: 1

    But, if you think about it, you've just outlined some of the processes that drive innovation.

    It's okay to work on things that are before their time, or not before their time and simply a dead end road. Otherwise, what have you learned?

    --
    Someone flopped a steamer in the gene pool.
  48. The problem with PHP by warrax_666 · · Score: 1

    The problem with PHP isn't so much that it's like a kitchen knife that's dangerous in the hands of a klutz. It's that PHP is like a dull spool that's dangerous in the hands of a klutz.

    --
    HAND.
    1. Re:The problem with PHP by Garridan · · Score: 1

      I think of it more as a 1/3" socket wrench. It'll turn an 8mm bolt, but not without damaging it. But if you've got a 1/3" bolt, it's awesome.

  49. Re:Java is crap anyway by Anonymous Coward · · Score: 0

    Gr8Apes is doomed to a life of stupidity

  50. Get a load of Perl's downward slide by Anonymous Coward · · Score: 0

    In the "Very Long Term History" section it shows Perl went from #3 in 2000 to #6 in 2006 to #8 in 2010. I'm actually surprised it's still in the top. I know no one who still uses Perl.

    1. Re:Get a load of Perl's downward slide by blair1q · · Score: 1

      The metrics used to determine the list go a tad-bit beyond counting people you know who use it.

      There's a brobdingnagian fuckload of perl code out there being maintained continuously. It's deeply embedded in the installed base of expensively developed custom software. it will decay in importance only slowly.

  51. Re:Java is crap anyway by Anonymous Coward · · Score: 1, Interesting

    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.

  52. Re:Java is crap anyway by Anonymous Coward · · Score: 0

    Perl fanboy alert!

  53. Ah, Lips. er, lisspth. Whatever. by fyngyrz · · Score: 2, Funny

    Lisp'ers just need you to cons() them into a good palette edit. So take 'em out of their nest in your cars() to an indentist, and C to it. Make sure you get parenthetical permission first, though.

    --
    I've fallen off your lawn, and I can't get up.
  54. Re:Java is crap anyway by gknoy · · Score: 2, Informative

    (I (disagree
       (there (is (a (missing)
             (parenthesis (somewhere))
             in))
          (your Lisp code)))
       )  ;; <-- Was this it?
          ;; Auto-indenting editors like Emacs make it easy to catch such mistakes,
          ;; as does breaking your expressions over multiple lines for readability.

  55. How about... by Anonymous Coward · · Score: 0

    Brainf*uck is the language of the Future!

  56. gets() is secure by r00t · · Score: 0

    You're supposed to allocate the buffer with a guard page at the end. For example, you can use mmap() with PROT_NONE or mprotect() with only PROT_READ. You'll get a SIGSEGV or SIGBUS when gets() reaches the guard page.

    Do the gets() call in a child process, let it die on the signal or call _exit() from the handler, and determine success or failure from the process exit status. Alternately you can siglongjmp() out of a signal handler, but you should assume that this leaves the stdin stream with locks taken and thus unusable.

    Be sure to put this in server and setuid programs. It gets the hackers all excited, then crushes their dreams.

  57. no value there then by r00t · · Score: 1

    That's because they are specifically designed to abstract away the computer hardware.

    The job won't pay well if any fool can do it.

    It also sounds like a world of painful "business logic" shit, which should remind you of COBOL and Visual Basic. At best you get to implement yet another shopping cart or convert the tax code into a computer program. You'll need a lot of vodka to put up with that.

    Life is better when you are writing firmware, boot loaders, drivers, exploits, kernels, performance-sensitive code, and so on.

    1. Re:no value there then by improfane · · Score: 1

      That may be true but nowadays the real innovative stuff comes working on the abstractions built on others. Look at BitTorrent/Python, Javascript/AJAX, Facebook/PHP,

      I'm not saying they aren't implementable in C but seriously, they ORIGINATED on the later languages, that should tell you something.

      The people with the ideas need to get things into computers and if it's easier not to know what registers are or whether it will be faster to do a SPLIT operation.

      What about the algorithms that were invented in abstracted languages? In an earlier post someone said something about the guy who went to work at Thinking Machines went in only knowing BASIC but made some fascinating algorithms.

      I think the most important thing in computers and computer science is problem solving, the algorithms and approaches to problems.

      if they don't know C or don't want to use C, all the power to them.

      --
      Slashdot needs Geekcode | Can anyone recommend any good SCIFI? My tastes: Foundation, Startide Rising, CITY, Ringworld,
    2. Re:no value there then by r00t · · Score: 1

      I suspect that Facebook is a great example.

      The founder and first few employees got rich from the business idea and the investment. They weren't really getting money from being PHP coders.

      Later employees writing code probably don't earn so much. They just do PHP, which is a low-value skill.

      An exception probably exists for the people who wrote a new PHP engine for facebook. This was naturally written in C, and it generates machine code on the fly. (it is a JIT engine for PHP) These people made the whole site more efficient, and probably earn pretty good pay.

      Trying to get rich off of PHP is a bit like trying to get rich off of basketball. Chances are, you'll end up being the equivalent of a gym teacher.

    3. Re:no value there then by mini+me · · Score: 1

      An exception probably exists for the people who wrote a new PHP engine for facebook.

      Are you referring to HipHop?

      HipHop transforms your PHP source code into highly optimized C++ and then compiles it with g++ to build binary files.

      No JIT going on here.

  58. Re:Java is crap anyway by Anonymous Coward · · Score: 1, Informative

    language exists invert forth beautiful-as

  59. Re:Java is crap anyway by Anonymous Coward · · Score: 1, Insightful

    Don't feed the trolls.

  60. April Joke by Anonymous Coward · · Score: 0

    All I get when visiting this site is

    "This website requires JavaScript."

    Is this a late april fool's joke?

  61. No unsigned = toy language by Anonymous Coward · · Score: 0

    No unsigned = toy language. There's a lot you can do with it, but you can't do network, binary file or device driver work with Java.

    1. Re:No unsigned = toy language by binarylarry · · Score: 1

      You realize signed/unsigned is just a simple bit pattern?

      Your second comment is even more hilarious and out of touch with reality.

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:No unsigned = toy language by Anonymous Coward · · Score: 0

      Too bad people have done all of those.

  62. Java powers most net apps? by Viol8 · · Score: 1

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

    Got some stats to back that up or is it just wishful thinking?

    Last time I looked Apache was written in C++.

    1. Re:Java powers most net apps? by arndawg · · Score: 1

      He said internet applications. Not internet documents.

    2. Re:Java powers most net apps? by teknopurge · · Score: 1

      apache is a web server, not an app server.

  63. Re:Java is crap anyway by cmdr_tofu · · Score: 1

    hah yes! Or Ruby or Python :) That brightened my day! Time to go to work :)

  64. Re:Java is crap anyway by pitdingo · · Score: 1

    So what frameworks do you use? the total crap J2ee or jee or whatever the vendor driven standard is called today? Or do you just code everything yourself from scratch on every project?

  65. Coldfusion is a Framework? by Anonymous Coward · · Score: 0

    First off, ColdFusion is not a framework. Second I can write infinite loops all day with it and finally I can write entire websites without JavaScript just like a Java developer can. Way to present an unbiased ranking on programming languages...

  66. Re:Java is crap anyway by Anonymous Coward · · Score: 0

    namespace X { class Y { class Z { class W { public: int a; struct { int b; int c; } e; } } } }

    See, you can make the same joke in C++.

    [CLUE: you fix the problem the same way in Lisp that you do in C++. It's called "whitespace".]

  67. DOMed code by Tei · · Score: 1


    var node = document.createElement("I");
    var n = document.createElement("disagree");
    node.appendChild(n);
    n = document.createElement("there");
    node.appendChild(n);
    n = document.createElement("is");
    node.appendChild(n);
    n = document.createElement("a");
    node.appendChild(n);
    n = document.createElement("missing");
    node.appendChild(n);
    n = document.createElement("parenthesis");
    node.appendChild(n);
    n = document.createElement("somewhere");
    node.appendChild(n);
    ..

    --

    -Woof woof woof!

  68. Delphi Rules! by Flytrap · · Score: 2, Informative

    As the CTO of a major global tier one financial services and banking group I manage tons of different software technologies (not to mention the various computing platforms that software has to run on), ranging from Cobol and Java on mainframes to C and TCL on point of sale and EFT terminals through to Java, C# and Visual Basic on servers and ATMs... and of course all the scripting and interpreted languages in between.

    I am a dyed in the wool Java person (I personally developed the group's core banking frame work in Java when I still headed up the groups IT architecture division).

    I am now a strong advocate for data centre simplification by standardising on .NET for customer facing and branch teller systems (all our teller systems still run on a custom build of OS/2, would you believe)

    In my personal capacity (I run a successful independent software development firm as a hobby), I am sold on Embarcadero RAD Studio 2010. To be fair I have been a Delphi fan since version 1 (well since Turbo Pascal 6.0, if you really must know). But switched professionally to Java when JBuilder took off.

    Delphi will never enjoy the market position it enjoyed in its heydays... but it remains the staple of the ISV. Lots of software that we use every day is developed using Delphi, ranging from Skype, the Winter Olympics 2010 Rings, Macromedia HomeSite, QuickBooks Point of Sale, Total Commander, Installaware, Yahoo! Go for TV, MySQL Administrator, Dev-C++, TurboCASH , StarUML, SharpE , Cobian Backup, PocoMail, Jabber, XPlite, DynDNS Updater, MultiEdit, SQL Litspeed, CoffeeCup HTML Editor, Windows Shell Extension for M4A music files, PL/SQL Developer and thousands of other software systems that we use every day and take for granted.

    So when I started playing with RAD studio 2010, I was impressed at the versatility of the suite. I can do everything from full on .NET (framework 3.5) software development using Microsoft Visual Studio and the Delphi Prism personality to traditional Win32 development. I can even do high performance stuff by taking advantage of the inline assembler and inter-mingling assembly code with my Delphi code. Last night I was impressed that Microsoft tools such as WSDL.exe and XSD.exe were able to generate Delphi code for me to create .NET web services using Delphi directly in Microsoft Visual Studio.

    So with Delphi, I have the best of all worlds, and it shouldn't be surprising that as the climate for the independent software developer is getting brighter, we should see a resurgence of those tools that give small development teams platform and technology optionality.

    1. Re:Delphi Rules! by Flytrap · · Score: 1
    2. Re:Delphi Rules! by badkarmadayaccount · · Score: 1

      I have couple of simple extensions for C that I believe would bring it back on the map. They are quite self-explanatory. Tell me what you think. IANAProgrammer.
      scope func_name() {
      @__scope="/path/to/module.c";} //Includes the scope from module.c in the current module
      private int func_name(arg1, arg2, ...){
      //func body
      } //hides func_name() symbols form module symbol table
      symbol func_name($type $arg_name, enum_type enumerator) {
      $foo; symbol var declaration, can only be assigned const strings
      @foo=cnd?"const string1":"const string2"; //only allowed type of assignment
      return $("const string to be concatenated", @with_interpolated_symbol_vars_and, enumerator)($type $arg_name);}//Implements function overloading

      /*...*/
      return event int var_name;}
      //Triggers an event with a value int var_name, every function that takes an event as an arg gets evaled on event trigger

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  69. Recession? by guysmilee · · Score: 1

    I am very surprised C's increase in popularity came during a recession?

  70. Turtle tracks by Anonymous Coward · · Score: 0

    Where the f**k is LOGO?

  71. Android NDK by djtachyon · · Score: 1

    And if you happen to be developing native application code for Android using the Android NDK or contributing to the Android OS itself, you will be writing it in C.

    --
    "What's the use of a good quotation if you can't change it?" - Doctor Who
  72. Re:Java is crap anyway by CAIMLAS · · Score: 1

    Now mix that with a bunch of Perl or PHP and you've got a dyslexic's dream.

    --
    ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
  73. !java by Anonymous Coward · · Score: 0

    Android doesn't use java! Android uses a language syntax derived from java, and a VM which is not compatible at all with java bytecode. To bad, because the arm cpu can execute java byte code native. Instead android has to interpretate the non-java byte code and convert it to arm architecture instructions.

    1. Re:!java by hattig · · Score: 1

      Android's SDK includes vast swathes of the Java API (and third partly APIs like Apache HTTPClient, etc) as part of its core. Sure, it doesn't include the full Java platform (replacing UI with Android specific classes, for example), but from a language viewpoint it's mostly Java, might as well be Java, and uses Java development tools like Eclipse.

      And ARM CPUs actually now include generic virtual machine instructions, not just Java specific instructions - this is called "Thumb EE" which is present in ARMv7 architectures (Cortex), and replaced the Java bytecode Jazelle functionality. It is a dead cert that Dalvik will eventually make use of Thumb EE (note that the first Android devices were ARMv6 devices using ARM11 CPUs).

  74. Re:Java is crap anyway by sorak · · Score: 1

    Well it could have been worse.

    <I><disagree><there><is><a><missing><parenthesis><somewhere><in><your><lisp><code></code></lisp></your></in></somewhere></parenthesis></missing></a></is></there></disagree></I>

    That works in Firefox, Safari, and Opera. Try it in IE and it shows up as

    <I><disagree><there><is><a><missing>Van helen rulez!<parenthesis><somewhere><in><your><lisp><code>Jews caused global warming, and puppies</code></lisp></your>base are belong to us</in></somewhere></parenthesis></missing></a></is></there></disagree></I>

  75. Lies, Damn Lies and... by fartrader · · Score: 1

    These results may be correct sure but their data collection mechanism seems highly suspect.

    The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, Wikipedia and YouTube are used to calculate the ratings.

    ..very scientific. Vendors in particular strike me as a particularly trustworthy source, citing anything that will sell them products.

  76. I have a different metric by thogard · · Score: 1

    I go into the local Borders bookstore and compare the ratio of books on the shelf. According to that metric, Mix is more popular than C if they have The Art of Computer Programming in stock.

  77. Re:Java is crap anyway by Civil_Disobedient · · Score: 2, Interesting

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

  78. Re:Java is crap anyway by Gr8Apes · · Score: 1

    But, if you think about it, you've just outlined some of the processes that drive innovation.

    It's okay to work on things that are before their time, or not before their time and simply a dead end road. Otherwise, what have you learned?

    Innovation is where there is a problem and you present something to fix said problem. Spring does no such thing. The "innovation" in a Spring infected codebase is to remove Spring.

    I'm actually doing that in a Spring/Hibernate codebase right now. It's not a fun process, but once done, it will have fixed an entire slew of performance and security problems and add a properly abstracted multi-component persistence layer working through a proper set of interface APIs so that, say, you can link to an LDAP server transparently and data won't need to be duplicated in 6 different places because the Hibernate/Spring conflagration couldn't handle real RDBMS data structures nor distributed data.

    --
    The cesspool just got a check and balance.
  79. Or alternately by PerfectionLost · · Score: 1

    C gets an A++

  80. Re:Java is crap anyway by Gr8Apes · · Score: 1

    Fair question. I like Log4J and JUnit4. :)

    I've used struts and tiles, and written a wrapper around it that removed most of the pain of creating all those actions and dealing with the struts-config and tiles-config files, ie, a dynamically configurable webapp using a simple key-value storage mechanism for web page design utilizing tile components.

    I've also worked with JSF 1.1, 1.2, and a couple of frameworks off of those. They're "interesting" but not really ready for prime time in general, although we did have one project that resulted in an application whose functionality I have yet to see duplicated.

    I wouldn't touch EJBs. They are a massive waste of time and a sure way to bloat your project and miss any milestones.

    As for persistence, you're generally better off writing your own specific framework abstraction utilizing JDBC directly. I've done this numerous times, and it can vary from anything as small as a hundred lines for simple projects to a couple of thousand lines for a completely dynamically designated DB. Contrast this with the few hundred lines of XML you have to write for the best case of Hibernate or other ORM solutions, or the 45K plus lines of code for the Hibernate and JDO solutions I've personally seen that weren't even all that complicated in DB structure.

    And that argument about "gee - if you write it yourself you'll have to recode your persistence layer when you change DBs." How many times have you seen a DB being changed in production? Me? 0. I have supported multiple DBs with a single project, but that's generally targeted to just a few, although one time a project I had supported 8 different DB vendors. That one was ... "fun". (and was back in the days before there were any persistence frameworks had we been of a mind to use them)

    The real question you should be asking is: does this framework/utility/helper really provide me with any functionality that I wouldn't get from the JDK with a comparative effort? In general for me most things will result in an answer of "no". Take Spring IoC specifically for instance. I already code to interfaces, and writing a factory class takes me a maximum of 3 minutes and gives me compile time type checking. With Spring, it'll take about the same amount of time to write the XML bit provided that it's a simple case and you have to actually run it to see if it passes the runtime type checks. Additionally, if you have anything interesting going on in your factory, like accepting a couple of objects to generate a linked DVO or something similar.... well, Spring's going to take you on a fun ride. And then there's John down the hall who will "tweak" the Spring config for something he needs in a sub object's definition 6 months down the road and holy shit, bugs start cropping up in your code that you spend a few weeks tracking down. (This doesn't happen nearly as easily with coded factories)

    So, in general, no, you don't have to code everything from scratch. You have a ton of features built into the JDK to assist you without bringing in any of those 3rd party "helpers" like Apache Commons, for instance. Right now I'm looking into ZK for the front-end framework for my next project to avoid dealing with JSF or struts.

    --
    The cesspool just got a check and balance.
  81. Apache Tomcat for servlets and JSP by tepples · · Score: 1

    Last time I looked Apache was written in C++.

    From Apache's web site, with my emphasis: "Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies."

  82. Re:Java is crap anyway by marcosdumay · · Score: 1

    Asp like languages (on your list PHP) are the worst offenders. The "" nested with ifd an whiles are bad!

  83. Re:Java is crap anyway by Anonymous+Codger · · Score: 1

    Forth if honk then

    (actual bumper sticker seen in 1985)

    --
    No sig? Sigh...
  84. Re:Java is crap anyway by Anonymous+Codger · · Score: 1

    damn, clicked Submit too soon

    Should be:

    Forth heart if honk then

    --
    No sig? Sigh...
  85. Re:Java is crap anyway by shutdown+-p+now · · Score: 1

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

    I had always subscribed to this notion as well. I wonder, does Java has anything like TypeMock Isolator for it, which allows to mock anything and everything with no invasiveness whatsoever - e.g. static methods, and final methods/classes? For .NET, it uses profiler APIs to intercept and instrument code as needed.

    I find it an awesome (if expensive) tool. The irony is that many people dogmatic about TDD hate it, precisely because it doesn't force you to write even trivial code with explicit interfaces and decoupling (where it only ever makes sense to enable a testing framework that cannot do it any other way, and not because it is meaningful otherwise).

  86. Death to 'Break'! (Re:C-whatever) by Tablizer · · Score: 1

    But why hasn't C gotten a real switch/case statement that doesn't need "break"? "Break" is just plain dumb. (And you don't need multi-fall-through if the matcher can take multiple items.)

    1. Re:Death to 'Break'! (Re:C-whatever) by innocent_white_lamb · · Score: 1

      break (or, more specifically) not using break gives you the flexibility to flow through to act with the next condition if you want to.
       
      switch(colour){
      case 1:
      printf("red");
      case 2:
      printf("petunias");
      break;
      case 3:
      printf("lilies");}
       
      I can have red petunias, regular petunias, or lilies.

      --
      If you're a zombie and you know it, bite your friend!
    2. Re:Death to 'Break'! (Re:C-whatever) by shutdown+-p+now · · Score: 1

      But why hasn't C gotten a real switch/case statement that doesn't need "break"?

      Because doing it the C way lets you write Duff's Device.

      (So far as I know, C and C++ are the only two languages in which the construct required for this is permissible.)

    3. Re:Death to 'Break'! (Re:C-whatever) by Tablizer · · Score: 1

      In my opinion, IF statements would be easier to read and manage changes for that.

    4. Re:Death to 'Break'! (Re:C-whatever) by Tablizer · · Score: 1

      So they chose machine efficiency over human efficiency?

      At least they could provide the *option* of a more modern set-oriented switch/case statement so programmers who want to focus on human readability/maintainability can use the new one and those who need to code close to the metal for speed can use the old one.

    5. Re:Death to 'Break'! (Re:C-whatever) by shutdown+-p+now · · Score: 1

      So they chose machine efficiency over human efficiency?

      My post above was more of a joke - I doubt that this part of C was really designed that way to enable writing this kind of code.

      What I do think is that they wrote switch in terms of goto to a special kind of label because, most likely, it allowed them to simplify the compiler. Remember that this is 70s, and development was going on PDP-11, where both space and efficiency constraints were very real issues that had to be dealt with.

      At the same time, the original C compiler was not written as a product to be sold or generally distributed, but rather as a handy tool to simplify development for themselves. If it was hacky at places, that's no big deal.

      At least they could provide the *option* of a more modern set-oriented switch/case statement so programmers who want to focus on human readability/maintainability can use the new one and those who need to code close to the metal for speed can use the old one.

      Pragmatically, if you don't need to code close to the metal, there isn't any point in choosing C today in the first place.

  87. Your sig by Jaydee23 · · Score: 0

    Colorless green Cthulhu waits dreaming furiously. Is this a Chomsky reference?

  88. Re:Java is crap anyway by sf_jeff · · Score: 1

    Spring sucks.

    Give me one good thing it does that's necessary, done well, and not redundant.

    Um, integrate hibernate?

  89. Re:Java is crap anyway by Gr8Apes · · Score: 1

    I do recall looking at something a long time ago that claimed it would auto-magically walk through all your code paths and would test it externally. I still don't really see one. It would require significantly more code analysis in my opinion than anything I've seen to date.

    As far as interfaces and decoupling - that's great - on component boundaries. Internally, only if needed. I've seen a "module" that had 13 layers of springified horribleness to execute a single call. I never did figure out why Spring was used, other than someone passed the kool aid around. After all, in your own component code that's making a single functional operation call, why would you need to inject 13 objects into your functional stream? Especially when there's only 1 possible instance of each? Why not just create a new object and use it, or, if you needed to be able to handle reuse or do anything else interesting, use a factory for each. The stack traces would kill a tree each time someone needed to print them out. Then again, this was "web services"... I needed a lot of Advil that year.

    --
    The cesspool just got a check and balance.
  90. Re:Java is crap anyway by shutdown+-p+now · · Score: 1

    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.

    Where "valid" is defined as "gave me correct answers for the first 10 random inputs I could come up with"?

  91. Re:Java is crap anyway by Anonymous Coward · · Score: 0

    Who modded this guy insightful?

    It's main raison d'être, from the initial release, was to allow the injection of test code, ie, mocks

    Wow. You are so INCREDIBLY WRONG on SO MANY LEVELS. Spring wasn't developed simply to inject test code. That's not the only raison d'être for Spring. Spring does IoC as a basic concept and not just for mocks. You inject dependencies into objects.

    Maybe the reason that you don't understand Spring is because you haven't bothered to learn it or are a bad programmer. Take your pick.

  92. Re:Java is crap anyway by shutdown+-p+now · · Score: 1

    I do recall looking at something a long time ago that claimed it would auto-magically walk through all your code paths and would test it externally. I still don't really see one. It would require significantly more code analysis in my opinion than anything I've seen to date.

    What I was talking isn't anything like that. It's still a conventional mocking framework in a sense that you have to set up mocks & tests yourself (though it does use some neat C# features such as expression trees to make it a lot easier than it normally is). The trick is that they use backdoors in VM to do things that you can't normally do, such as intercepting calls to constructors, non-virtual, sealed or static methods, etc, and injecting your mocks instead of what would have run. Which completely unties your hands with respect to how you design your classes, so that you can do it in a way that's actually sane in and of itself.

    As far as interfaces and decoupling - that's great - on component boundaries. Internally, only if needed.

    Amen to that!

  93. Re:Java is crap anyway by Fruit · · Score: 1

    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.

    Not only that, it probably does something useful too.

  94. Re:Java is crap anyway by strstrep · · Score: 1

    print "Spoken like someone who ".$string."\n";

    Why don't you let Perl do the interpolation for you? You have an extra ". and ." there.

  95. C is for Citigroup (and Google's results vary...) by llamafirst · · Score: 1

    Speaking of which, C now stands for Citigroup according to Google.

    Huh? Your search shows "C programming language" as the first hit. "C is for cookie" comes before the citigroup hits.

    Google returns different results for different people.

    In fairness to the original poster, when I go to that link, the FIRST THREE links in the google results are in fact for Citigroup for me, as well as link #6. Seriously.

    And none of the links are on the first page even mention "C is for cookie", despite my appreciation for tasty cookies of the edible variety.

  96. Re:Java is crap anyway by dgatwood · · Score: 1

    To decrease readability.

    BTW, for those of you who didn't run it, this prints the words, "Spoken like someone who hasn't heard of Perl."

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  97. Re:Java is crap anyway by BOFHelsinki · · Score: 1

    How do you "drive innovation"?

    Car analogy please.

  98. Re:Java is crap anyway by Gr8Apes · · Score: 1

    What I was talking isn't anything like that. It's still a conventional mocking framework in a sense that you have to set up mocks & tests yourself (though it does use some neat C# features such as expression trees to make it a lot easier than it normally is). The trick is that they use backdoors in VM to do things that you can't normally do, such as intercepting calls to constructors, non-virtual, sealed or static methods, etc, and injecting your mocks instead of what would have run. Which completely unties your hands with respect to how you design your classes, so that you can do it in a way that's actually sane in and of itself.

    I think I see what you're getting at - you're asking if there's something out there for Java that would allow you to do a call to an external object in your method without actually calling it? I don't know.

    --
    The cesspool just got a check and balance.
  99. Re:Java is crap anyway by Gr8Apes · · Score: 1

    Spring sucks.

    Give me one good thing it does that's necessary, done well, and not redundant.

    Um, integrate hibernate?

    You apparently missed my Hibernate spiel. To sum it up - Hibernate sucks to a similar level as Spring, just in different ways.

    Simplify EJBs you say? Only if you want to kill any project you're ever associated with, with or without Spring. (EJBs are one of the true Java horrors to come out of Sun, far too pretty in academic terms to ever be practical)

    --
    The cesspool just got a check and balance.
  100. Re:Java is crap anyway by Anonymous Coward · · Score: 0

    I can reinforce that. Spring is in some ways cool, but it gets in the way very much. You can observe this even on a trivial example when you write a program in Scala / Clojure etc. Why? Because Spring has extremely many inter-dependencies in its own code which apparently are there for no reason other than to save a Java programmer some typing effort.
     
    And they were really not good at guessing what sort of things a Java developer might need. Like quite frequently requiring objects from the standard java.sql classes every other library uses, such as ResultSet (mainly rows and columns resulting from a SQL query) together with ResultSetMetadata (bascially column types, indentifiers etc from the SQL side of things). Spring does not allow access to these things it considers "managed" by itself with reasonable effort - you have to override methods, deep-clone objects, and do other things to get at this information. And that's going to cost way too much time. Its one of these frameworks that you can only save time with when you use it almost exactly like some narrow-minded group thought it would be used. For everything else, Spring just gets in the way.

    Besides, even when using it normally it is fairly ugly and contorted...

  101. Re:Java is crap anyway by Anonymous Coward · · Score: 0

    I used commons Math and I love it

  102. Re:Java is crap anyway by Anonymous Coward · · Score: 0

    At least you know which element is unbalanced. With sexps you don't know til you hit the end. Which may be a thousand lines down.

  103. You don't know Java by Anonymous Coward · · Score: 0

    nor programming languages in general if you think Java and C# has weak typing. Learn a little before spouting off. (But then, this is slashdot, so maybe I shouldn't be surprised.)

    1. Re:You don't know Java by ThePhilips · · Score: 1

      I do not know the C#, but at least in the Java one has to often downcast to the java.lang.Object.

      Probably the C# is bit smarter and does additional check during compile time (in many cases possible), yet this is a *feature* of weak-typed languages: methods/objects are bound to each other as a rule during run-time, not during compile time like in the strict typed C++.

      And the weak typing has to be a feature for the language to be message/event friendly. (Just look to what the Qt had to resort to implement the messaging in C++ - something one takes for granted in the Java and C#.)

      But yeah, this is the Slashdot and last I touched Java (thanks God) was many years ago. It might have changed, but unlikely: the Sun kept Java consistently backward compatible.

      --
      All hope abandon ye who enter here.
  104. Interesting paper comparing C, C++, Java and more by krangelmat · · Score: 1

    I have found a very interesting paper called "Are Scripting Languages Any Good? A Validation of Perl, Python, Rexx, and Tcl against C, C++, and Java"(2002).

    You can find it here --> http://page.mi.fu-berlin.de/prechelt/Biblio//jccpprt2_advances2003.pdf

    Here is the abstract copied from the paper:

    Four scripting languages are introduced shortly and their theoretical and purported characteristics are discussed and related to three more conventional programming lan- guages. Then the comparison is extended to an objective empirical one using 80 imple- mentations of the same set of requirements, created by 74 different programmers. The limitations of the empirical data are laid out and discussed and then the 80 implementa- tions are compared for several properties, such as run time, memory consumption, source text length, comment density, program structure, reliability, and the amount of effort re- quired for writing them. The results indicate that, for the given programming problem, “scripting languages” (Perl, Python, Rexx, Tcl) are more productive than conventional languages. In terms of run time and memory consumption, they often turn out better than Java and not much worse than C or C++. In general, the differences between languages tend to be smaller than the typical differences due to different programmers within the same language.

    After reading the article I got so inspired that I decided to try and solve the programming problem using C++(and I finished it). It is a logical problem that will show the programming languages performance.

    If you are only interested in the programming problem you can see the website here --> http://page.mi.fu-berlin.de/prechelt/phonecode/

    This paper is dated 2002 so I guess there has been a lot of updates to many of the programming languages used in this study. It would be very nice if we could do an up to date comparison today to see how big of a difference it is today. Perhaps we are mostly interested in performance, memory consumption, code length, development time. What do you think? Any takers on this?

    Regards,
    Krangelmat

  105. JAVA / C++ etc. by gsehgal · · Score: 1

    After programming in various programming languages over the course of my career e.g. C,C++,Perl,Cobol,Pascal,Java etc. what I find is that every language is actually suitable for a particlar business use case. For example: C/C++ are good for application which rely heavily on performance, such as trading application where the application needs to deal with real time data and calculations is done in milliseconds. Though Java on the other hand is a good language for the Web or Business application where though we do need performance it is a lot less compared to what a trading application would require. Also, over the past 10 years we have seen that languages have been constantly evolving with the evolution of Personal Computing. Therefore rather than focusing on becoming a master in one programming language it would be better to have a general know how about the language constructs which would make it easier to come onboard when the senior management decided to use another language. Unfortunately the schools today have started teaching their courses in languages such as Java, which though "might" help students find a job will mostly leave them with a weak foundation. In our times the schools use to teach most of the courses in C, and courses such as compiler design and programming langauges were compulsary. Also all the core courses were in C/C++ and we had some auxillary courses which offered Java/ VB etc. This made our foundation strong and have help "me" in the long run...

  106. Re:Java is crap anyway by Anonymous Coward · · Score: 0

    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.

    Maybe those three companies just did not hire the right person :-)