As I mentioned in my last post, I haven't been reading blogs lately. My bad, as I missed something good.
Jim had mentioned that he might be putting up a survey about Mono (Miguel de Icaza's blog here), and it turns out that he went through with it.
I figure that it's sort of my civic duty to respond, so here we go...
The Mono Survey
[Note: I'm not including a list of all available answers - rather, I'm including the question itself and the answer that I chose which best fits how I feel - in cases where there wasn't an answer that came close to how I feel, I made my own up]
1) Is Mono...
A) Good for developers. Why?
I'm a fan of having choices. Whether that means choices between different brands of bubble gum, or different brands of development platforms, I like 'em. Choices are good.
2) Is Mono...
A) Good for Microsoft. Why?
Mono does quite a few things for Microsoft that I would consider to be "good." Here are a couple...
- Goal: Spread .NET adoption
If the people you're trying to sell your product to don't trust you on any level, then you have some problems. You have to earn their trust somehow - you have to start building a relationship somewhere. With Mono, there's the commonality of .NET between MS and the OSS world, which is at least a place to start.
If a few OSS devs use Mono and think, "Hey - this MSish stuff isn't so bad," then that's a big win for Microsoft.
- Goal: Drive more developers to .NET on MS platforms
Obviously, I think it's great that Mono will expose OSS devs to a development platform that has its roots in Redmond, but that doesn't do my company a whole lot of good if development stays off of MS platforms.
With Mono experience, OSS devs now have a migration path. I know that a lot of the excited talk in the OSS world is about migrations to *nix, but my reaction to that is a position of skepticism.
Mono is an incredible project. However, there are so many advantages to developing with .NET on an MS platform that it's kind of nuts.
The IDE, for example, is a place where MS kicks butt. Sure, sure, sure - some of you out there have some serious gripes about VS.NET, and you'd rather use notepad/vi/emacs/pencil and paper/rune stones/whatever. There are always people who don't like a particular product.
However, for so much of the kind of work that goes on in typical business development, VS.NET does a great job, and VS 2005 is going to do much better job.
If I were a *nix developer who was truly interested in a positive dev experience rather than making a political statement, and if I had some experience with Mono, and if one day, just out of curiosity, I decided to give VS.NET a go, I don't see what could possibly drag me back.
MonoDevelop is cool, but it doesn't hold a candle to VS.NET.
In that way, Mono is potentially great for MS.
3) Do you think Mono infringes on Microsoft's intellectual property rights for .NET?
D) I'm not a lawyer - I can't even begin to respond to this question (I made this answer up) Why?
People like to speculate on topics like this one, but it doesn't do much good. Without a freakishly thorough knowledge of .NET, of Mono, of the way the two were built, of the patents involved, and about a bajillion other issues, you're kind of screwed.
4) What do you think about the viability of a Mono-based solution?
B) Ready today (or soon) for prime time. Why?
There are real Mono deployments out there on some real scale.
I was talking to Miguel about this at O'Reilly's OSCon several months ago, and was very impressed by the accomplishments of Mono in the real world.
It's not for everybody, and, in fact, probably isn't for most people, but if you're that interested, and if you're willing to do the work, then Mono is definitely ready to go.
5) Do you see Mono becoming a viable web application environment?
C) Already there. Why?
A perfectly good example is Question 90 from the Mono Technical FAQ:
Q: Does Mono support ASP.NET?
Yes.
Mono supports ASP.NET, we have shown an unmodified IBuySpy installation running on Mono as well as various other programs. You can try it yourself downloading the XSP server.
6) Do you see Mono becoming a viable desktop application environment?
D) Sure (I made this answer up) Why?
With GTK#, QT#, Cocoa#, and others, the Mono world has several solutions out there for desktop development.
It's not really easy to develop with these toolkits, but that's another story. It's still going to be significantly easier than C++ing your way to baldness and late nights of forgone food and personal hygiene.
When I used to do work in *nix environments, I never considered writing desktop applications. Everything was server side.
That said, with Mono, I would at least give it a chance if I were asked to do it again today.
7) Do you think Mono is a threat to the Microsoft Windows platform?
A) No. Why?
I see Mono as being of great use to *nix developers who are losing their patience with trying to write desktop applications in C++ (and other arcane languages).
There is a lot of pressure in the OSS world to use "cool" technologies (i.e. whatever you don't understand, and what everybody else pretends to).
Eventually, though, there's a desire to just SHIP THE GOD DAMN THING. Modern languages like C# allow you to do that.
That, of course, raises the question of "Why not just use Java?"
To that, I have a very simple answer: Because Java is a bloated, academic piece of overarchitected shit. When I was doing Java development, I had the same thoughts over and over: "Why does String seem so incomplete? Why do I have to do all this boxing and unboxing myself? Why can't I just have properties? Why can't I have these things, but I have my choice of 95 different XML parsers?"
It drove me nuts that the movers and shakers in the Java world were more concerned with looking intelligent by sitting around and discussing the benefits of utterly retarded academic theories than just giving me the bloody productivity that I need when I'm actually working, which is something the Java Inner Sanctum must never do since THEY'D ALL GO ASS-FLAMING CRAZY IF THEY EVER HAD TO TRY AND USE ALL THIS WEIRD ESOTERIC CRAP THEY COME UP WITH AFTER DOING A LOT OF HALLUCINOGENIC DRUGS AND HAVING THEIR SICK ORGIES.
OK - I don't really know about the drugs or the orgies, but it sounds cool.
We all need drugs and orgies every now and then.
8) Will Mono provide "write once/run anywhere" ability (as in a run on Mono/Microsoft .Net without re-compiling)?
A) Never. Why?
Ha.
Hee hee. Ho. Ha.
Ha ha. Ha ha ha ha. HA HA HA HA. HO HO HO HO HO HOA AH AHOAOHA HAO AHAHAHAHAH HAO HAO HOHOHOHOHOH [gasp] HO HO HOH O HA HA AHO HHEEE HEE HEEE HEEE HEE HO HO [wheeze] HO HARF HARF HA HA HA HARFFITY HO HO HO HO [gag] HIP HIOOF HA HA HA HA HA HA HA HA [gag, cough] HEE HEE TEE HO HO HO [cough, cough, gag] HAR HAR HAR HEE HOOOOOOOOO HA H AHA HA HA HA HA HA HA [cough, gag, *puke*]
Ha. Ha ha.
Ho.
That was a good one.
9) Do you use Mono for production applications?
B) No. Why?
I love .NET, and I love developing .NET apps on Windows.
My interest in *nix and OSS nowadays is just nerd curiosity.
Given that I'm almost always really pressed for time, I like to do things in the way that allows me to get them done the fastest. For me, that's VS.NET on Windows.
Period.
10) Any other comments?
I like gladiator movies.