views:

624

answers:

10

I got "The question you're asking appears subjective and is likely to be closed." but you can answer YES or NO.

-- edit: Subjective questions are those typically answered with an opinion, so what's so bad about asking the opinion of the community? Also BTW, I'm asking for your opinion, your opinion doesn't depend on the nature of my project.

+11  A: 

Picking a couple examples from "Companies using Mono":

  • Novell: Novell uses Mono for both client and server applications:
    • ZenWorks Linux Management
    • its Desktop search product Beagle
    • photo management (F-Spot)
    • Groupware Server (Hula)
  • Electronic Arts used it to power Sims3.
  • Medsphere: The Medsphere OpenVista software allows physicians to access complete patient health information at the point of care, and it runs on both Windows and Linux, thanks to Mono.

If it's good enough for companies like those, Mono can be good enough for you -- it just depends what you make of it. If your startup is doomed to fail, Mono won't make a difference; if you've got a great concept and a great team, it shouldn't matter so much whether you use Mono, Visual Studio, or whatever other IDE.

Mark Rushakoff
Novell kinda sponsors Mono, so that one's no surprise.
MusiGenesis
But they sponsor it because it works for them, not because they are trying to mislead people on Stack Overflow.
jrockway
@jrockway: I didn't mean they're trying to mislead anybody, but trumpeting the fact that Novell uses Mono is like heralding the fact that Sun uses Java.
MusiGenesis
Sun *does* still use Java, right?
MusiGenesis
Well, they are paying for it, they better use it. If there is one case study that is not independent is Novell's.
Isn't mono a platform and MonoDevelop the IDE?My idea was mono is to .net what MonoDevelop is to Visual Studio...
borisCallens
Also, Linden Labs uses Mono as a scripting environment in Second Life.
codeape
+7  A: 

Only if you plan on doing some monkey-business.

(edit: note to downvoters; research what 'mono' means in spanish, and look at its icon, also, look around for your sense of humour, I suspect you may have lost it).

Noon Silk
+1 for the humor attempt.
MusiGenesis
Cheers :) I guess in hindsight it should've been a comment. Oh well. Tough crowd.
Noon Silk
Even *I* said "humor *attempt".* :P
MusiGenesis
You are bananas
Well monkeys are a passion of mine: http://www.themonkeynet.com/
Noon Silk
Wow, proof that if you sit an infinite number of monkeys in front of an infinite number of computers, one of them will randomly type something out that will be selected as the correct answer. :)
MusiGenesis
How do you think I got the rest of these points? It wasn't through knowing things, let me assure you ...
Noon Silk
A: 

It really depends on the application. If your application stands or falls with mono then no.

Just like with stocks, you don't put all your money on one, too risky.

Anders K.
Are you saying that when you build your projects you use as many technologies as possible, just to diversify? :)
I think his metaphor is a little weak, but he is basically saying he would not base his entire company on Mono. For example, if the Mono project completely dissolved tomorrow would your company be OK?
tster
What I meant was that the platform is not that important however the application is, so if I have an idea for an application that runs on windows .net and mono then fine but I wouldn't do an application solely for mono (if then my whole business was depending on it). The reason for this is that mono albeit a great thing will always be one or two steps behind windows .net.
Anders K.
agree maybe my metaphor was a bit lame :p
Anders K.
+2  A: 

Since it's a general question I'll give a scenero.

For instance, you work with and use the .NET framework and sell some kind of product. IMO: If it's a server based product you have a good chance of having customers who will want to run it on Linux.

  1. You can tell these customers to screw off.
  2. You can offer them the ability to run it via Mono.

Both options have drawbacks. If you choose #1, will lose sales, and thus revenue. This depends on how many of your potential customers want to use Linux of course.

The second option has drawbacks in that you have to test your app in both Mono and the .NET framework. This consumes developer time, and time is money. :)

But anyway it's a decision you have to make and the right decision is very app and market specific.

joemoe
A: 

Yes, because even if your application fails on Mono, it will still work just fine in Windows. And last I checked, there were at least a couple of successful companies writing software for Windows.

MusiGenesis
True enough, Windows is a viable platform for a business, however if I'm thinking of mono is because I would like an opensource platform, both because I believe in opensource and because I don't have any money.
Well, .Net is free also. And believing in open source is a good way to continue not having any money, unfortunately.
MusiGenesis
Startups can get several Visual Studio licences, MSDN universal subscriptions, and Office licences for 3 years for about £100 the lot.
MarkJ
@MarkJ: I've never seen anything *that* cheap. Do you have a link?
MusiGenesis
A: 

Having never used Mono, I'd be quite interested to hear from people an example of a product that IS suited to being built in Mono, and an example that isn't.

Ashby
Any application that relied on stuff outside the .Net environment (like OS API calls, for example) would be less suited to Mono than something that was pure .Net.
MusiGenesis
So you're saying there's nothing within the language or framework itself that is not supported by / not suited to being using in Mono?
Ashby
@Ashby: that's correct, although it sort of depends on what you mean by "within the language or framework". For example, InteropServices are undeniably part of .Net, but if you're making use of them within your .Net application, then your app almost certainly won't work correctly in Mono (since you use InteropServices to interact with the Windows API, among other things).
MusiGenesis
Yep, gotcha. Basically anything that's OS-specific.
Ashby
A: 

Here is a recent blog post by Jeffrey Stedfast that may shed some light on this question. I'm developing for Windows and will be continuing to do so indefinitely, so I don't have a dog in this fight.

Robert Rossney
A: 

I have been involved in many startups. Your question cannot be answered by us, because it's more like a risk management question: If something fails, can you fix it or make a workaround with reasonable amount of effort? And how many times do you expect it to fail?

In order to answer this question, you need to know what platforms you want to support, how you are going to use mono, and what skills you have. If you want to support all platforms, on which mono runs, you will run into many more problems, than if you just want to support Mono on Ubuntu, for instance. Mono is Open Source, but if you want to fix a bug inside mono, you need to have the skills and time to do exactly that.

Another thing is, how reliable do you want your product to be? If you look at a product like a Samsung's DVB-C harddisk recorder, it actually crashes sometimes. Even a Playstation 3 crashes once in a while. If you create an internet server, crashes can often be hidden well if the client retries after a timeout.

If I would need mono in a startup, and I would have at least 1 skilled programmer besides myself right from the start, I would have no problems with picking mono as the platform.

Lars D
+2  A: 

I've worked on Mono for a cross-platform commercial Windows/Linux project.

  • The core of Mono (the runtime) is pretty solid - it's amazing how you can compile on Windows and run on Linux.
  • MonoDevelop is pretty flaky. Hopefully that will change, but for now it's painful. If all you need is Linux runtime support (not Linux dev), you will reduce your problems. I wouldn't want to code a sizable project in it.
  • Cross-test regularly. Don't do a week's work on Windows, then find you have to re-write for Linux (or vice-versa). Try to build and test on both environments every day.
  • Some .NET things don't work on Mono. Obviously you shouldn't start a WinForms on WPF app and expect it to work. Plan your features: don't get half-way through and find Mono doesn't support a particular technology you need.
  • Plan ahead and test every single language and framework feature you think you'll need. The Mono libraries are incomplete and you can't assume you have a full framework.
stusmith
I probably ought to qualify my points - I think Mono is an amazing piece of development, and I think MonoDevelop /will/ be amazing in the future. I hope no-one thought I was bashing it!
stusmith
@stusmith: do you mean " ... you shouldn't start a WinForms **or** WPF app ... "? I thought at least WinForms worked in Mono?
MusiGenesis
Not sure... I guess I assumed that it didn't... but that just underlines the point: don't assume, find out, and find out early.
stusmith
A: 

Yes if you rely on the current state of Mono. No if you rely on future promises what Mono will be.

With the first option there's still a risk involved in having to move to another platform sooner or later, because Mono might stagnate. If your plans are valid, state of the art would still give you enough of a platform to acquire the ressources for the move. If you can't take that risk at all, don't found a startup.

peterchen