Survey Says C Dominated New '08 Open-Source Projects 378
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."
Black Duck Software? (Score:5, Informative)
Seriously, who ever heard of that company? Anyway, here [blackducksoftware.com] is their actual press release, including a bogus list with 10 random apps I never heard of.
And by the way, Python got 10%.
Re:c-derived languages? (Score:5, Informative)
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.
Re:Black Duck Software? (Score:4, Informative)
> Seriously, who ever heard of that company?
They're the guys that do the Koders.com code search engine [koders.com].
The numbers don't add up right in my mind (Score:3, Informative)
[!scripting: C=47, java=28]
Note that 47+28 = 75, so that leaves 25%. Is C++ really that small? And let's just conveniently forget about C#, Objective C, and the odd app here or there written in lisp/scheme, an ML-like language (SML, ocaml, haskell), ada, pascal, eiffel, fortran, ...
(I assume there isn't a moronic failure to distinguish between C, C++, C--, C# and Csh)
Even more surprising:
[Scripting: js=20, pl=18, php=11, rb=6]
That's 20+18+11+6 = 55 (percent), leaving 45 percent to be fought over by languages not attracting more than 6% of the projects. That takes at least eight languages.
This means we have twelve scripting languages in (reasonably) widespread use. Which eight (or more) remain?
I'm guessing python, bash and lua, but then I'm sorta' blank. I can guess at elisp, guile, QuakeC and the fragment shader language, but I'm kinda' skeptical. Anyone care to guess?
God wrote in Lisp (Score:3, Informative)
Perl and Ruby are the same class of language as C.
Perl and Ruby are much higher level languages than C. They're no Lisp, but they're nothing like C.
Re:Black Duck Software? (Score:5, 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. :)
RTFA (Score:3, Informative)
The percentages are the percentages of projects that used the language.
TFA notes that most projects used more than one language.
Ergo, if you add up the percentages of the projects that use each language for every language in the survey (not all are reported in TFA), you will get some number > 150% (since more than half of the projects used at least two languages) and possibly much greater than that.
Re:no C++ (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.
Re:c-derived languages? (Score:5, Informative)
c# is windows specific
Wrong.
eval() == interpreted language (Score:3, Informative)
Being "interpreted" is not a property of the language
If a language has its translation mechanism easily available to the program, then the language itself is designed to be interpreted (or at least bytecode-compiled). ECMAScript and the three P's all have this, and it's called eval() in all four.
merely of some implementation of the language.
Under that definition, a "scripting" language is one whose dominant implementations are all interpreters.
Re:how stupid (Score:3, Informative)
'What the hell does "scripting" even mean?'
That the language uses an interpreter rather than a compiler. This is less of an issue with the ridiculously fast processors but interpreted languages are slower than compiled languages and don't result in a stand-alone executable. For a long time many didn't even considered scripting to be real programming.
'Perl and Ruby are the same class of language as C.'
Not even remotely. While you can use Perl and Ruby for many applications, they are not suitable for systems programming. For that you need a compiled language (and I'm not talking about Javaism but actual native code compilation) like C, C++, and Pascal. There are hacks to compile scripting languages but they aren't fully functional and really aren't worthy of more than a footnote for the sake of the pedants.
'Whoever categorized Ruby and Javascript together must be completely ignorant of programming.'
Why? Because the JavaScript interpreter is usually built into web-browsers? They are both interpreted languages.
No, they didn't. (Score:3, Informative)
Re:Apples and Oranges (Score:5, 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 [mozilla.org], JScript.NET [wikipedia.org], Seed [arstechnica.com], and probably a few other places I'm not thinking of right now.
Re:c-derived languages? (Score:2, Informative)
From those I knew who DID use C# and wanted to use mono as an alternative the word was that mono lacked fundamental components of the standard library that were basically showstoppers (forms if I remember correctly).
System.Windows.Forms has been essentially complete for a while now. As you say, your information is outdated.
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.
Re:c-derived languages? (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. ;)
Re:Just because PHP is popular (Score:4, 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
Re:Just because PHP is popular (Score:1, Informative)
Re:Just because PHP is popular (Score:3, Informative)
Dynamic typing may allow you to write code fast, but "the job" is more than just initial development. Static typing is appropriate for projects which you expect to have to maintain.
Re:No, they didn't. (Score:3, Informative)
Take another look. On this page [blackducksoftware.com] they say:
"Over 90% of open source code is written in the major languages: C, C++, Java, Javascript and C#"
And on this page [blackducksoftware.com] they say:
"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%."
...which adds up to 95%, so unless there's some seriously bad math here, they included C++ and C# in that 47% which they refer to as "the C language."
Comment removed (Score:2, Informative)
Re:no C++ (Score:3, Informative)
It did make the list, at 10%. Its not in the Register article, but it is in the original report from Black Duck Software.