Survey results: Open source developer preferences

Survey results: Open source developer preferences

  • Comments 11

We recently conducted a survey of open source developers to learn about their current preferences around hosting sites and source control systems.  The survey was primarily advertised via Twitter, and we tried to avoid pushing the survey among audiences that would be specifically oriented towards a particular site (for example we did not advertise the survey from the CodePlex twitter account).

In total there were just under 500 responses, so a reasonable sample size although not necessarily enough to guarantee fully representative results.  One of the survey questions was what is your preferred operating system for development, and looking at the results they are particularly interesting when split by operating system preference because of how significant the difference is:

 

Table 1 - Preferences by what is preferred operating system for development

image

 

As you can see, the preferences among developers which prefer Windows is very different from Linux and Mac oriented developers.  Again, the question was on what operating system they prefer to use for development, and didn’t ask what type of applications they create, so presumably many create things like websites which are cross-platform from a user perspective regardless of the operating system they prefer developing with.

For hosting site preference, CodePlex and GitHub are roughly tied for first place among Windows developers and combined are preferred by over 75%.  However with Linux and Mac developers, GitHub has a runaway lead over the other sites.  Perhaps not particularly surprising, CodePlex has negligible mindshare among Linux and Mac developers.  It is somewhat surprising how low SourceForge and Google Code are given historically they used to rank much higher.

Looking at version control preferences is also interesting.  Among Windows developers TFS, Mercurial, Subversion, and Git all have a sizable following.  While for Linux and Mac developers it is almost all Git and Mercurial, with Git having a substantial lead.  Git is generally considered to run better on Linux and have more of a Unix feel, so not really surprising to see it more popular there compared to Windows developers.  It is surprising how low Subversion has dropped since it was the dominant preference not long ago for open source developers.  Around a quarter of Windows developers still prefer Subversion, but Linux and Mac developers have largely abandoned it.  The trend towards distributed version control systems (e.g. Mercurial and Git) is strong, with over 50% of Windows developers now prefer DVCS, and over 80% of Linux and Mac developers.

Leave a Comment
  • Please add 4 and 8 and type the answer here:
  • Post
  • Does this mean that you are going to add Git support? :)

  • The thing I'm not sure about regarding Git support on CodePlex is people mostly tell us that Mercurial and Git are so similar that it's unnecessary to support both.  Also, between the two, Windows developers that have tried both pretty consistently prefer Mercurial (for example stackoverflow.com/.../git-versus-mercurial-for-net-developers).

    Perhaps we could support both anyway, but SourceForge took the approach of supporting everything and they are now one of the least popular sites.  So I worry about it being a case of offering too many features and actually creating a lesser result.

    I think another question might be, should we drop Subversion support?  It is clearly dying off in popularity.

  • The problem with a survey like this is that the sample population is heavily skewed towards "influentials".  This group tends to have preferences that are quite different from most programmers.  For example, they expouse Ruby on Rails, Python, Erlang and Haskell, whereas the silent majority tend to go for Java, .NET and PHP.

    Therefore I would expect that actual usage of Subversion would be quite a bit higher than the survey would suggest.  Whether or not to drop Subversion should be based on actual usage numbers and not the "coolness factor" (which clearly it lost a while back...)

  • Indeed SVN is dying off i think that Dropping SVN for Git would be a better choice. and no git support is one of the reasons i have moved to github for.

  • "So I worry about it being a case of offering too many features and actually creating a lesser result."

    That's a good point. Personally, I have a feeling that I will eventually move from Git to Mercurial myself.

  • i think most windows users are migrating to git is coz in github it is very easy to fork the project and submit patches. it really is a social coding experience. though codeplex hg supports forking it does suffer from commenting and discussing on those specific patches/forks. You can follow users and watch repositories and keep track of what is hapenning around in github.

    one gr8 thing i like about github is that you can see what repos users are watching in case u follow that user. this allows me to easily discover new projects and have a look at it. in github im watching around 80projects and have contributed to quite a lot of projects compared to codeplex. i hardly know what projects are there in codeplex unless someone links to it or i search for it. codeplex needs to have good network to support discovering projects.

    supporting git wouldnt be much of a problem in codeplex to existing users as github guys have already done the hardwork and created hg-git plugin, so hg users can easily interact bidirectionally with git. just that git is a bit tough to setup on windows.

    one thing i really like about codeplex is its support for statistics and download infos. wished github supported this feature. :-)

    personally i would say no to drop support for svn. or if drop at least allow readonly access via svn. though i don't use svn at all. prefer git-svn, i still think its quite important coz most VCS supports importing from svn and converting to their own git, hg...

    and as git is more popular among linux and mac, it would be great to have git on codeplex. this allows to create projects that support mono, monotouch and monodroid on codeplex.

    there is also a port of jgit ported to .net. https://github.com/slluis/ngit would be more awesome if guys at codeplex could official work on it with the community like nuget.

    and for those who want git support please vote at codeplex.codeplex.com/.../19723

  • @prabirshrestha

    Most Windows-users moving to git? Really? Considering how absolutely broken and half-assed the Windows port is and how much work is required just getting something to a state where you can use it, I'm surprised Windows-users actually bother with it at all.

    It took me less time setting up my own VCS-server at home and setting up Visual Studio to work with that server than it took me -not- having the Windows Git client work unless you did everything in a cygwin'd console. The two Visual Studio integration-components I tried both failed horribly and were unable to communicate with the git-process, even less github.

    Really. Git may be neat and nice when it works, but on Windows the implementation, packaging and deployment is clearly lacking on every single front. That some people actually put up with it at all is still beyond me.

  • @Trezor It's amazing to me that so many Windows users would prefer GIT considering the quality of the software available to them.  I think part of it is enthusiasm for the new shiny toy, and part of it is the substantial benefits of using GIT for DVCS.

    I agree the user experience on Windows for GIT is horrible and requires significant user effort in googling their way thru installing, learning and customizing it on Windows.  Most Windows users are just a bit to squeamish around a command line, which isn't the case for the typical programmer working on Linux or OS/X.

  • @Trezor

    GitExtensions package will install shell integration for git, a visual studio extension and you have the command line too.

    Done it yesterday on a new PC, it just works.

  • Fossil ( http://www.fossil-scm.org/ ) support should be added.  It's superior to Git for small to medium-size projects.

  • As far as supporting too many things - the people and the site are what keep it popular. If everyone is moving to some new tool and you don't that will push people away from your site. Considering the large increase in the # of git supporters I think you will be forced to support it. The large # of choices hurts you when a new user who has never done this shows up ("Holy, this is too hard, I'm just going to keep it on my disk and upload a zip file when I'm done"). The large # of choices helps when someone experienced shows up and wants to join their friends/community already on the site ("Oh, look! they already support my tools! This is going to be easy!"). For the beginner I would suggest having a different landing path to help them "choose".

    Personally... I'm using SVN right now. I'm mostly a "single" developer - I put most of my projects up on codeplex, and I've not done much social coding. For the first time in the past year I've used SVN's externals features to pull in other libraries to help with some coding I've got to do. The idea is great - and anything that helps me do that better I'd be interested in.

    nu-get looks interesting to me as a way to get some of the libraries I've written more useful for others. Support for that sort of thing would have a higher priority for me, personally (if it makes sense - I don't know enough about nu-get to know if codeplex should be offering direct support).

    If you to depreciate svn, please make sure there is a way I can switch over without having to extract and re-insert my repository - which is a huge pain. That is actually what drove me off sourceforge and onto codeplex.

    For Windows and projects up here I'm a weekend coder. I use source control mostly to keep track of what I've done. In that sense, I want it to stay out of my way. I hope that whatever series of things you support you'll always support a system that has excellent integration on the client (e.g. TortiseSVN or similar).

    Ok. My two cents. Hope that is helpful!

Page 1 of 1 (11 items)