This is a thing that is on my mind for a long time: What does the MS comunity think about
Mono? I have talked with some guys in the Mono dev newsgroup and was surprised how little Microsoft seems to care about the thing.
Wasn't .NET supposed to be a plattform-indepent system? (Well it is, but the only
supported plattform still is Windows...)
So the important questions are: Why shouldn't MS support Mono? How could MS support Mono?
Just tell me what you think...
Microsoft shouldn't support Mono at all. Microsoft should not have to support products that don't belong to them.
Microsoft should support whatever standard they defined for the common runtime library (is that the right name?). The Mono guys should do the support for Mono, and if everyone sticks to the same standards, everything should inter-operate just fine.
I don't know about the Microsoft guys, but I think Mono is a gret project. It encourages cross-platform operation, allowing each culture to do what it does best.
Why should Microsoft go out of their way to support something that competes with their own solution? I think Mono is interesting. And some day I'll have closer look. But that's just because I'm a curious cat and think it could be interesting to see how
some things are implemented.
Mono is an Open Source project developed by Ximian (who was recently bought by Novell).
If I was Microsoft, I wouldn't be hoping Novell. Especially with all of Novell's recent ad campaigns
I know of one small business owner (small web-hosting service with some development) that uses mono quite frequently to code. He keeps telling me the price of the MSDN subscription is just too high for him to keep buying it. He uses Mono to develop his
C# apps and then, once done, migrates it to his Windows servers.
So, in this case, the cost of a non-student MSDN is keeping MS from having some business. I think he's looking to push more and more stuff to mono because of pricing. (SQL Server licensing is another sticking point).
Ok, now we have all the standard arguments out of the way - thanks so far.
The thing I'm wondering about is the potential that no one sees in Mono. Why does Mono compete with MS? I hope you dont think that all programs written in Mono are under the GPL... (and in what way does Novell gain from Mono, Jeremy?)
I mean why did MS make the .NET platform free in the first place? In my opinion, they did it because they hoped for the broad acceptance of the community, so that people would start using it because its a great platform.
Do you have any idea how many more people will program for .NET if it runs on Linux, Unix, Mac... I mean seriously, isn't this a huge opportunity for MS to start selling products to all those other users - without any more effort than to bring the managed world
there (for instance by providing a bit System.Windows.Forms code)?
I'm open for all the different opinions you might (and will have.
Why does Mono compete with MS?
Well, I'm sure Mono wants Mono to attract folks who are traditionally Microsoft minded or want a Java alternative.
In terms of writing apps, I've used C/C++/C#, Java, VB, and dabbled in a few others. I hated the idea at first, but I have to admit, C# + .NET is a winning combo, and I'm no longer surprised that non-Microsoft folks want to take advantage.
I mean why did MS make the .NET platform free in the first place?
In my opinion, they did it to help sell their latest-and-greatest. Microsoft is a clever company, and I think they know that a great way to keep the revenue coming is to not just revise their current products, but to recreate them. .NET is one way to do that,
and I'm guessing it's considered a key stepping point into Longhorn. Or perhaps even XP. (Was there any advertising the to effect of ".NET runs better on XP"?)
Do you have any idea how many more people will program for .NET if it runs on Linux, Unix, Mac...
Given the small client-side marketshare that are on non-Microsoft products, not much. Server side is a different story with .NET you can use ASP.NET, and ;that's a major selling point. I don't know of any open-source ASP.NET clones, but maybe it's just
a matter of time.
(Was there any advertising the to effect of ".NET runs better on XP"?)
Indirectly, you could point that the concept of the ".NET Server" (remember the betas of Windows Server 2003?) sort of insinuated that .NET ran better on it. I remember them pushing that the Framework was installed by default on the server.
Close to what you were looking for?
There is a audio interview with Miguel de Icaza( creator and owner of the Mono project) at the .NET Rocks show,
Shouldn't you be asking the guys developing Mono that question?
I mean why did MS make the .NET platform free in the first place?
I think the specification is free. Microsoft makes money providing what they believe is the best possible implementation of that specification running on what they think is the best OS in the world: Windows.
In my opinion, they did it because they hoped for the broad acceptance of the community, so that people would start using it because its a great platform.
And they have succeed in doing that.
I actually use Novel Mono on Suse. I am extremely happy with it though I have problems with the way the RPMs are missing dependencies and stuff. I also don't like the implamentation of GTK#. You start out working in the .Net syntax structure you are used
to and then you leave for the GTK structure. I still have not figured out how to size a label correctly on a form.
Novel has stated that the next release of Suse comming in a few months will have Mono included and they intend on making Mono the language of choice for Linux developers (at least Novel developers).
As for cross-platform. I don't really see the point. I would rather see a standard interface. .Net was designed to be language-independent not platform-independent. If I want to develop a Linux app, I want it designed for the Linux user. A Mac app should be
designed for the Mac User and a Windows app should not be in Mono at all.
I am happy I can write an app in this manner using my favorite language. So I say "who cares" that you can't be cross-platform. The reason I don't use Java software is because it was targeted to Java not to ME.
But that is only my opinion. Go-Mono!
How does Mono benefit Novell? I'll ignore the API's that are being used to port eDirectory more quickly to SuSE (ding, done), Groupwise to SuSE (ding, done), etc. (by SuSE, I know it runs on everything, but since we're a Novell shop here, I get all the
literature and propaganda about why SuSE's better).
To be honest, I don't see that Mono benefits Novell. But, since Mono is owned by Novell, I can see why Microsoft wouldn't want to support it without a partnership agreement in place, which is really fair enough.
Personally I love Mono. I also love eDir and ZEN (haven't used GW enough to pass judgement... we're an NT / Exchange, with eDir and ZEN doing their thing shop, to be honest).
I'd love it if Mono was MS supported, touted, distributed, etc. Personally I think it should be. It's the developer community communcating this right now and while that's admirable it's not "all it could be".
Microsoft could easily be showing off HOW applications ARE cross platform RIGHT NOW. I mean, I was one of the original group of Mono testers way way back when getting a response.write to show up on Linux was a big deal (we were the first to do tunnelling on
Linux through Mono).
How far Mono has come is a huge testament to Ximian and Miguel and Microsoft. It deserves to be shouted from the rooftops. But Novell isn't doing it. And neither is Microsoft.
A shame really.
If I want to develop a Linux app, I want it designed for the Linux user. A Mac app should be designed for the Mac User and a Windows app should not be in Mono at all.
No offense, but that seems a little silly. I mean, why would someone want to develop a "Linux" app (unless it was specifically for some task that only Linux can do or administer some part of Linux).
As an app developer, I would want anyone to be able to use my software, not just those who agree on my particular choice of operating system. In terms of what the OS has to offer, there aren't that many differences, right? Get some files, get some memory,
get some locks, etc. All that stuff is abstracted by some API, anyway. Sure,
how the OS does it is different, but that's why we should choose one OS over another. We shouldn't have to choose an OS to run a particular (general-purpose) application.
Well, ideally, anyway.
Each OS has a culture and a way of doing things. Windows has one, Mac has one and even Linux has one. When developing an app on multiple platforms you have the choice of ignoring this and pissing off your audience or them just telling you that your app
sucks or you support them at which point you rock.
I am amazed how some developers still think that an application is 99% functionality and 1% usability.
Or, if you're using a cross-platform toolkit, you develop your application once, and if it doesn't work on FoobarOS, then you have the user change the toolkit or OS. Assuming that the GUI (if there is one) is well designer, it's the toolkit that sucks,
not your app.
If you're writing a word processor, what ties you to the OS? Or even something fairly special-purpose, like a wave editor?
We're rapidly approaching the point where this is somewhat feasible.
Your example of a word processor could be well illlustrated by the MacBU at Microsoft. They found that useability and OS culture means a huge difference in your app. There is a real psycology to UI design and no toolkit answers this. Everything from menu
layouts to application navigation applies to your OS.
So far you are only talking about the business layer. The interface layer is another 50% of your app and can be 99% of its success or failure. Unless you are a coporate developer an ISV developer should know this.
Well, actually, I am a corporate developer. Or, at least, I do business software, not general-consumption stuff.
Anyway, I'm unfortunately not following... I agree that a toolkit by itself won't create a good UI design, but what about using a toolkit might stop a good design? When I think of "toolkit", I think of an API that draws forms / controls, accesses the file
system, threads, etc.
I also allow that the GUI apperance may change depending on the implentation of the toolkit (or perhaps skin applied), so you could have a consistant "Open File" dialog on that machine.
Or do you mean that you need consistancy across the core OS and various applications?
consistancy should be an OS one not app based.
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.