tags:

views:

338

answers:

6

Me and some friends are considering writing a new FOSS project, and the debate is divided between using .NET or something else.

So I am wondering if there is an advertised install base for Mono on Linux machines? and, if there known install base of Mono or the Microsoft .Net on windows machines?

Thanks.


Install Base - A measure of the number of units of a particular type of system actually in use.

+5  A: 

Hanselman gives a stat for .Net Framework Installs. He places it over 90% of PCs. with over 65% of PCs having 3.5 SP1. (This was posted on Jan 19, 2010)

I'm not sure where the numbers come from, but it's the only figure I've seen in quite some time. As for Mono...I'm not sure.

Nick Craver
He said that the stat is based on windows update stats. So, really, the stat is saying that 90% of the internet-connected computers which are configured to use Windows Update have .NET. Not really informative at all.
Paul
interesting, at least it has some stats for windows. combined with an _OS install base_ i can get a good assumption on how much it is common.
Am
@Paul - True, but I'd expect the majority of machines that don't use windows update are inside companies...and if that's how they operate, installing any software you want probably isn't an option anyway. I would think those not connected to/using windows update fall mostly under that category or programmer/early adopter types that are moving away from XP...and anything higher has .Net 2.0+I'd welcome any discussion on why that number may or may not be more/less valid...but I don't know of any other informed stat on the issue, would love to see someone post it here for comparison.
Nick Craver
My point was simply that Scott's statistic doesn't get us any closer to figuring out the world's % install base of .NET/Mono, which is what the OP asked for. It leaves out Mac and *nix boxes, as well as any Windows box that isn't running MS Update for any reason.
Paul
@Paul: I'd rely on the statistic based around real-world users rather than worrying about Servers and Corporation's install numbers thrown in there personally. I think it really depends on the project and where it's intended use is.
Will Eddins
@Will: That's your call; I just wanted to point out the flaws in that stat. take it fwiw.
Paul
+1  A: 

All computers running Vista will have at least .NET 2 installed, and Windows-7 .NET 3.5.1.

Aaron Stebner has a page detailing which version of Windows has which version of .NET installed as standard. So if you know the OS being run by your target audience you'll be able to work out whether they'll have .NET installed and which version.

ChrisF
+6  A: 

For Linux, I would just look at the most popular distributions. For example, Ubuntu comes with Mono by default. Right there you've got a large potential user base.

Vista+ will have .Net.

On Mac OS X, GTK# and Mono can actually be included with the app. Banshee recently released a version that does this.

For Windows XP, I just create an installer using Visual Studio Setup project and use the prerequisites feature to determine the dependencies. If the dependencies aren't on the machine, the installer can put them in for you.

.RPM and .DEB installer formats can do the same thing for you on Linux.

All, in all I'd say write the app and then work around the dependencies by writing a good installer or package.

BTW, if you don't have Visual Studio for the installer on Windows, Innosetup works nicely as well.

N8

Nate
So it fairly safe to say that going with C# i can have a lot of code cross compile to unix/mac
Am
Almost any code will work. Stay away from WPF and P/Invoke. If you can avoid Winforms and use GTK# instead you'll be better off. Most of Winforms should work now though.
Nate
@Nate: true enough. We are keeping our WinForms usage to bare bones (basically 6 different controls) - at least until we have GTK# and our framework ready to mate up (read, as soon as I learn to use it...lol)
dboarman
+1  A: 

Let me try to give you an educated guess of the Mono penetration on Linux. For KDE there are hardly any applications dependent on Mono. For GNOME that might be different. Several popular applications (TomBoy, F-Spot, my own GIMP# stuff ;) ) need Mono.

Now lets suppose that 50 % of all desktop environments are KDE, the other half is GNOME. And lets suppose again that half of the GNOME users install a program that depends on Mono. In that case you get about 25 % of your Linux user base that has Mono installed. Personally I think that is already a pretty high number, but if gives you an upper limit. My own guestimate would be around 10 %, but that is just gut feeling. Hope this helps.

Maurits Rijk
+2  A: 

Your best overall bet is to go with .NET. While we are focusing on getting the application suite developed, we are keeping technologies as cross-platform as possible (I would use the term generic but that would be confusing).

Get your overall design/architecture in place first. Then study the technologies you are considering. For instance, if your application is going to target a Mono platform, there are MS technologies that you shouldn't even consider (MEF comes to mind).

Don't let a Linux/Windows/Mono discussion keep you from getting anything accomplished. ;)

Edit based on Am's comment: I didn't realize you were actually concerned whether the decision to use C# was the best decision. In light of that, I'll add a bit more.

Mono is written in C#. The popularity is overwhelming. Add C#'s flexibility and an extension (more or less) of C++, I really don't think you can go wrong. There are still considerations as I mentioned above that you need to keep aware of.

dboarman
No worries, the project is already being made, i was just wondering if we made the right choice with C#.
Am
I believe you have made an excellent choice with C#. It is what we are using. MonoDevelop is written in C#. Go to www.koders.com and you can even find all the Mono open source files. I didn't realize you were actually discussing the use of C#.
dboarman
+2  A: 

According to the Debian Popularity Contest, mono-runtime is installed on 13184 out of 90447 participating Debian hosts (rank #1504).

That would translate to an installed base of 15% on all debian installations (surely including many servers).

For an appoximation of Desktop installations, I looked at the xserver-xorg installations (49872 inst, rank #390).

Assuming that mono is only installed if an X server is installed, that would translate to an installed base of 26% within the desktop population.

Others:

  • bash: 99.9%
  • perl: 99.4%
  • python: 97%
  • php(4,5,cgi,cli): 56% (probably contains some duplicates)
  • tcl8.4: 45%
  • tk8.4: 35%
  • java: 35% (more than 50% of which are the old non-free sun JREs)
  • ruby1.8: 26%
  • ghc6 (haskell): 2%

As a side-note: due to the automatic dependency resolution and installation of tools like apt and yum, a small installed base of the interpreter is much less of a problem than under Windows where the manual installation process is much more tedious.

David Schmitt
tnx @david, i was looking for something like this.
Am