michaeldehaan.net

It’s Not Just About Llamas

Before You Congratulate Mono

with 8 comments

Before everyone on Fedora Planet gets their love on for Microsoft and Mono (perhaps the worst named project ever?), they should remember that Microsoft still does not have Windows Forms or ADO open, nor their admittedly shiny development tools, and any serious .NET deployment is going to be wanting to use the full enterprise stack. Shiny sells. The .NET stuff looks good in a demo.

What’s the danger?

Half-open or quasi-legal software still serves us horribly as a movement and as a tool, and lending creedence to it is a slippery slope. It is the problem of the Community Edition, the jokingly referred to “Children’s Edition”, the idea that a codebase (or in this case, only part of a set of specifications) can exist, but the “good” bits are held back, because Open Source is not suitable to producing them. This is a dangerous and corrupting belief system to allow to exist. This is worse, actually, because there isn’t even a codebase — just a hint of a specification. By mere virtue of the fact that Microsoft can afford to fund /lots/ more developers on such a project, it’s pretty easy to make a business case for their implementations to be superior — even if that’s not actually at technical factor and not actually true (though, in many cases, it could be). And that’s the dark secret right? The technical factors don’t matter. All sorts of FUD can be raised around quality of implementation, lack of solid support, missing future features, or even, yes, legal questions that probably will never occur. These are things that you open the door to when you say “this is ok”.

The belief, I’m sure, is that folks may start out with Mono deployments, realize how much more is available on the .NET platform (or that the tools look more seductive, or be pressured by customers with Windows deployments, etc, etc), and move to it. Perhaps your project is a little slow, maybe the database layer is a few weeks behind, maybe you had a stupid bug. Regardless of the actual reason, you’ve opened a door.

If I was a business guy and my people were doing Mono development, and struggling with their database layers or trying to put together a GUI for customers, where do you think I’d suggest they go? Hint: you don’t want them playing with the kiddie version. You buy into the Microsoft Development tools. And Windows. You want something supported and fully feature rich. Do you think you are likely to find an employee trained in .NET or trained in Mono? Which job experience will the usual C# developer want? This is also an apparent business problem, and is another sign of why this is a slippery slope.

All of this can happen /without/ any action on Microsoft’s behalf. If you were to, instead, say, choose Java (and I’m /not/ a Java fan), you simply don’t have this business problem. You can make a perfectly valid case that you are working with the full suite of tools all the time and that you have the freedom to replace components with other enterprise supported components when you need to. Your Linux OS platform will never be labelled second class. This is also true of most every other tool we have in our software development arsenal — actual Open Source software, that is.

I’ve seen something like this happen before at a previous company — and mono often stands no chance for serious consideration if there’s also a slim chance that Windows stands a chance of serious consideration. Injecting mono into your work projects is an open door into having to replace your OS with Windows a little further down the road because you are vested in the codebase and the codebase needs .NET (even if it doesn’t). If you are ok with that, go ahead. If you are writing simple non-profit desktop apps, go ahead. But know what you are promoting is a double-edged sword (what halfway decent sword isn’t, really? Perhaps I mean it’s a triple-edged sword.) And even adding a few more Mono apps helps percipitate that belief.

If Microsoft were actually selling development tools for Linux and working on Linux implementations, this would be different. The risk wouldn’t be there.
The world is really driven by enterprise software, and without ADO, and without development tools, mono remains analogous to those half-open projects we all dislike, knowing full well that they do /not/ get it. Every application that claims to be open and holds something back, not being open, is saying “this model doesn’t work, hint, hint, you should be using proprietary bits”. Here is the case with the data access bits, with the development tools, with the quasi-open stack.

Perhaps Microsoft really means well, and there’s a saying that if you always act like a good person you become one, even though it is eventually hypocritical. Perhaps that’s true here, or perhaps they are really being good… however… it’s not good. It’s especially not good for the platform.

And really, are you that enamored with C# to not find something better? It’s not /that/ great of a language, folks. It may be Java without a few warts, but it’s still not uber-productive or anything. Even cross-platform fat clients on Windows can be made to work remarkably well even in something as simple as Python. C# is not the only option for cross-platform Windows applications, and if you are doing pure-Linux apps, there’s not even the appearance of that need for mono.

Watch out for the triple edged sword before you start wanting to use more mono/C#. It cuts three ways.

If you are using it thinking it is open enough (and it may be), you may not get to keep your application stack that way over the long haul.

My long held theory is that mono was never to be considered a legal threat, it is a tool to be used in a strategy of erosion … insert a compelling technology, then provide a migration path by adding on proprietary extensions. It erodes Linux and it erodes OSS… and advocacy for it, even in purely legal/ethical ways, using just the free bits, and so forth, help enhance that position and acceptability.

OSS gets blamed for being a religion. That may not be completely fair, but there /is/ a Golden Path that must be followed to a better software tomorrow. In this way there are tennets to follow that are not always purely technical, because there /is/ a cause and a goal in mind. One of those tenets is making sure we advance things that promote true and complete openness, and that we look at half-closed software as more dangerous than proprietary software. Proprietary software can be defeated on technical merits, half-open things slowly erode our very definition and purpose and threaten what we hope to accomplish.

If you thought it was just about code or the tech and the law, it’s not. The code is a side effect.

Written by mpdehaan

July 7, 2009 at 1:11 pm

Posted in Uncategorized

8 Responses

Subscribe to comments with RSS.

  1. Hi there.

    I have a problem somewhat like the one you depicted, but not at the legal side but related to how serious a specific piece of open source solution can be taken on an enterprise. And I’m talking about JBoss that only now have an opportunity to show what it can do for that enterprise but when you talk with people in there then you see they aren’t taking it for serious.

    It’s true that it will have to beat solutions like SAP application server or Weblogic, but i’m convinced that it can, but i don’t know if the people in the enterprise are willing to give it a try.

    What makes me sad is that some professionals of this company teach JBoss in the local universities and their students will be the professionals of that enterprise and then again will teach at the universities. But daily they seems to play at the dark side. :/

    Sad.

    Edney Matias

    July 7, 2009 at 2:02 pm

    • Yeah, I know the feeling. Well with JBoss you can point them at Red Hat and say “these guys have support if you need it” (disclaimer: I work for Red Hat, in case that wasn’t already clear). Something you can’t do with Mono. Though really that has /nothing/ with my reason for posting the article — I felt that sting at a similar job, in that case, with .NET displacing some rather good Python. I think Mono just makes it worse, because it appears to be good, when really it just advances something we don’t want. We considered it an option at that job, but Mono would have never been taken seriously without support options and someone behind it — hence Linux also got the shaft. In fact, saying nice things about C# and such, even in the slightest way (like how it’s slightly better than Java), allows the wolf a foot in the door.

      mpdehaan

      July 7, 2009 at 2:07 pm

  2. Very nice post, and despite the content, quite neutral to be frank.

    I share your belief here. The .Net is a good piece of Windows technology in my view, but with the current state of things, there is absolutely no need for it in Linux. And I am actually rather doubtful whether it is that great to be required here; as you wrote, there are other solutions that are completely open sourced, such as Python (which integrates with GNOME very nicely, and is portable as well) or Java, which has a “framework” of its own and is not tied to any specific platform from day one.

    Sirrus

    July 7, 2009 at 3:27 pm

  3. Novell offers commercial support for Mono and Mono’s application server.

    http://www.novell.com/products/mono/

    We work with customers to improve the performance of their Mono deployments, fixing bugs in their code as well as improving Mono to suit their needs.

    Not sure why you felt that you needed a FUD tirade against supportability of Mono. Perhaps you thought you needed to insert this little bit of fear and doubt to attack your competitor.

    Miguel de Icaza

    July 7, 2009 at 3:48 pm

    • News to me, when did that start? Anyway, I speak for me, not my employer. Either way, I don’t intend to spread things that aren’t true there. Novell does some good things and some bad things.

      Anyway, support or no — the rest of my concerns are still quite valid. Mono is likely a toy platform in Microsoft’s eyes, it exists as an upgrade path to their suite of tools and to get people interested in them, as well as to show that they “get” Open Source when they have made so many (and still do) attacks against it. It is used to say “yes we do Linux” when the platform is not of the same level of features and quality.

      I stand by the rest of my opinions.

      Those involved would have been better to work on a different language, IMHO, unfreed of such encumberances, able to stand on it’s own. Even though I’m not a Java fan, targetting the JVM instead of the CLR, especially now, seems a far safer bet.

      mpdehaan

      July 7, 2009 at 4:33 pm

      • Well, Novell does things on their sole interest turning their back to the FOSS community. Novell has done it before. Did they change? Now we’re encouraged to follow as monkeys. F-spot? Tomboy? Bullshit! So, excelencia, Don Miguel de Icaza, what will be the next move? Are you or are you not paving the way for M$-Novell Silverlight crap being pushed down the careless FOSS community throats? Oh, my. Children, it’s time to learn and say no to unknown people offering candies at the schools’ doors. First, they put their .NET approach in everyones minds, then perhaps many will end up thinking the Gates way. Freedom and principles should not be taken for granted unless they’re real and they’re exercised.

        Jaarkonen

        July 15, 2009 at 11:20 am

  4. Another problem, which I didn’t bring up originally, but probably does apply here too is the Novell exclusive protection deal WRT Silverlight, another example of the technology being used as a wedge. Where Silverlight isn’t good enough on Linux, it makes Linux look bad — because it’s not the same implementation, and it is definitely a problem because it’s not protected evenly across all distros. We need open standards that are completely free for everyone.

    Never mind that Silverlight is or isn’t a good technology (I haven’t used it, that I know of), but insertion of such divide and conquer technology is dangerous, and in /that/ case, another minefield.

    I question why anyone would want to support that, given the past history of those hostile to FOSS, and continually hostile (see Tom Tom FAT lawsuits, etc).

    It seems to be setting the entire ecosystem up for failure by endorsing and promoting those angles.

    We should be working for good, purely open, 100% unencumbered technology, not providing angles of entry for subtle things that whittle away at our resolve and blur the lines.

    mpdehaan

    July 7, 2009 at 6:07 pm


Leave a Reply