(Now just) Joe on MONO


Sometimes it’s frustrating to work for Microsoft and speak to developers for a living. I understand that sensationalism sells press, and the press has has gotten a great deal of mileage out of bashing Microsoft and second-guessing Bill G. and Steve B. at every turn during the past few years. … but if you REALLY wanna spark things up – say MONO to a Linux Developer. A few weeks ago at an MSDNEvent I was asked my opinion about The MONO Project After a day of hard work, my response earned me a customer evaluation of 1 (the lowest possible score). I basically said, “I think MONO is technically cool, but is an unlicensed activity, which makes it a poor choice for business use. Now I’m not an MS-Cool-aid guy. All you have to do is listen to one of my PHP web-casts to understand that I predicate my feelings about technologies based on MY perception and that I work for Microsoft BECAUSE of those feelings – not in spite of them. While I agree that much of the intellectual property protection system in this country (USA) is problematic, I believe in the right to “own” your own inventions. MONO is NOT an implementation of the Shared Source offerings from Microsoft. It IS reverse engineering. Click here to read what Amanda Morgan, Group Product Manager, Microsoft Global Positioning had to say about MONO.


Comments (47)

  1. Ivan Towlson says:

    Hang on, though: there are bits of Mono and there are bits of Mono.

    The CLI is an ISO standard. Anyone can implement it, and licensing shouldn’t be an issue. (Should it? Otherwise what’s the point of ISO standardisation?) Now you can argue about the merits of open source software in business use, though with Mono being backed by Novell most of the usual arguments go away; but "it’s unlicensed" shouldn’t be an issue for using the Mono implementation of the CLI.

    That said, Mono goes beyond the CLI standard and also implements Windows Forms and ASP.NET. Those, I believe, are not standardised, and could be attacked by Microsoft on licensing grounds (if they really wanted to lose all the developer goodwill they’ve been trying to win back *grin*). On the other hand, Mono offers unencumbered libraries for forms development using Gtk, so anyone specifically targeting Mono could use those if they were worried about licensing.

    So could you clarify — are you really saying Mono is entirely unlicensed and the CLI ISO standard still "belongs" to Microsoft in some way, or were you just cautious because most people will think of Mono as including the non-standardised Forms libraries?

  2. Microsoft needs to tread very, very carefully where Mono is concerned, as many have sold .NET to their organization based largely upon the existence of Mono (I personally have been involved in the platform selection process for several groups where .NET was rationalized as platform, and invariably the topic of Microsoft lock-in was raised as a serious impediment. In each case Mono was raised as an example that there is limited lock-in and most code could be used verbatim on alternate platforms if it were necessary). These organizations are using Visual Studio and deploying to Microsoft solutions, paying into the Microsoft coffers, but they would never have switched to .NET if they truly thought there was lock-in.

    I find it humorous that one of the principal techniques used by the anti-MS camp to discourage the adoption of .NET is by proclaiming that Mono exists only until Microsoft decides to legally extinguish it. Interesting seeing vague threats coming out of Microsoft towards Mono when it has indirectly done more to help the adoption of .NET than anything Microsoft has done.

  3. Joe Stagner says:

    Ivan,

    I TOTALLY agree. That which was released to ISO is public. (CLI, C#)

    … but not WinForms, ASP.NET etc.

    I understand the "good will" of letting the OpenSource developers reverse engineer those technologies without permission……

    But I also understand that Microsoft has an obligation to it’s shareholders. 🙂

  4. Joe Stagner says:

    Dennis,

    I think you are completely wrong.

    Microsoft has NO obligation to support the outright theft of proprietary software. Period.

    It’s great that developers like yourself, see that .NET is a great developer platform, but no obligation is created when someone violates the EULA, reverse engineers our investment, and then copy a product. If others become interested as a result of that work – fine, but no “debt of gratitude” is created.

    I certainly think that it is irresponsible to advise commercial customers to bet their company on technology developed under these circumstances (at least without honestly identifying the risk.)

    Microsoft spend the millions to invent .NET – isn’t the “right thing” just to recognize the success and use .NET on a licensed platform ?

    Joe

  5. Ian Cooper says:

    The Mono FAQ does indicate which areas of their implementation they believe are covered by MS patents: http://www.go-mono.com/faq.html

    C# and the CLI are an ECMA standard, so competing implementations should be possible – open source and commercial – provided they only implement those elements that are covered by the standard.

    However I suspect the real question being asked by many developers is: Can .NET applications target non-windows OS platforms using technologies like Mono, and if not doesn’t that give Java an advantage for any developers who might have a need to make their applications portable. If there is sufficent demand for a version of the framework that runs on Unix or OS X, won’t somebody build it – commercial or open source.

    I’m not so naive as to believe this doesn’t open a big can of worms, just suggesting you need to think about responses to the question of .NET on other platforms. Sometimes application developers don’t get to dictate what OS their customers are using.

  6. Undoubtedly it is a risk choosing the .NET platform based upon the continued existence Mono in its current form. My comment was moreso that strategically it’s best for Microsoft to keep a low profile in relation to Mono, as Mono has served as a fantastic sales tool for Microsoft when compared to, for instance, J2EE. I suspect this is why overall Microsoft has publicly remained so quiet about Mono, allowing it to continue to exist (otherwise why haven’t the phalanx of lawyers swarmed Mono Headquarters?)

  7. Joe Stagner says:

    Dennis,

    I agree. And Microsoft pretty much does keep a low profile with MONO. You can still download it – right?

    The shareholder in me trusts Microsoft to continue to do what’s best for my stock values. As a geek, I think it would be cool if Novell/Mono and Microsoft had an agreement about what was going to happen.

    Seems like the developer would be thebig winner.

    Joe

  8. Joe Stagner says:

    Herald,

    First – this IS a legal issue. You would leave "legal issues asside" if I decided to start driving to work in YOUR car every morning.

    Second – I think is really silly to say the lack of MONO will drive LOTS of companies to Java. "New project" adoption of Java is WAY DOWN already and MONO just doesn’t play into it.

    But I agree that it’s cool !

    Joe

  9. Sean says:

    I’m going to suggest the notion that .Net was designed in part for just the pupose Mono is "Exploiting" … that is the development of a framework that is potentially cross platform.

    Then there’s the aspect of why Mono exists — apparently there exists a market, abiet maybe a niche one for now, for a path for cross platform .Net development. Even if you’re a part of a company who’s only targeting the Windows platform for now, Mono is a potentially great path, since it allows me, the developer, to potentially increase my customer base, without having to do a whole bunch more work.

    The Java argument. Though, in practice it’s harder than it sounds (converting to GTK+, making sure you’re mono compliant (”, case sensitive paths, etc)

    But MS will not pursue this path, since MS is primarly a OS factory, and until that changes, .Net on Linux doesn’t sell boxes of XP.

    Great. I’ve just pounded the rubble 😉

  10. dr.ml says:

    …isn’t the “right thing” just to recognize the success and use .NET on a licensed platform…

    That’s the basic rub that sends IT departments scurrying into the Java/J2EE camps… sure, .Net is the greatest thing since bread came sliced, arguably better than Java/J2EE/Struts/Tiles/Hibernate/Spring etc, and the IDE is just awesome. But more and more IT departments are looking at the Microsoft Platform as not only costly but chock full of security risks. Granted, since I live in both camps (J2EE/SUN and .Net/Microsoft) I know that I patch my *NIX boxes just as much as my Windows servers, but the perception (and thats what drives IT dollars… not reality) is that being locked in to Microsoft platforms will in the end cost more in licensing, and cost more in administrative time spent regularly patching.

    The Microsoft marketing beast has slowly awoken to the misconceptions in the industry and started targeting half of the issue… proving (A) .Net solutions can be developed & deployed in less time than an equivilant Java/J2EE solution (B) TCO for Microsoft servers is lower than the TCO for generic *NIX servers. However I have yet to see Microsoft marketing target the real percieved Achilles heel…. security… .yeah… yeah… their ads for Windows Server 2003 say its more secure than any previous Windows server offering… but lets see apples to apples comparisons…. over the past N months there have been X security issues identified w/Windows Server 2003 compared to Y security issues with Red Hat Enterprise Linux 3AS, compared to Z security issues with Sun Solaris 9. IIS6/.Net Framework to offerings from BEA, IBM and SUN. Until then, there is no real firepower in the trenches to combat the FUD factor being generated by Gartner and other ‘industry watchers’…. all the while we keep hearing that the big-guns server of the future… aka LongHorn… keeps getting pushed further out and will have fewer and fewer features… while its competition is moving forward with integrated provisioning and mixed workload support.

    Okay… so I’ve gotten a bit off the MONO topic… didn’t Microsoft try to hire De Icaza back in 1997 (MIT Technology Review magazine Sept 2004)… and Dennis, there are other alternatives besides Mono… Infoworld just reviewed two tools that recompile .Net applications into J2EE with minimal developer support (your app writes to the event log? what event log?) Still its not free, but with Novell owning De Icaza its only a matter of time before Mono truly is the open source monkey… with Novell running the gurdy.

  11. Joao says:

    Joe,

    please define reverse-engineering for us.

  12. Joe Stagner says:

    Sure,

    According to dictionary.com

    Main Entry: reverse-engineer

    Function: verb

    Definition: to analyze a product to try to figure out its components, construction, and inner workings, often with the intent of creating something similar; also written reverse engineer

  13. Your argument would make sense if reverse engineering

    was forbidden in the US, but even the DMCA has ratified

    its legality for the purpose of interoperability.

  14. Stut says:

    Joe,

    So you would consider it reverse-engineering to create something that copies the interface of a component and attempts to create the same outputs given a set of inputs as another component?

    If so, didn’t Microsoft reverse-engineer several word processors to create Word? A bit picky I know, but I personally don’t consider what they are doing with MONO to be reverse-engineering.

    -Stut

  15. Joe Stagner says:

    You would be right if MONO were a PHP framework seeking to interoperate with .NET – but it’s NOT.

    It is an atempt to build a product that Microsoft invented and which they acknowledged by accepting the EULA as specified in Section 2 paragraph 2.

    If some one was stealing stuff out of your garage, you would expect the law to protect you. WHy would you feel that Microsoft’s shareholders (like me) are someone not entitled to the same legal protection ?

    Joe

  16. Joe Stagner says:

    Stut,

    I don’t know if Word was an infringement.

    I do know that the "two wrongs make one right" theology isn’t widely subscribed to.

    If a company believes that Microsoft, or ANY company, has violated their IP rights, I absolutly uphold their right to assert their contention and seek adjudication.

    Just like I believe Microsoft has the right to do.

    Why do you not feel that Novell has an obligation to seek permission from Microsoft if they wish to add NON ECMA (public) .NET features to MONO ?

    Joe

  17. Stut says:

    Joe,

    I wasn’t suggesting that two wrongs make a right. My point was that MONO are not (as far as I am aware) decompiling the .NET framework in order to implement their version of WindowsForms and the other components in discussion. I was just pointing out that they are, in my opinion, simply reimplementing the functionality. The fact that the functions look the same is, to me, no different from the Excel interface using the same graphical interface features of Lotus 1-2-3.

    I do fully believe that they should have requested a license from Microsoft before they went ahead. However, I can also see a major reason why they didn’t, If they had requested a license and been refused they would have been scuppered. As it is they have used the public image Microsoft currently have to do something that probably wouldn’t have been tolerated had Microsoft been on a better footing.

    I do have one question: If the feeling at Microsoft is so strong and they are so sure that they are right (which is the impression you are giving), why haven’t they done something about it? Surely the longer it goes on unchecked the harder it’s going to be to quash.

    -Stut

  18. Joe Stagner says:

    Hi Stut,

    I think you ask some great questions.

    Perhaps the MONO folks intentionally didn’t ask permission first out of fear that Microsoft would say no. (Shhh, lets just try to get away with it.) Truthfully I don’t think that’s the way it happened. I think that it just started out as some smart guys tinkering with some cool technology. I also think that Novel making a "Commercial" venture of it changes the picture.

    I don’t speak for Microsoft as a whole. Discussions I have had internally indicate that Microsoft fully intends to defend it’s IP in whatever ways are in our shareholders best interest.

    Perhaps what "actually IS" in shareholder best interest may still be under discussion.

    My original post really had two points.

    1.) That an attendee (Linux Zealot) wanted to communicate to my management that the days event was a complete waste of time because, after he asked me for my PERSONAL opinion about MONO – and I gave it – he did LIKE my opinion.

    2.) That the lack of clarity on this issue (which I personally think Novell should address) make MONO a risky choice for BUSINESS use.

    The discussion here has been fascinating to me and I have a question – not for the sake of argument, bt because I’m really interested in outside opinion.

    1.) Do you consider the non-public parts of .NET to be inventions? (WinForms, WebForms, etc.) ?

    2.) Do you believe that a person’s or company’s invention belongs to EVERYONE, regardless of the cost to discover that invention, or to the person or company that invented them?

    Thanks Stut,

    Joe

    .

  19. Joao says:

    Other than a new API, what inventions do Winforms and Webforms offer ?

    Being more of a web application guy, I’ve compared ADO.NET and ASP.NET to technologies that came out nearly ten years ago (NetDynamic, Allaire, SilverStream). They had data binding, server side programming, web controls, data set objects with delayed update and manipulations (DataWindow patent anyone ?).

    I would agree that ASP.NET/ADO.NET is a very nice and clean API. Inventions though, I think not.

    Can you copyright an API (the actual method signatures) or a language (the syntax) ?

    If so, there are many companies that could sue Microsoft for C# (did Sun ?) or ASP/ASP.NET/ADO/ADO.NET (NetDynamics/Sun, SilverStream/Novell, Allaire/Macromedia).

    If not, then what are we talking about ?

  20. Stut says:

    Joe,

    In regards to the points of your original post, to a certain extent I agree with your opinion. MONO is technically cool but also technically illegal. However, I do not believe it is a poor business choice so long as the limitations and possible (probable?) licensing issues that could arise are understood from the outset. In my experience it is quite stable and as far as I’ve seen is technically a very accurate recreation of the ISO standards it attempts to implement. I would not recommend that the unlicensed parts are used in a business environment but even without that it is a reliable investment.

    I think when talking about MONO Microsoft should be very careful not to paint the whole system with the ‘unlicensed therefore poor choice’ brush.

    1.) Do you consider the non-public parts of .NET to be inventions? (WinForms, WebForms, etc.) ?

    I do indeed consider them inventions. But I would have to say I think of them in the same way that I think the spreadsheet and word processor were inventions. I think the MONO project is treading a very fine line and personally I don’t agree with it. However, I think they are doing the development community a great service in providing a way for .NET applications to run on platforms other than windows regardless of the methods they use to achieve that aim.

    If Microsoft want .NET to be the runaway success they are hoping for why aren’t they putting more effort into making it usable on other platforms? The answer, from where I’m sitting is that MONO is doing it for them which is why they haven’t pursued the licensing issue.

    2.) Do you believe that a person’s or company’s invention belongs to EVERYONE, regardless of the cost to discover that invention, or to the person or company that invented them?

    To a certain extent, yes. It depends on what you mean by the invention. If you mean an idea, or a new way of approaching a problem then I think it does belong to everyone to a certain extent. Not for the sake of argument I briefly mention the origins of window-based graphical user interfaces.

    Maybe I feel this way because I’ve never been on the receiving end of this type of thing. I’ve been developing software for nearly 18 years and have not so far developed anything I would consider an invention. Maybe I would feel different if I did, and hopefully one day I’ll get the R&D job I am searching for and will find out what it feels like to have an invention copied.

    However I would expect to retain the following opinion: That all innovations need to have a certain degree of freedom if they’re going to benefit the software industry. Where would we be today if software innovations, like windowed graphical user interfaces, were only allowed to be developed by the company/entity that invented them.

    -Stut

  21. Joe Stagner says:

    Joao,

    On the one hand – I think your confused. The Sun / Microsoft Legalities had NOTHING to do with IP claims. It was simply a contract dispute. Sun believed Microsoft violated the contract, had a right to have that concern adjudicated, and DID.

    When you, or anyone, install .NET – you agree to a EULA that states YOU AGREE thatthe installation contains Microsoft Intellectual Property.

    .NET is not simply an API, there is mush that is new. (I think.)

    Microsoft spent ALOT of money to develop .NET, the OPen Source Community didn’t start untill AFTER someone else had allready done all the inventive work.

    Which takes me back to one of my origional questions…..

    If YOU invent something, do I have the right to take the work YOU paid for, copy it – and make money from your ideas – without your permission?

    I think not, but I truely am curious as to other’s opinions.

    Do you belive that ……

    1.) .NET does not constitute an "invention"?

    2.) Microsoft has the right to ask a court if .NET legally constitutes an invention?

    3.) We should have the right to ignore the laws we disagree with.

    4.) I so, can Microsoft also ignore laws and not be held accountable?

    Thanks,

    Joe

  22. Joe Stagner says:

    Stut,

    Thanks, You’ve made this discussion especially fun. Smart and well spoken.

    I agree with you completely.

    MONO project is treading a very fine line – if it weren’t, this would noyt be such a contended topic.

    Your observation about MONOs business viability is interesting. It also causes me to see the "other side". That MONO applications are easily ported to .NET – so if it ever became necessary – a company could quickly port to Windows.

    So if you’ll indulge me, another question. For business uses, most cost studies (industy wide, not just Microsoft internal), indicate that Windows is less expensive to own.

    If that is true – what is the advantage of MONO rather than just building .NET on Windows.

    1.) Is it just that the individual developer doesn’t have to buy Windows & Visual Studio ?

    2.) If Visual Studio were free – how much would that change your perspective?

    3.) Is it just an anti-Microsoft thing (lack of trust about what Microsoft will do in the future.

    Thanks Stut,

    Joe

  23. Stut says:

    Joe,

    Hmm, TCO is a difficult thing to measure which the variety of opinions complete with tests to back them up that you can find around the Internet are proof of. I firmly believe that TCO has too many contributing factors for any one comparison to be authoritative for all cases.

    My personal preference for servers is FreeBSD and has been for quite some time. The primary reason for this against Windows in particular is the lack of GUI bloat which is part of the general feeling of control I get over the system. I know what’s installed and running over and above the kernel. While a Windows server can be easier to configure I have a general uneasy feeling that I never quite know what it’s doing. It’s likely this is all in my head, but it’s there all the same. However, like most people in this industry there is often no choice in platform so I get a fair bit of experience in both environments.

    To answer your specific questions…

    1.) Is it just that the individual developer doesn’t have to buy Windows & Visual Studio?

    Possibly, although I think most developers get these from their employer.

    2.) If Visual Studio were free – how much would that change your perspective?

    If? Since Visual C# 2005 Express was released I have been using that for all my .NET development at work (I was using SharpDevelop since the company won’t spring for VS.NET given that there is a free alternative). It’s a much nicer environment than anything else I’ve come across. Development environments are something that Microsoft have become very good at creating.

    Again, since most developers will get their tools from their employer, but I would expect a lot more to start using Visual Studio if it were free.

    3.) Is it just an anti-Microsoft thing (lack of trust about what Microsoft will do in the future

    For me it’s not an anti-Microsoft thing. I am a fan of Microsoft and think they do excellent work in a lot of areas, but I can see where some of the anti-Microsoft feelings come from. From discussions with other developers there is a general feeling that Microsoft still have their priorities wrong. If you’ll allow me a little rant…

    Until recently I shared the opinion that Microsoft were purely interested in adding new "headline" features to products (particularly Windows and Office) rather than ensuring that the existing features are stable. Recently there seems to have been a major push to get the stability problems under control. I can’t speak for Office since I don’t use it much, but Windows has been getting progressively more stable with each release since 2000. I run XP on my desktop and 2k3 on my development server at work with 2000 Server on the production machine and I have very few problems with any of them. Hopefully this is a trend that will continue throughout the company.

    Rant over, I hope that answers your questions. This is fun for me too – I rarely have discussions like this without it turning into a pro-MS vs. anti-MS fight.

    -Stut

  24. Joe Stagner says:

    Stut,

    I agree, TCO statitistics are a messy prospect – thought my customers tell me Linux wins when it is used as an issolated appliance and Windows wins in the enterprise.

    Thanks so much for the discussion today – you’re right – it’s not often one has the ability to have an opposing discusion that doesn’t rappidly digress.

    You really should try the full Visual Studio. Use the contact form to email me your shipping address and I’ll send you a copy 🙂

    Best Regards,

    Joe

  25. Stut says:

    Joe,

    I can understand why your customers tell you that. It may go some way to explaining why Windows has such a poor stability reputation. The more you try to do with a system the more unstable it becomes. I remember hearing an IT support engineer remarking, while installing Windows 2000 Server, that the only stable Windows server is one that has nothing installed other than the OS. He then proceeded to install Exchange, SQL Server and various third-party applications.

    Thanks very much for your kind offer. I’d really appreciate being able to use the full Visual Studio. While the Express range is a stroke of genuis – they make it a lot easier when evangelising the .NET platform – they can’t compare to the features of the full version.

    Thanks again.

    -Stut

  26. Hi Joe,

    regarding your question what I would do if someone wanted to use my car every morning – if I could live in his house for compensation I surely would think about it.

    And I think that is the situation – many of our customers care about OS independence (even if only perceived – but as mr.ml said "Perception matters") – I firmly believe for MS it is in their best shareholders interest to support Mono because MS can get a foothold in certain areas only because of Mono.

    Harald

    P.S.: I really hope the guys at slashdot don’t find out about this discussion – I can almost hear some of my peers (those with the penguin 😉 coming up from behind (" See, we’ve told you! It’s still the EVIL EMPIRE – now using even ISO to set up the trap..") and giving me back my ramblings about Sun and their unwillingness to standardize Java…

  27. William says:

    Joe,

    I think you might still be missing something, though a couple of posts indicate you might not be, at least entirely missing it. However, it’s an important enough point, I’m going to make sure you hear it ;).

    Legally, you (and MS) are right about portions of Mono being on (ehem) very shaky legal ground. The Mono developers admit as much, and have taken great care to seperate the "stacks", so that *if* MS makes issue, they can drop the portions that are well into the grey area. I doubt you’d even have to take them to court over it. And they’d continue on very strongly with out these "stacks".

    WinForms is not needed, as they have GTK#. In fact, attacking them on the basis of WinForms would be detrimental to MS, as GTK# would emerge as the choice of many (most?) developers, since it would become the only cross platform game in town.

    ADO.NET is tricky. For MS to attack this one, they’d have to attack all Open Source implementations. This means no MySQL or PostgreSQL ADO.NET providers… even on the MS Windows platform. And since there’s not much money to be had here, and Mono can easily create another data access library (there enough of them out there in the Open Source world that could be ported easily to .NET). So, I don’t see any win for MS to attack MONO for ADO.NET.

    The only real "stack" that I see that MS could have issue is ASP.NET. Mono has nothing else to offer in this area, and it’s not an easy area in which they could put forth an alternative over night. (In fact, I’m surprised that Mono hasn’t focused on creating an alternative for this very reason.)

    But this brings us to the point I’m not sure you’ve gotten. Others have said it, but let me shout it, just to make sure you hear it: IT IS NOT IN MS’S BEST INTEREST TO CONTEST THIS! Have they violated IP laws. Most likely, though I think some case can be made in favor of Mono. Not that I’m saying I think such a case is likely, just that it’s not 100% given that MS would win if they did challenge them. But, ignoring the legality, it’s simply not in MS’s best interest to do anything about this. I *really* think that MS made a mistake by not standardizing ADO.NET and ASP.NET (WinForms is fairly Window’s specific, which is why Mono doesn’t have a full solution there yet, and probably shouldn’t be standardized… but this means some other solution is likely to replace WinForms!).

    Vendor lock-in is not a viable business model. MS got to where they are not by vendor lock-in, but by competing strongly in the market. Using a development API to create vendor lock-in, whether legal or not, is simply a bad idea. In the long run, attempts to do so, I firmly believe, will result in backlash and loss of revenue for MS.

    Other’s have said this here, but I’m not sure the importance is being seen. I’m a BIG MS supporter (though I question some of the company’s business decisions). I’m a 10 year veteran of Window’s development. I like the tools provided by MS, I love the development environment, the online communities, the documentation and attention to detail by MS. But avoiding vendor lock-in is, rightly or wrongly, the number one issue for most businesses. Given an alternative to the MS implementation, the company I work for would use MS tools and would recommend clients use MS environments when running the solutions we create, which will increase MS’s revenues and pay for your investment in creating these new technologies. With out the Mono’s of the world, however, .NET becomes a non-option, and the company I work for will choose Java/J2EE and will wind up running *nix servers, eating heavily into MS’s revenues and negating the value of the technologies you’ve invested so much time and money in.

    So, when you say "I think MONO is technically cool, but is an unlicensed activity, which makes it a poor choice for business use", what many (most?) people hear is "I think .NET is technically cool, but is a vendor lock-in activity, which makes it a poor choice for business use." This horrifies me! It’ll either kill .NET, or more likely (since a good portion of .NET is standardized), will render the currently MS specific "stacks" useless, and they’ll be replaced by something else, reducing the influence MS has, which, as a MS supporter, is not something I want to see.

    So, I suggest, not only should MS not go after Mono, they should go several steps further, and standardize ASP.NET and ADO.NET, and do so sooner than later. It’s not only the best thing for .NET, it’s in MS’s best interest.

  28. Joe Stagner says:

    Hi William,

    Thanks for the post, I agree.

    As a geek, I’ve often asked the question "Why can’t microsoft lisence the .NET platform in a way that is financially feasable?

    I’m also modest enough not to presume that I understand the VAST array of decision points that Microsoft execs must consider before making a decision with that kind of broad reaching potential. It’s nice to be an armchair quarterback. (The biggest company I’ve ever run was a few hundred people. Microsoft has over 50k)

    I also think that Microsoft position in the industry means that, for things like this, we’re dammned if we do and dammned if we don’t.

    This has been a GREAT discussion. It’s been awesome for me to find how others feel about MONO and Microsoft as they relate to eachother. It’s been also AWESOME to hear from so many developers that are PRAGMATIC about technology choice rather than emotional.

    Reminds me that blogs can be great thing.

    Joe

  29. RonM says:

    What an interesting discussion – but I wanted to mention a few other reasons some of our clients are interested in Mono either instead of or in addition to Visual Studio.NET.

    * Mono has better cross-platform support and a cross-platform roadmap. With Sparc, S390, and Power support, Mono is more promising than Microsoft’s CLI implementation for high-end computing platforms. And with ARM available now and MIPS soon to come, Mono is more promising than Microsoft’s for embedded devices. From this perspective, if you’re primarily a PC focused application, Microsoft has always supported that platform well; but if your target architectures include things beyond the PC, it’s worth looking into Mono.

    * The "reverse engineering" tangent seems to be quite a red herring for a couple reasons. 1. Mono is being developed form the ECMA specs, not from decompiling other implementations, so it’s not reverse engineering to begin with. And 2. "reverse engineering" is not necessarily illegal anyway. There have been numerous supreme court and appeals court decisions defining legal reverse engineering techniques. Other cases suggest that some reverse engineering practices are against the law. In particular, though, reverse engineering for the purpose of compatibility is often considered legal. However no one, to the best of my knowledge has accused Novell of any illegal reverse engineering techniques.

    * If you’re considering Business use of C#, I think the only responsible position is to call Novell and listen to what exten they’ll stand behind Mono. I wouldn’t trust a single-source supplier for any of my critical components; so it’s nice that HP and Dell both make systems that meet our specs, and it’s nice that IBM and Sun both make JVMs that work with our software. Historically Microsoft’s been very PC-centric; and if they’re the only source of C# technologies your product may be cut out of quite profitable (high-end computing) and growing (embedded devices) sectors. Novell will happily tell you what parts of Mono are low risk and which are higher. It can’t hurt to call.

    [same as I submitted seconds ago, but proofread this time]

  30. Jeff M. says:

    Microsoft claiming that the CLI and C# standards may or may not contain IP that might need to be licensed by big companies like themselves or others is almost as vague as Microsoft’s suggestions (see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/randz/protocol/royalty_free_protocol_license_agreement.asp ) that people should go to them to license protocols like AppleTalk and TCP/IP and VT 100 protocols. Sure, I’d recommend that I can sell you a license for whatever IP (if any) I have in TCP/IP or Java or Visual Studio.

    However unless Microsoft can be clear about what exactly people running Mono or TCP/IP need to license from them, it’s unlikely many businesses will care; and equally unlikely that these businesses willl stop using either TCP/IP or C# if they benefit from those technologies.

  31. Joe Stagner says:

    Hi Ron,

    Interesting post.

    I’d like to counter a couple of your points.

    1.) You said, "Mono is more promising than Microsoft’s CLI implementation for high-end computing platforms."

    Whether or not this is ultimatly true is still uncertain, don’t you think. The "heavy meta" Intel Chip platforms, like the HP Superdome, rival any NIX big box and MONO on 32/64/128 proc boxes, clusters, etc, is still compleatly untested comercially.

    2.) Mono is being developed form the ECMA specs

    This is a common mis-conception. The only parts of .NET that Microsoft has submitted to ECAM are the CLI (compiler) and the C# language spec. ALL THE REST not ECMA and are specified as private property in the EULA accepted during the .NET install.

    You make a great observation about reverse engineering – it is not always illegal.

    It may be that the technical reverse engineering of the proprietary portions of .NET is not illegal – but the distribution of Patented of Copyrighted material by some other than the holder is not legal.

    Your third point is especially interesting. Call Novell, ask them not only which parts are low risk and high risk, but also their position on the IP questions and what level of indemnity they will offer if necessary.

    Many thanks Ron – great discussion.

    Joe

  32. Joe Stagner says:

    Hi Jeff,

    I think your missing the point.

    We’re not talking about the CLI and C# portins of MONO – those have been given to the public.

    We’re talking about all the other parts of MONO that are NOT part of what Microsoft gave to ECMA.

    Joe

  33. raptor says:

    Very interesting discussion. I have few questions. Does any of you know why MS made CLI and C# public. Just a publicity stunt…. was it to encourage projects like MONO?? If it is so then by not letting them implement winforms, asp .net etc… is microsoft trying to keep those opensource (or commercial) projects inferior to their own implementation?

    Isn’t it like Microsoft "inventing" a car(a very nice one) and giving away the spec for it except for steering and transmission portions. When some one try to build the MS CAR they can build the car without the steering and transmission or build different type of steering and transmission system. Even they have the ability to design the MS steering and transmission, they can’t because MS thinks they are inventions!!!

  34. I realize my comments are coming at a time when the discussion has cooled down considerably, but allow me to share my two cents with you anyway.

    While Mono is a very commendable effort to bring the .NET platform to other operating systems, it will never establish itself as an alternative to Microsoft’s .NET implementation. The arguments supporting this conclusion are many, chief among which is evolution: .NET is evolving at a rate that almost makes it impossible for Mono to catch up.

    Take desktop GUI programming. The Mono folks have no current plans to implement WindowsForms. Yes, this particular library is encumbered with its Win32 API heritage, but at least the public API is a good enough abstraction for other platform. GTK# might be a good enough alternative–I really can’t say because I haven’t tried it, but very few developers will plan to use GTK# from the outset; WindowsForms will always be the natural starting point, at least until Avalon debuts.

    In the best case scenario, developers who are willing to target a handicapped version of .NET–for whatever reason–might find Mono satisfactory, but I expect those to be a niche group. Most will want to have the full power of the latest .NET runtime at their disposal, and, so far, Microsoft has no contenders in that area.

    Given that, Mono will never effect Microsoft’s bottom line, and it will definitely not harm its public image. On the contrary, it will boost the adoption of .NET, and it will help appease those who fear vendor lock-in and still believe it can be avoided.

  35. RonM says:

    Thanks for the response.

    You write: "Whether or not this is ultimatly true is still uncertain, don’t you think. The "heavy meta" Intel Chip platforms, like the HP Superdome, rival any NIX big box and MONO on 32/64/128 proc boxes, clusters, etc, is still compleatly untested comercially."

    I agree about the high-end Intel systems being very competitive – but with these high-cost systems, the old ones stick around in the industry for a very long time. I think IBM did a great job providing a upgrade-to-modern-software with their Java ports (www.s390.ibm.com/java/) — so they didn’t have to wait for people to go through the 10-year upgrade cycles of hardware. And sure, mono’s untested commercially there – but at least to some extent, all of the C# implementations are relatively new to that market.

    We agree totally that Mono’s viabilitiy in business depends entirely on Novell; and to the best of my knowledge they’ve been pretty quiet about where they stand. I think at least as powerful as indemnity, would be if they’d committ to defending their rights to whatever IP they claim is ‘safe’ – for example, surely Daimler/Chrysler is happer to see IBM devend the IP in Linux (the benefits of which carry forward) rather than assist paying royalty payments (which wouldn’t help them with any new implementations).

  36. Pesho says:

    Very nice blog. It is very helpful. http://www.bignews.com

  37. Zac says:

    Its a little late but….

    I really don’t why you said "unlicensed activity"? Don’t you know your company released all the docs to the CLI and C# as an open standard?

    Also Mono is NOT a reverse engineering of .NET. Not directly by any means under any legal definition. We preform tests based on real world tests to compare it compatable but to create and maintain our corelib, C# compiler, and runtime, we use nothing but the EMCA docs, the MSDN docs, and just plain experience with it. We reimpliment it using the docs and then we write test fixtures with NUnit and then we compare to see if we pass the same tests.

    Saying "reverse engineer" is not a valid statement (Read the DMCA’s definition on the term "reverse engineer" and the countless sections on how its illegal). Not to sound like people who you say may attack you, but you really have to watch what you say.

    We ride the same line in the Mono group in our own community. We get it all sorts of crap about how we are Microsoft lovers and bringing death and destruction from the big bad MS to the F/OSS community. You got it easy.

  38. Frederik says:

    Funny thing, this discussion. Seems the key is that Mono is implementing functionality patented by Microsoft.

    In the EU, however, there are no software patents.

    I don’t buy the reverse-engineering argument — they used the documentation on MSDN, so they basically implemented functionality. As they didn’t copy code, there aren’t copyright issues.

    Hence, in the EU, Mono is likely to be considered perfectly legal, right?

    By the way, the day geeks stopped talking about technology and started caring about stock and shareholders, was a very sad day for innovation itself!