views:

232

answers:

4

I'm getting ready to start an open-source project that will target .NET/Mono.

For those who have started their own open source venture...

  • Do you let the fact that a project is going to be open-source weigh on the decision of what language to use?

  • For example. Most .NET open-source projects are written in C#. However, if you were more comfortable with VB.NET, Boo, Nemerle, etc... would you use it?

  • What other considerations are there?

This particular project will be a core library and application for geocaching. Similar to GSAK.

+3  A: 

Start the project with whatever tools and languages you like. If your tools are aside of mainstream, you will have a hard live to gather external developers, but as a new project you always struggle to get others into it. If your software provides something useful, some people will even learn new languages/tools. But if multiple developers say, they would work on your project, if it is written in language X, then you should consider to change your decision, to get more help. But if you start with an environment, that doesn't support you to work efficient, then it doesn't help. In the start of a project you will be the only developer and that's why make your decisions so, that you can work most efficient. If other developers join your project, then you should start to consider the problems they have.

Mnementh
+5  A: 

You should write in a language that is both suitable for yourself and for your target audience (users & developers).

In general, the Mono framework is still not fully established in the open soure world and using it can cut away from your userbase, for example on other operating systems than GNU/Linux. Moreover, the languages used by the huge majority of open source developers are C and C++. Keep in mind that the free software world doesn't have the warmest feelings against .NET, and developers care much more for those sentiments than users would. While .NET might be quite popular in the Windows world these days, open source developers would mostly prefer Java as managed code platform.

If you already made your decision to use .NET, though, you should yet again think about the collaberation of other developers. Do you think many people are easy with your language of choice and it wouldn't distract them from contributing?

That said, I didn't talk about the first constraint yet: Suitable for yourself. Many small open source projects rarely see any code contributions from others than the project's lead developer(s) anyway. If you don't expect much collaberation with other developers anyway, do what best fits you.

ypnos
+7  A: 

Well, I'd guess that 99.9% of all open-source projects have just one developer -- The originator creates it and opens it to the public, lot of people use it and virtually no one contributes or even bothers looking at the source code.

I'd say write it in whatever language you feel best. (SpamBayes a really useful and widely used SPAM filtering program was written Python, back when that was merely a "cult" language)

James Curran
With an important distinction, python is cross platform and works on the majority of open source operating systems. VB.net isn't quite so ubiquitous... So if you also don't care that the project will be limited by platform, it shouldn't matter.
Aaron H.
Python wasn't really a "cult" language when SpamBayes was originally developed. The reason it uses Python is because it was an idea worked on by key Python developers (e.g. Tim Peters), and the original goal was filtering the python-list mailing list.However, yes: write in whatever language most suits the project and existing developer(s).
Tony Meyer
A: 

Use what you know best and would be most expressive and productive or use something new which interests you and learn it by doing something useful.

Nikola Stjelja