Ohloh and the popularity of programming languages in free and open source software

22 September 2008

I came across my name in a site called Ohloh. I remember it coming out a few years ago. Now it has had time to really get going, I thought it was about time that I review the site here.

Ohloh tracks the free/open source software it knows about, they only track code held in CVS, Subversion or Git (i.e. not in bazaar, which I tend to use, or mercurial), in repositories that they can easily find. Despite the limitations, this is a very large amount of code.

Ohloh tries to figure out from the commits who the developers are, and thus my name came up (because of a very minor contribution to Gentoo once upon a time).

Ohloh also tries to figure out the usage of programming languages in free/open source software. It allows you to produce various graphs; those below are based on the total number of active free/open source projects for each language.

Some important caveats to bear in bind:

  • Ohloh only tracks how the language is being used in free/open source software, the majority of code written in the world runs on in-house systems; this code is often never shared externally.
  • The percentage figures may be somewhat lower than one would expect because their definition of a language is rather weaker than I would personally use, so many markup formats such as HTML or XML and specialised syntaxes are all counted as programming languages even though they are not Turing-complete.
  • These are relative percentages, we are comparing languages against each other. All languages featured here are growing steadily in terms of the absolute number of free/open source programmers using them. So essentially what we doing here is comparing the speed at which languages are growing.

Regular readers will know that I like high level, general purpose, dynamic languages; so lets start with them:

http://media.commandline.org.uk/images/posts/languages/comparison.png

Go Python! Of course these figures might be completely meaningless as Perl is often used by sys-admins who rarely share their code using public revision control repositories.

Now lets look at the big beasts, the major compiled languages. These bread and butter languages seem to be stabilising around equal percentages:

http://media.commandline.org.uk/images/posts/languages/comparison2.png

Platform-oriented proprietary languages are not heavily used in free/open source software, as you might expect, however lets compare two against each other, Microsoft's C# versus Apple's Objective C:

http://media.commandline.org.uk/images/posts/languages/comparison3.png

C# is stronger, not surprising considering the vast difference in users between Windows and OS X.

A more interesting question is whether the rising use of C# in free/open source software is evidence of a developing accommodation between the Microsoft world and the Free World?

At least that is until Microsoft next calls us all cancer and threatens to sue the whole free/open source world again.

Interesting stuff, let me know if you come up with any interesting comparisons.

1 David Jones says...

Mmm porridge.

What do you prepare your graphs in? I'm becoming a fan of Google Charts API.

Posted at 2:09 a.m. on September 22, 2008


2 Ciaran McCreesh says...

The C and C++ stats from Ohloh are highly suspect. Originally Ohloh treated C/C++ as one language. I gave them a patch that would let ohcount detect the difference between C and C++ in most cases, although it will still sometimes treat C++ headers as C. But even with that, they haven't rerun ohcount on the full history for every project yet.

Posted at 9:50 a.m. on September 22, 2008


3 Giacomo says...

You say "Microsoft C++" and then show values for "Microsoft C#", which is a very different beast. If you want to go for C#, you shouldn't mention C++ :)

Posted at 12:58 p.m. on September 22, 2008


4 Zeth says...

Thanks guys for your comments.

@David, I will have to look at the Google charts API, I have not used that yet.

@Ciaran, Thanks for that info, the whole thing is probably quite suspect to be honest. After all as Disraeli said, 'there are three types of lies: Lies, Damn Lies and Statistics'.

@Giacomo, that was just an error, fixed above.

Posted at 2:06 p.m. on September 22, 2008


5 Roy Schestowitz says...

Careful there.Ohloh is former Microsoft employees

Posted at 11:03 p.m. on September 22, 2008


6 Farhan Yousaf says...

What an excellent website! Keep it up.

Posted at 10:17 p.m. on February 10, 2009


What do you have to say?

Show Editing Help

About

Hello, my name is Zeth, I'll be your host here.

Command Line Warriors is about taking control of your own technology, it looks at our experiences of computing; especially using GNU/Linux, the Python programming language, the command-line and issues such as techno-ethics, best practices and whatever is cool now. If you take control of your technology then you are a Warrior too!

This site is your site too which means that you can contribute and get involved. You can leave comments using the facility provided. For me, the comments and discussions are by far the best part of the site. So please do have your say!

Latest Discussions

Zeth

November 29, 2009
Hi Jordan, yes that URL is gone now. I have a new contact form on this site.
Python CGI contact forms

Jordan

November 29, 2009
Zeth attention! Your form, http://zeth.me.uk/contact/, is not working The explorer says connecting ..but nothing happens Sorry for my poor English: I am Spanish Regards
Python CGI contact forms

Jordan

November 26, 2009
Sorry: tell me , not tellme (I'm spaniard) And http://zeth.me.uk/contact/ don't work
You got the touch, you got the power

David Jones

November 25, 2009
Your mad skillz are too l33t! for me. I specifically switched to Google Reader so that I could show people what blogs I read. But I couldn't work out how ...
How to find the fashionable blogs quickly

Brian R. Hickey

November 20, 2009
Symantec picked it up too.
How to bring down Internet Explorer with six words

Zeth

November 17, 2009
Thanks djm, I am the moose here. Christian, assuming one actually does Internationalise the countries, it should still work I guess, as the gettext stuff will happen before the list ...
Countries in Django

Phillip Temple

November 17, 2009
Good start, but: a) wouldn't I want None back rather than 'ZZ'? b) why not add a 'shortcut' boolean, then prepend flagged fields (plus usual '-----' separator) to the actual ...
Countries in Django

djm

November 17, 2009
Am I being a moose or did you mean: from whatever.countries import CountryField instead of from whatever.countries import CharField ? Good post though, cheers.
Countries in Django

Christian Joergensen

November 17, 2009
Wouldn't the ordering get messed up after i18n?
Countries in Django

Steve - Electronic Cigarettes Fan

November 17, 2009
Very well done. Is your blog just you writing? Nicely done, Steven.
Blogger vs Wordpress

vetetix

November 15, 2009
Sorry to bother you nearly two years after you wrote this blog article, but I can't manage to find how to modify an existing field. I am trying to change ...
Three Useful Python Bindings - ClamAV, Apt and Evolution

Manju

November 4, 2009
I am transferring some files using psftp to other device's FAT partition. But the filestamp of the file being transferred is modified to that of FAT device, after the transfer. ...
PuTTY Series: Using PSFTP

iki

November 2, 2009
or simpler: socket.gethostbyname_ex(socket.gethostname())[2]
How to find out your IP address in Python

iki

November 2, 2009
local_ip = set([ i[4][0] for i in socket.getaddrinfo(socket.gethostname(), None) if i[0] == 2 ])
How to find out your IP address in Python

Fred

November 2, 2009
testing rst ------------- - point 1
An Introduction to ReStructuredText

Ano

October 27, 2009
"You simply found the license of the StumbleUpon Toolbar for Internet Explorer." That's possible. I've got some more interesting information to add. Firstly, go to this page: https://addons.mozilla.org/en-US/firefox/addon/138 - this ...
Are your Firefox extensions proprietary software?

Ken

October 21, 2009
Stumbled in here at lunch. This is the best find of the week. Thanks.
Three classic command line tips

Jim

October 19, 2009
Thanks for the rtsp:// post - that's something that has been bugging me for a while!
Three classic command line tips

Zeth

October 18, 2009
Thanks for the comments guys. Great to see the all the gang are still here!
Three classic command line tips

Bubba

October 18, 2009
Is there any way psftp can return the true transfer rates oberved during the actual transfer?
PuTTY Series: Using PSFTP