Slashdot Mirror


Survey Says C Dominated New '08 Open-Source Projects

svonkie writes "C overwhelmingly proved to be the most popular programming language for thousands of new open-source projects in 2008, reports The Register (UK). According to license tracker Black Duck Software, which monitors 180,000 projects on nearly 4,000 sites, almost half — 47 per cent — of new projects last year used C. 17,000 new open-source projects were created in total. Next in popularity after C came Java, with 28 per cent. In scripting, JavaScript came out on top with 20 per cent, followed by Perl with 18 per cent. PHP attracted just 11 per cent, and Ruby six per cent. The numbers are a surprise, as open-source PHP has proved popular as a web-site development language, while Ruby's been a hot topic for many."

45 of 378 comments (clear)

  1. c-derived languages? by Drantin · · Score: 4, Insightful

    Seeing as one of the projects mentioned with the most releases was in C#, is it lumping C,C++,C#, etc all under one label?

    --
    Actio personalis moritur cum persona. (Dead men don't sue)
    1. Re:c-derived languages? by daknapp · · Score: 5, Insightful

      Which it shouldn't, as C, C# and C++ seem pretty distinct.

      And what about Objective-C?

    2. Re:c-derived languages? by Anonymous Coward · · Score: 5, Insightful

      C is very popular for cross platform programs especially open source that don't rely on much platform specific code (c# is windows specific and c++ has some issues if you are not very careful).

      But yeah, c should not count for c++ and c#. Their syntax may be similiar but they are approached and programmed quite differently (their are other languages with similiar c syntax so but they are not lumped in).

    3. Re:c-derived languages? by iluvcapra · · Score: 4, Funny

      Open-source iPhone development?

      --
      Don't blame me, I voted for Baltar.
    4. Re:c-derived languages? by DragonWriter · · Score: 4, Informative

      I'd expect that the C family won because of Objective-C; there was a huge amount of iPhone development this year.

      I read TFA but don't have it open, ISTR that there only a small number of mobile projects, and a smaller number of those for the iPhone, on the order of 40, out of the thousands of new projects, so I don't think that Objective-C for the iPhone tipped the balance for the C family, even if they did count the C family as one unit.

    5. Re:c-derived languages? by drpimp · · Score: 4, Funny

      Now that's just being subjective!

      --
      -- Brought to you by Carl's JR
    6. Re:c-derived languages? by Goldberg's+Pants · · Score: 4, Funny

      Screw all the C variants. Where did Fortran place?

    7. Re:c-derived languages? by FishWithAHammer · · Score: 5, Informative

      c# is windows specific

      Wrong.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    8. Re:c-derived languages? by shaitand · · Score: 4, Insightful

      Technically no, practically yes. C# is .net specific and .net is windows specific. Mono is not 100% compatible.

    9. Re:c-derived languages? by edwardd · · Score: 3, Insightful

      Isn't Objective-C about as widely used as Esperanto?

    10. Re:c-derived languages? by Curien · · Score: 5, Funny

      Actually, C != C++ is undefined behavior.

      --
      It's always a long day... 86400 doesn't fit into a short.
    11. Re:c-derived languages? by jma05 · · Score: 4, Insightful

      > Technically no, practically yes. C# is .net specific and .net is windows specific. Mono is not 100% compatible.

      1. If (depending on version) Mono is not a perfect port of .NET, that makes .NET code using those bits, not cross-platform. That is not the same as windows specific. For instance, not every program written in Python will run on all platforms. Some of its' standard libraries are platform specific (Eg: msvcrt). But Python is considered cross-platform.

      2. C# IS cross-platform. AFAIK the compiler implementations behave identically. It's small portions of the standard library that are at fault.

      But nothing stops you from writing fully cross-platform code, if you must. Just a bit more effort.

      Personally, I gave up on C#. While C# is indeed better designed than Java, Groovy integrates with Java well and fills up any of the major feature and productivity gaps that I cared for anyway.

    12. Re:c-derived languages? by jank1887 · · Score: 3, Funny

      COBOL? Anyone? hello?

    13. Re:c-derived languages? by Dynedain · · Score: 4, Insightful

      You're getting funny mods, but you're more on target than you think. All the jailbreaking stuff for the iPhone is open-source, as are the package mangers you can install after jailbreaking, and most of the apps available through those package managers. It's a pretty big collection of stuff.

      --
      I'm out of my mind right now, but feel free to leave a message.....
    14. Re:c-derived languages? by chill · · Score: 4, Funny

      Where it belonged, behind Lisp!

      --
      Learning HOW to think is more important than learning WHAT to think.
    15. Re:c-derived languages? by keeboo · · Score: 4, Funny

      Replying my own - I would prefer to put it this way

      Is it cross-platform?

      Technically - Yes
      Practically - Yes
      Out-of-the-box - Not always.

      Huh?

      Well, while you're at it, why not making a more complete list:

      Technically - Yes
      Practically - Yes
      Out-of-the-box - Not always
      In principle - Yes
      Philosophically - Yes and No.
      Karmically - No
      Politically - Yes
      Hypothetically - In theory, yes

    16. Re:c-derived languages? by shaitand · · Score: 5, Informative

      'As for me, I don't discount any solution just because of who comes up with it, so I'm fine with .NET. To each his own.'

      *shrugs* We must agree to differ then. I prefer to learn from history. Historically speaking, there haven't been any useful Microsoft technologies that were or are completely interoperable, stable, relatively bugfree, and secure. Seeing as how they have released lots of technologies and solutions over the years they have had plenty of opportunities and have on numerous occasions even lied about the aforementioned things.

      Maybe .Net is/was/will be the exception. If so I'm not concerned, there are other solutions that DO meet the above criteria and work well. All in all, my track record of avoiding Microsoft solutions when something else will do will then have been the right choice about 99 out of hundred times and saved me thousands of dollars in license, support, and training costs. ;)

    17. Re:c-derived languages? by orzetto · · Score: 3, Funny

      Mi parolas esperanton, diabla malsentemulo!

      --
      Victims of 9/11: <3000. Traffic in the US: >30,000/y
    18. Re:c-derived languages? by maxwell+demon · · Score: 3, Funny

      From the draft of the next C++ standard, n2798, 1.9 [intro.execution]/16:

      If a side effect on a scalar object is unsequenced relative to either another side effect on the same scalar object or a value computation using the value of the same scalar object, the behavior is undefined.

      Since the built-in == operator doesn't have a sequence point between its argument, the side effect of c++ is unsequenced relative to the value computation of c on the left hand side of the ==, and thus the behaviour is undefined.

      Also you find in the latest public draft of the 1998 C++ standard, CD2, 5 [expr]/4:

      Between the previous and
      next sequence point a scalar object shall have its stored value modified at most once by the evaluation of an
      expression. Furthermore, the prior value shall be accessed only to determine the value to be stored.

      Note that in c == c++, on the LHS the prior value of c is accessed not in order to determine the new value, but only to compare it with the result of the right hand side. Therefore it was undefined in C++ even back then. I don't have access to any version (draft or otherwise) of the C standard, but I think it's undefined in C, too (although the exact wording probably is different again).

      --
      The Tao of math: The numbers you can count are not the real numbers.
  2. no C++ by shaitand · · Score: 4, Interesting

    I'm surprised C++ didn't make the list.

    1. Re:no C++ by RedWizzard · · Score: 5, Informative

      I'm surprised C++ didn't make the list.

      It didn't make the list because apparently the authors think that C, C++, and C# are all the same language.

  3. Hrmmm. by inode_buddha · · Score: 5, Funny

    I can C clearly now...

    --
    C|N>K
    1. Re:Hrmmm. by ciaohound · · Score: 5, Funny

      ... the brain is gone.

      --
      Oh, yeah, it's not easy to pad these out to 120 characters.
  4. Not surprising by DragonWriter · · Score: 3, Insightful

    The results really aren't surprising: as TFA states, most projects use more than one language. So C coming out on top with Java #2 is hardly unsurprising: many extensions built for scripting languages use either C or the primary language for the VM they target (Java for the JVM) in addition to whatever scripting language they are for. And JavaScript being tops among scripting languages also isn't surprising; PHP and Ruby may be popular for web applications, but most PHP and Ruby web apps (and web app frameworks) rely on the use of JavaScript on the client side, and so will often also include JavaScript.

  5. Black Duck Software? by ChienAndalu · · Score: 4, Informative

    Seriously, who ever heard of that company? Anyway, here is their actual press release, including a bogus list with 10 random apps I never heard of.

    And by the way, Python got 10%.

    1. Re:Black Duck Software? by adamkennedy · · Score: 3, Informative

      > Seriously, who ever heard of that company?

      They're the guys that do the Koders.com code search engine.

    2. Re:Black Duck Software? by jonaskoelker · · Score: 5, Insightful

      Anyway, here is their actual press release

      Thanks for that.

      Let's compare "here" with the summary. "Here":

      47% of these newly created projects used the C language. Java came in as the number two language of choice at nearly 28%. Third was Javascript at over 20%. In the world of scripting, nearly 18% of the projects chose to use Perl

      Summary:

      47 per cent â" of new projects last year used C. [...] Next in popularity after C came Java, with 28 per cent. In scripting, JavaScript came out on top with 20 per cent, followed by Perl with 18 per cent.

      I note that 47+28+20+18 > 100, so somewhere there's a move from one "percentage pie" to the next. I would like to know which language is in which pie, and more importantly why, and why there aren't numbers for one big pie with everyone in it. I'd also like to know why the summary (which is taken from the register) and the "here" seem to be ambiguous, when read together, about which pie javascript goes into.

      I don't think malice is a good explanation for all of this, so I'll assume incompetence. That goes well with the 98%-of-everything-is-crap law ;)

    3. Re:Black Duck Software? by talexb · · Score: 4, Informative

      From TFA: "Note, most projects used more than one language and these results are based on the number of projects using a given language, not the number of lines of code created."

      There, I fixed that for you. :)

  6. Re:Just because PHP is popular by shaitand · · Score: 3, Insightful

    PHP has been applied to many large scale development projects, demonstrating that you are incorrect. Don't misconstrue your own preference for one language over another to mean that a language is inferior or unsuitable.

  7. H1B Anthem by Penguinshit · · Score: 3, Funny

    Jose can you C? Then you've got a job at HP!

  8. Re:Just because PHP is popular by DragonWriter · · Score: 4, Insightful

    PHP has been applied to many large scale development projects, demonstrating that you are incorrect.

    Well, no.

    "X has been used for Y" does not demonstrate that "X is suitable for Y".

  9. C(++) is here to stay! by CuteSteveJobs · · Score: 3, Insightful

    Our company's flagship product was written 15 years ago. When we did it, we had to choose a language. Nearly considered Pascal and all the other flavors of the month. C has its shortcomings for sure, but all these years later we're still here, it's still well supported and plenty of people know how to write it. Improvements like recompile-while-running, modern debuggers and error trapping have made it a much more productive environment.

    Yes. It certainly has its flaws, but I don't think we could have made a better choice. If I had to pick another language to still be active in another 15 years, that would be it.

  10. how stupid by Lord+Ender · · Score: 3, Insightful

    What the hell does "scripting" even mean? Perl and Ruby are the same class of language as C. Javascript is an entirely different beast. Whoever categorized Ruby and Javascript together must be completely ignorant of programming.

    --
    A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    1. Re:how stupid by kc8apf · · Score: 3, Insightful

      Yes because a compiled, statically-typed, procedural language (C) has everything in common with an interpreted, dynamically-typed, object-oriented language.

      --
      kc8apf
  11. Re:Just because PHP is popular by bnenning · · Score: 3, Insightful

    How can you build anything large-scale in a language too dynamic for proper static verification?

    Sometimes large-scale projects in static languages can be small-scale in dynamic. For example look at the ridiculous amount of resources devoted to dependency injection frameworks in Java, where in Python or Ruby those capabilities are essentially built in.

    --
    How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
  12. Re:Just because PHP is popular by shaitand · · Score: 4, Insightful

    'But at the same time, show me a large scale project done in PHP, and I'll show you a large scale project that would have been better off in Python.'

    With all do respect, I find that most worshipers at the altar of python feel the same way about anything that doesn't require C for the sake of performance.

    I realize you guys feel that code should LOOK pretty. But not everyone agrees that you need the language to mandate style and FUNCTIONALLY python is no more capable than Perl (example intentionally chosen to make pythonites cring). For most web projects, php is as capable as either.

    Besides, he claimed PHP was unsuitable for large projects not merely that there were better choices. PHP is suitable and demonstrably so. There are languages that aren't, like VB. There are no large projects primarily written in VB for this reason despite the fact that vb was extremely popular.

  13. Re:Just because PHP is popular by KermodeBear · · Score: 4, Interesting

    For the services that they provide...

    Wikipedia now has 200 application servers, 20 database servers and 70 servers dedicated to Squid cache servers. Reference

    I'd say that it is quite remarkable.

    --
    Love sees no species.
  14. An alternative list by sien · · Score: 4, Interesting

    Tiobe maintains a list that is updated every month that tells a different story.

    For January 2009, rounded; Java, 19%; C, 16%; C++, 10%; VB, 9%; PHP, 10%.

  15. C dominates new open source projects... by Lars512 · · Score: 4, Funny

    ...as measured by lines of code

    (ducks)

  16. No, they didn't. by Anonymous Coward · · Score: 3, Informative

    Actually, I think these guys know what they're talking about. It's just the Slashdotted, watered down version which makes them look as if they don't.

  17. Re:Just because PHP is popular by merreborn · · Score: 4, Insightful

    PHP has been applied to many large scale development projects, demonstrating that you are incorrect.

    Well, no.

    "X has been used for Y" does not demonstrate that "X is suitable for Y".

    Three of the world's top 10 websites are PHP-based. Wikipedia, and facebook, along with vast chunks of yahoo.

    I'm gonna go ahead and argue that "X has been successfully used for Y by 3 of the top 10 organizations in the Y industry" is pretty solid evidence that "X is fairly suitable for Y". In fact, I think you'd be hard pressed to demonstrate that "X is unsuitable for Y", given the level of success these sites continue to achieve.

    WP, Facebook, and Yahoo all have their business problems, but PHP is the least of them.

  18. Re:Apples and Oranges by weston · · Score: 4, Informative

    Why throw JavaScript in there? The rest are server-side languages, while JavaScript is client-side.

    Two reasons I can think of:

    1) An increasing amount of number of applications are being delivered via the web browser
    2) JavaScript increasingly lives a number of other places besides the browser. See Rhino, JScript.NET, Seed, and probably a few other places I'm not thinking of right now.

  19. Re:Just because PHP is popular by Anthony_Cargile · · Score: 3, Funny

    My last brainfuck website failed because the bf compiler got confused between language operators and XHTML tags, and my client refused to pay the $10,000 brainfuck developer fee anyways. Now I just write them in x86 assembly and my development time is much-improved - I finished a 10 page site in under half a decade!

  20. 14,000+ new projects? by Pseudonym · · Score: 4, Funny

    What's the bet that most of the 7,000 new open source projects were GNOME bindings for "Hello World"?

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  21. Re:Just because PHP is popular by tacocat · · Score: 3, Informative

    I think there is something to take from the Perl Best Practices when considering the viability of different languages. In this book they stress over and over the need to have maintainable code. Over the years I have had to go back and manage a large number of my applications and have found that the technical cost to any of these has more to do with the documentation and quality of the code above everything else. I have been (trying) to use Ruby and Javascript in addition to my long familiar Perl languages for some projects and have come to some conclusions based on these three.

    Perl has a long history. Which translates to a lot of smart people using it and a fantastic amount of both well documented modules and well established modules that work well and readily. So there are four advantages here: documentation that is complete, documentation is accurate, modules are completely functional, testing/execution is easy.

    Javascript is a bit of a fluster-cluck in comparison to this. Documentation is mixed. But there are a lot of really great quality modules with some really great sets of documentation out there. And some gross exeptions. But everyone has their black sheep. What javascript doesn't have is the ability to easy execute/test the code from a command line environment. It's got too much dependency on that ugly browser which can make execution and debugging rather difficult. IMHO javascript needs a rewrite to address it's shortcomings but it's still impressive in accomplishments.

    Which turns my attention to Ruby. Lovely language, pretty, elegant, nice to work with. If you know what you are doing. There is effectively little to zero documentation on just about everything. Core modules, when you call up the 'ri' or 'rdoc' returns an emply documentation file. Nice job making it impossible to understand what's going on. There is peepcode, but with $9 a whack at documentation it's pretty easy for a project to get very expensive just trying to see what might be the best module. This is nice for one level of capitalism, but bad for the rest. Ruby has done an extremely bad job on documentation. Fortunately, they have done a very good job with test and execution so it's easier than javascript to work with in that regard. You just don't know what you are doing when you start.

    If you don't believe me about Ruby try 'ri Rspec'. It returns an empty file letting you know there is nothing done to document the use of this module. I can find hundreds but this is just an example.

    If Ruby was able to provide a level of documentation and functional modules that Perl can demonstrate there would not be much to slight Ruby for. This is a major barrier to adopting languages: documentation, testability, execution/debugging