
Why Mono doesn't suck - antileet
http://www2.apebox.org/wordpress/rants/124/
======
jasonkester
"Secondly, support for Microsoft.NET is a secondary goal for Mono"

Guys, you're killing me.

I really want to embrace Mono, but there is this fundamental disconnect
between what the Mono team think they are building and what the real world
needs them to be building.

Mono team, your ONLY goal should be to provide a 100% compatible .NET
implementation that runs on Linux. That's it. Simply make my C# code work
there, and I'll be happy.

Unfortunately, the Mono team is trying to do something else entirely. They're
adding new language features and trying to extend it into their own thing. And
nobody outside the Mono team can understand even for a minute why they would
want to do that.

So here we are, 4 years into this project, and it still has pieces of .NET 1.1
that are not implemented. That means we can't use it yet. And while we're
waiting patiently for a usable framework, the Mono team is off pursuing shiny
.NET 3.5 functionality and inventing new functionality of their own. I mean
sure, it sounds like fun and all, but us developers are still out in the cold
waiting for a framework that the Mono team doesn't seem inclined to actually
finish.

So guys, please, I'm begging you. Quit adding new stuff. Go back and finish
what you started. Get .NET working on Linux like you promised. We'll all thank
you for it!

~~~
h1bored
I lead a dev team in the real world, using mono for all our work, and I don't
need them to do any such thing. Your definition of the "ONLY" goal for them is
utter claptrap and certainly not a definition of what the "real world needs".

Stop confusing your desires ("Simply make my C# code work there, and I'll be
happy") with the only sane direction for them to go.

I certainly wouldn't thank them for slavishly copying .net 1.1 or any such
thing. If you want that so badly, feel free to submit patches, I'm sure
they'll gladly accept.

~~~
jasonkester
You've piqued my curiosity. What are you using Mono for if not to run C#
outside of Windows?

~~~
h1bored
We're running C# code, and increasingly some F#, but not at all interested in
taking desktop or web applications from Windows and dropping them onto Macs or
Linux.

We're historically a microsoft shop but recently (in the last 18 months or so)
have started running linux backend servers for many of our services running on
EC2. If I wanted to be buzzword compliant I'm sure I could come up with some
string of cloud nonsense to describe it.

We have something that looks kinda like Hadoop crossed with an app server that
we can deploy components in.

I'd be happier with a solid final version of Mono.Simd rather than slavishly
filling in any missing parts of older .net.

~~~
jasonkester
Sounds like we're doing similar stuff. The code I'd like to run under Mono is
neither ASP.NET nor WinForms. It's plain vanilla string processing and
HttpRequesting with some minor crypto and SSL thrown in to use AWS.

That's the stuff I'd expect to be there and it's not.

~~~
migueldeicaza
Care to detail exactly what is missing?

And if you do not know what is missing, download our tool, and it will do the
work for you:

www.mono-project.com/Moma

~~~
jasonkester
That's the fun part. The tool says everything is good to go. That's partially
why I felt so burned by it, having assurances that everything I was doing was
implemented. Running the code, it doesn't even thow. It just quietly exits.

After a few weeks running into issues like that, I just quietly exited myself.
Windows EC2 boxes are only 25% more expensive than Linux ones, and they run
.NET natively and correctly, so my particular problem is solved.

------
TomOfTTB
It's a good article though I'd go so far as to say the piece it responds to
isn't worthy of a response. Take this quote...

"Nothing that comes from Microsoft can be for our good and benefit. They are
dedicated to our destruction and downfall.

Mono has infected Gnome. Ubuntu uses Gnome. I switched to Kubuntu and am happy
with it. Now Moonlight is infecting Linux."

There are two parts to the Linux community. One part sees Linux as a
legitimate tool they can use to bring down costs while maintaining stability.
The other sees this as some kind of holy war and is really just using Linux to
act like drama queens.

The link here is a good defense of Mono but the people he's trying to defend
it to are never going to listen.

~~~
cortesi
"There are two parts to the Linux community. One part sees Linux as a
legitimate tool they can use to bring down costs while maintaining stability.
The other sees this as some kind of holy war and is really just using Linux to
act like drama queens."

Do you really think that the stability, low cost and quality of Open Source
software is independent of the Free Software ideology? If I was being as
derisive as you are above, I'd say that I hear this argument mostly from
ignorant youngsters who have been lucky enough to inherit something marvellous
that their elders fought hard for, but are now in danger of squandering
everything through a moronic and self-centered lack of insight.

The truth is that the two things go hand in hand. Without a Richard Stallman
who is idealistic and paranoid enough to worry about things like patents and
personal freedom, Open Source would be in much worse shape than it is now.
Without a Linus Torvalds to pragmatically build excellent software within the
framework put together by the community, we would be much diminished. We need
both. Open Source software is often the "best tool for the job" in a technical
sense precisely because it is Free, with all that implies.

I personally think that we are right to be worried about Mono. We don't need
to be alarmist, but we need to be wary. It's up to the Mono community to
convince people that there is no licensing danger - the best way to do this is
to lobby Novell and Microsoft to officially clarify the situation.

~~~
gaius
There's an old saying, "BSD is for people who love Unix, Linux is for people
who hate Microsoft".

~~~
cortesi
I've heard it, and I personally use OpenBSD much more than I use Linux.
There's a whole different discussion to be had about the differences between
the BSD and Linux models, and why Linux has soared and the BSDs have not. At
any rate, I suspect that, despite recent fireworks on the OpenBSD mailing
lists, Stallman and Theo de Raadt agree much more fundamentally about the
threat posed by patents and licensing than, say, Stallman and Torvalds.

~~~
uriel
While I generally agree, I find Theo's positions much more consistent an
principled than RMS's, although to Stallman's credit he gave the FSF award to
Theo some years back for all the amazing work the OpenBSD people have done on
opening up hardware specs and so on.

Theo is also contrary to general opinion a really cool and friendly guy, and
often (but not always) when he acts like a jerk is because somebody deserves
it.

------
pufuwozu
What I find silly is that a large majority of developers prefer creating
applications in Flash rather than Silverlight. Flash has proved to be very
hard to reverse engineer thus has very little open-source support. With
Silverlight, Microsoft has sponsored Novell in creating Moonlight which is
completely open-source and could be built into every browser at one stage.

Yet I still read that people won't touch Silverlight because it's so
proprietary and made by Microsoft!

~~~
bad_user
Moonlight for the moment has stability issues. I'm using version 1.9.3, which
is a preview, and version 1 which is more stable is worthless since I haven't
found many clips compatible with it.

What I do like about it is that Microsoft supports it. The first time I
installed Moonlight was because of a page that required Silverlight, and on
clicking the "Install Silverlight" button, I got redirected to the Moonlight
page. That's pretty neat.

Silverlight has great potential, because you can reverse-engineer it more
easily, has support for multiple languages and you only need a text editor to
create a Silverlight clip. And in version 3 they are introducing an API for
plugable codecs, which is making it possible to stream OGG/Theora and Vorbis
files with a Silverlight applet.

Flash is more popular because of inertia, and because many designers use Macs
and have invested heavily in Adobe tools. Microsoft Expression only runs on
Windows. They would have a lot more to gain if they released a Mac port.

~~~
DLWormwood
> Flash is more popular because of inertia, and because many designers use
> Macs and have invested heavily in Adobe tools.

A minor irony, Flash has had a bad reputation peformancewise on the Mac
platform for a good _decade_ now... and the migration from PPC to Intel hasn't
helped matters much, as is my understanding.

~~~
bitwize
From my experience, Flash has only ever worked optimally in Internet Explorer
for Mac OS 9.x. Every other platform sucked hind tit. These days I bet Windows
takes priority.

------
mtomczak
I've seen Mono used to great effect in the Unity 3D game engine
(<http://unity3d.com/>). Game engines are one of those interesting spaces
where speed matters quite a bit, but so does ease of modification; you want
your developers to be comfortable enough to implement whatever crazy ideas are
designed up for game mechanics, and you need to be able to make sweeping
changes to game logic quickly. But you need those implementations to be fast
as well. With its multi-language support and JIT-compiled nature, Mono seems
to sit at an interesting saddle-point that makes it attractive to applications
like this. It's also cross-platform compilable, which in this age of multiple
consoles-plus-PC-plus-mobile platforms is extremely attractive.

I couldn't tell you why they wouldn't use Java, however.

~~~
s3graham
> I couldn't tell you why they wouldn't use Java, however.

Visual Studio and value types come to mind.

~~~
cryogenic
Visual Studio is not a factor here, value types, delegates (aka safe function
pointers), mono SIMD and C# are the factors that mono was chosen over Java. C#
is more expressive and concise than Java, C# supports unsafe (pointer)
operations inside unsafe blocks which is very valuable for a game engine if
such a thing is required. Mono has a more powerful eventing model through the
use of delegates, where the Java equivalent of using anonymous inner classes
is much more syntax and runtime heavy. C# supports semantic closures and has
iterators, very useful features for scripting support.

Plus Mono is more open than Java, was developed by open source community,
therefore was already more easy to modify than Java, which has in house
developed source.

My 2c.

------
jsz0
I believe Linux would benefit greatly from more and better Windows ports of
popular OSS applications that are common on Linux desktops. If you get people
using the software the time will come when switching the OS they run on is an
afterthought. Plus you gain the possible contributions of millions of Windows
users who have no interest in Linux but may very well want to run good OSS
software. I'm not sure this is a viable strategy with GTK or QT as the Windows
implementations are subpar at best. Mono is probably the way to go if you're
an OSS developer interested in creating an app for everyone to use -- not just
the people who happen to accept your personal choice of operating system.
Isn't that (basically) the bitch that most Linux fans have about Windows-only
software? Seems silly to advocate the same solution replacing win32 with GTK
or QT. While they may technically exist for Windows they are not adequate --
probably comparable to running win32 apps on Linux via WINE.

------
dunk010
I always thought that it was a bit of a marketing blunder naming it the same
as the slang term for glandular fever.

~~~
gaius
Only in the US. Everywhere else in the world calls it "glandular fever".

------
omouse
What I hate about this piece is the anti-user angle. What a fucking prick. The
only reason you're writing apps or working on frameworks/languages to write
apps is for the users. Maybe you should listen to them once in a while.

------
billpg
Mono lets me write stuff in C# to run on Linux. What's not to like?

~~~
uriel
C#?

There are probably hundreds of open and free languages out there better than
C# that can run under pretty much any platform under the sun.

~~~
billpg
And yet, people still write stuff using C#.

------
sker
Mono has such a bad reputation. If they want to get market, they will probably
have to pull a Bing, i.e. rebrand it.

Unfortunately, they don't have $100m to pour into marketing.

~~~
TomOfTTB
I think you miss the point. They already have market. Most Corporate Networks
run on Windows Servers. What Mono does is allow those Windows shops with their
.Net experienced developers to start experimenting with and hopefully
integrating Linux. Without having to change the language and framework they've
standardized on.

In that way it gives Linux an inroad it didn't have before Mono.

~~~
rbanffy
"In that way it gives Linux an inroad it didn't have before Mono."

No, it doesn't. For internal development you have a wide variety of options.
Java is quite good and very popular among those who consider the option of not
running their wares under Windows. The only way Mono can appeal to Windows-
only houses is by making it possible to run _unmodified_ (and proprietary)
products that run under Windows on other platforms.

Were I insane enough to allow my business to run on .NET and Windows, I would
only consider migrating it to other platform if I had the assurance of being
able to run it unmodified.

And, BTW, as it is, Mono is a patent minefield. Do you really trust Microsoft
to act as a responsible corporate citizen when doing the right thing would cut
their profits?

I wouldn't even if acting responsible would be profitable. Playing dirty seems
too embedded in their corporate DNA.

~~~
philwelch
"For internal development you have a wide variety of options. Java is quite
good and very popular among those who consider the option of not running their
wares under Windows. The only way Mono can appeal to Windows-only houses is by
making it possible to run unmodified (and proprietary) products that run under
Windows on other platforms."

I'm working at a Windows-only house with internally built .NET apps. Mono is
definitely part of our long term plans to run these apps on other platforms.

~~~
rbanffy
Congratulations. You are the case where Mono makes sense - you can make sure
your apps run the same on Mono and on .NET.

Unfortunately, some shops need to use off-the-shelf software that may even run
on Mono but is not officially supported and, if something did go wrong, they
would on their own.

------
patrickg-zill
Mono comes from the same makes-Linux-slow team as the people who "gifted" us
with Gnome. Who are these guys really working for?

~~~
wvenable
Python must be developed by the makes-Linux-frozen-in-time team then. And
don't even get me started on KDE! If you're not running Linux as God intended,
from the command line and programming only in C, you are part of the problem.

