Slashdot Log In
Survey Says C Dominated New '08 Open-Source Projects
Posted by
timothy
on Thu Jan 22, 2009 06:54 PM
from the take-that-25-other-letters dept.
from the take-that-25-other-letters dept.
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."
Related Stories
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
c-derived languages? (Score:5, 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?
Re:c-derived languages? (Score:5, Insightful)
Which it shouldn't, as C, C# and C++ seem pretty distinct.
And what about Objective-C?
Parent
Re:c-derived languages? (Score:4, Funny)
Parent
Re: (Score:3, Insightful)
Isn't Objective-C about as widely used as Esperanto?
Re:c-derived languages? (Score:4, Funny)
Parent
Re:c-derived languages? (Score:5, Funny)
Parent
Re:c-derived languages? (Score:5, 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.
Parent
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.
Parent
Re:c-derived languages? (Score:5, Funny)
Screw all the C variants. Where did Fortran place?
Parent
Re:c-derived languages? (Score:4, Funny)
Parent
Re:c-derived languages? (Score:5, Funny)
Where it belonged, behind Lisp!
Parent
Re:c-derived languages? (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).
Parent
Re:c-derived languages? (Score:5, Informative)
c# is windows specific
Wrong.
Parent
Re:c-derived languages? (Score:5, Insightful)
Technically no, practically yes. C# is .net specific and .net is windows specific. Mono is not 100% compatible.
Parent
Re:c-derived languages? (Score:5, 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.
Parent
Re:c-derived languages? (Score:5, 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
Parent
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. ;)
Parent
Re:c-derived languages? (Score:5, Funny)
Actually, C != C++ is undefined behavior.
Parent
no C++ (Score:5, Interesting)
I'm surprised C++ didn't make the list.
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.
Parent
Hrmmm. (Score:5, Funny)
Re:Hrmmm. (Score:5, Funny)
... the brain is gone.
Parent
Not surprising (Score:4, 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.
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: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].
Parent
Re:Black Duck Software? (Score:5, Insightful)
Anyway, here [blackducksoftware.com] 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 ;)
Parent
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. :)
Parent
H1B Anthem (Score:4, Funny)
C(++) is here to stay! (Score:4, Insightful)
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 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?
how stupid (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.
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: (Score:3, Funny)
God wrote in Lisp
Ostensibly, yes. But God hacked most of the Universe together with Perl. [xkcd.com]
Re:how stupid (Score:4, Insightful)
Yes because a compiled, statically-typed, procedural language (C) has everything in common with an interpreted, dynamically-typed, object-oriented language.
Parent
Re: (Score:3, Insightful)
Open source != popularity (Score:3, Insightful)
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.
An alternative list (Score:5, Interesting)
Tiobe maintains a list [tiobe.com] that is updated every month that tells a different story.
For January 2009, rounded; Java, 19%; C, 16%; C++, 10%; VB, 9%; PHP, 10%.
C dominates new open source projects... (Score:5, Funny)
...as measured by lines of code
(ducks)
14,000+ new projects? (Score:5, Funny)
Re:Just because PHP is popular (Score:4, 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.
Parent
Re:Just because PHP is popular (Score:5, Insightful)
Well, no.
"X has been used for Y" does not demonstrate that "X is suitable for Y".
Parent
Re:Just because PHP is popular (Score:5, Insightful)
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.
Parent
Re:Just because PHP is popular (Score:5, 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.
Parent
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
Parent
Re:Just because PHP is popular (Score:4, 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.
Parent
Re:Just because PHP is popular (Score:4, Funny)
Parent
Re:Just because PHP is popular (Score:5, Interesting)
For the services that they provide...
I'd say that it is quite remarkable.
Parent
Re: (Score:3, Insightful)
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.
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: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.
Parent