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."
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)
I'm surprised C++ didn't make the list.
I can C clearly now...
C|N>K
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.
Does not mean it is suitable for large-scale development projects. People who have done projects in better languages understand this, and I fully expect to be flamed by people who need PHP to get anything done.
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%.
Jose can you C? Then you've got a job at HP!
I have something in common with Stephen Hawking...
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.
The linked article was based on a post from the Black Duck news release that outlines language popularity briefly. From the real source, "..Python at nearly 10% and Ruby at 6%," was replaced with simply "and Ruby six per cent."
Why? Out of all the languages mentioned, why remove only the pen-ultimate?
.
Also headlined: "C developers lost more jobs in 2008. Java, Ruby, Python, and C# hired more people (and payed higher) in 2008. Twice as many applications roll out for 2008 vs. 2007"
.
.
In other news: "PHP development held flat."
.
Ouch?
[!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?
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.
You use python ?!
I died a little inside...
Now I have two reasons to use Python.
One thing that PHB types need to be made aware of is that the level of use within open source projects does not necessarily imply usage in general. I would expect PHP to be used less to make open source projects. Rather, I would expect it to be used to build websites, which tend to be heavily customized things that don't need to be replicated across sites the same way that open source software tends to be.
Obviously there are exceptions for things like Squirrelmail or PHPBB, but they don't invalidate my argument.
In other words, most of them die before they are even borne.
Quite true, as it is with commercial projects. It's just that you never see those.
How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
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.
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.
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.
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%.
...as measured by lines of code
(ducks)
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.
A lot of C and C++, moderate Java, lots of perl...
In C I "believe" I know almost always have a good idea of what's happening at the machine level. How many instructions (up to a constant), how many nanoseconds (ditto). I may be wrong up to small constants (especially taking account of caching effects, parallelism, blah blah) but I don't think I'm radically off much. I also have a good (IMO) feeling for what optimization is doing.
In C++, I feel the same way but I also think this is more arguable, and more of a nontrivial skill to acquire.
In perl, I absolutely don't. What's the time
to evaluate this regex? Yes, I know some of the
underylying theory and could probably do a decent
job if I thought hard about it, but the point is I don't. And ditto for other high level constructs
in perl. And if I start to fret about such things,
maybe perl is the wrong language for whatever I'm
doing at the time.
Java puzzles me. It's a bit opaque in terms
of quick "what's the metal [/silicon?] doing?" but ultimately manageable if you understand the "interpreter/VM/..." and your own "low level" code. Yet many developers - including developers of core java libraries - clearly are more in the perl mode of obliviousness. So it's a grey area whether Java is overall for someone who has to care about speed/efficiency vs productivity.
Nevertheless, I think the point is that
there is a performance vs quick-productivity
spectrum, and no answer is universally right, but
it is one reason why the "low level" vs "scripting" continuum actually isn't arbitrary
or unwelcome.
For C to die is like saying algebraic notation is going to die. Suspect if it wasn't for the need to eat, we would all program C & figure out ways to get the same features of our day job languages in C.
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.
Tweet, tweet.
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});
When I find my code in tons of trouble,
Friends and colleagues come to me,
Speaking words of wisdom:
Write in C.
As the deadline fast approaches,
And bugs are all that I can see,
Somewhere, someone whispers:
Write in C.
Write in C, write in C,
Write in C, oh, write in C.
LOGO's dead and buried,
Write in C.
I used to write a lot of FORTRAN,
For science it worked flawlessly.
Try using it for graphics!
Write in C.
If you've just spent nearly 30 hours,
Debugging some assembly,
Soon you will be glad to
Write in C.
Write in C, Write in C,
Write in C, yeah, Write in C.
BASIC's not the answer.
Write in C.
Write in C, Write in C
Write in C, oh, Write in C.
Pascal won't quite cut it.
Write in C.
If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.