Hacker News new | past | comments | ask | show | jobs | submit login
Mono: A cure for Microsoft monotheism (zdnet.co.uk)
28 points by jstedfast on Aug 12, 2011 | hide | past | favorite | 30 comments



Can someone explain to me why Microsoft doesn't embrace Mono (or at least its ideal) outright? It seems to me like a stable and well supported multiplatform C# could establish a long lasting .NET hegemony across the industry. Appears to be a no-brainer.


One of my favorite Microsoft stories is of Windows for Pen Computing. A company named GO had brought out a product based on Pen interfaces (this was around the time of Windows 3.1). Microsoft feared they'd lose their monopoly so they rushed out Windows for Pen Computing 1.0. It stunk and so it failed pretty quickly.

In the book Barbarians at the Gate one of the co-creators of "Pen Windows" tells the story of that failure and what he told his fellow co-creator. Here's a quote from the book...

[Begin Quote]

"Greg, Look. This wasn't a thing about making money. This was all about 'Block that Kick.' We were on the special team. We were preventing GO from running away with the market. That was our job.

Look, your background is in applications, you have to ship the application. My job is in systems. Systems, for much longer on, has been completely 'Don't let anybody else steal DOS from us.' That's all we're doing. We weren't trying to sell software, we were trying to prevent other people from selling software.

From my view, Pen Windows was a winner. We shut down GO. They spent $75 million pumping up this market, we spent $4 million shooting them down. They're toast!"

[End Quote]

Sorry for the long winded post but I wanted to point out how old this strategy is. .Net wasn't a product to make money it was a product to block Java. By making it the default Windows development environment they were able to do so without flushing money down the toilet (as was done in the example above)

So, as Miguel De Icaza says in the piece, Microsoft really doesn't love .Net the way Xamarin does. They still want people developing for Windows alone. Their developers just happened to create a great tool while management was paying lipservice to cross platform development.


I don't think an old anecdote about GO/WfP sheds much light on the birth of .NET.

Microsoft wanted the goodness of a managed platform, while having the freedom to evolve it and generally make it a) not suck as much as Java, and specifically b) be better at interoperating with existing (Windows) software. .NET clearly wasn't rushed out the door as a panic response to Java. .NET arrived years after Java & J++. MS just realised that managed was the way to go for a lot of development activities.

Java was and still is available for desktop programming, but by now C# has clearly evolved to be a better language, and .NET a better platform for developing (Windows) desktop apps.


The situation with Java is even stronger than "MS just realized": MS was /forced/. Back then, MS thought Java was great, but looked at it as a language and execution engine as opposed to a dream about "write once, run everywhere", and so released J++, allowing developers of Java applications to use a replacement toolkit that bound to native Win32 widgets. This caused them to get sued, and the result of the case was that they lost their license to Java. J++ 1.1 seriously came with a dialog when you ran it apologizing that they were legally required to stop distributing the application, and that you should look into alternatives. Thus, .NET was born.


I don't see how your elaboration on the history contradicts anything I said. This is all common knowledge. Totally understandable that Sun tried to lock MS out of tailoring their platform to Windows, and totally understandable that MS would want a good managed platform, instead of going with a flawed compromise system they didn't control.


I do not feel like the goal of my comment was to contradict what you said, only to clarify and strengthen it: the people you are arguing against believe that Microsoft built .NET to damage Java, and demonstrating that not only did they choose it because it was "the way to go" but that they were actually /forced/ to do so, is a much stronger way to undermine that belief.


Yep, to be honest I think we're agreeing.


(I have been trying to agree the whole time, such as to "clarify and strengthen" your statement...)


There are a few forces at work here:

.Net begets Windows: long-standing MS strategy has been to provide tools & resources that drive Windows adoption.

The millions problem: MS measures licenses for things in the millions. Anything below that is really difficult to make a business case worthy of pursuing (in their world.) Are there millions (plural) of potential adoptions for .Net on non-MS platforms?

How do they make money: .Net is essentially a loss-leader for them now, as they don't charge for it (they make it up in OS licensing.) They're not in position to derive revenue from other platforms.

Target audience: while Linux is the dominant OS in most startups, Windows heavily targeted to corporate environments. While spending resources to target other OSes works for some people, some users who have large Windows installations want to see resources directed at pushing their platform. And, those users are ones with license dollars behind them.

*The koolaid factor: if you've spent time in Redmond, you get this weird feeling there's a large contingency of people who have no idea there's a different OS out in the world. Seriously, in some places over there it's like the Truman Show.

These aren't my talking points; I have friends & colleagues in/around MS who frame this for me. I don't advocate these positions, only that they are significant issues in the conversation.


Sorry for the formatting issues here. Blame the author. <--


Because Microsoft makes money by selling operating systems. If mono takes off then Microsoft can't make money by using .NET to sell operating systems.


No, Microsoft makes money selling software; Windows is just their best selling piece of software. They also make money selling Mac Office, for example.

They could also theoretically profit from .NET being platform agnostic; perhaps by releasing a Visual Studio for Mac (that works with Mono). They'd probably own corporate programming departments if they did that.


Every Visual Studio for Mac license sold means one less Windows license sold. If they make the transition away from Windows easy, less corporations would want to enter corporate licenses. Mac users would consider using iWork instead of Office. That move would, ultimately, erode Microsoft's market dominance, then their share and the slide into one-more-competitor condition would be inevitable.

If they ever do that, it'll be because they think Macs and other OSs don't represent a threat to other Microsoft software.


Are you sure this is the reason? Our company uses Microsoft OS and office tools across the board. But when it comes to development most of our work is done in linux. A version of Visual Studio for Mac would make no difference.


Your company seems to be very atypical. At least here in Brazil, most people who used to develop in Visual Basic for Windows have moved to ASP and then to ASP.NET for web applications. Of those who felt tempted to use Java, many moved to C#, which is very Java-ish.

Not all corporate developers are good developers. Managing good developers is hard and managers prefer the more predictable, cheaper, average ones. Sadly.


My point was that they already do it through Mac Office.


Mac Office exists to prevent corporate Mac users from introducing competing office products. The only reason it's good is iWork.


For the same reason they don't just put Webkit into Internet Explorer and move the IE team to other projects -- they want control over the platform.


More than that: they see non-Microsoft web apps as a threat to their ecosystem. They will do everything to fragment the market in order to make it as hard as possible to deliver cross-browser applications without making IE clearly inferior to the competition. Using that with companies that standardize on IE for their corporate desktops and making IE just incompatible enough, they make it harder for companies to migrate away from Windows because core corporate web applications require it.

Several web applications in the company I work for require IE. I have Windows in a VM for that.


I agree with you, and such an embrace seems logical.

So,the lack of an embrace means something. The easiest "meaning" to impugn is that Microsoft really really doesn't think non-Windows can work at all, a sort of raging Not-Invented-Here turned up to 11.

The next easiest meaning to impugn would be control issues. Giant Immoral MegaCorps seem to value control over all else, so perhaps something that's not strictly policed just can't be tolerated.

It goes downhill into conspiracy theory from there, I think.


If you go to something requiring Silverlight from a Linux box, the Microsoft site will redirect you to Moonlight.


http://www.tryfsharp.org/Tutorials/QuickLanguageOverview/Sec... <--- this is an MSR site and it mentions Mono and claims that F# is multi-platform.


I think once the IDE catches up to the level of Visual Studio or the Java stalwarts Eclipse/IntelliJ it will really take off. I usually do my stuff first in VS then bring it up in Monodevelop to finish it off and make sure I am mono safe.


The Visual Studio IDE has gotten much much worse.

I started with Visual Studio 6 (mostly using Visual C++, and VB6) and it was a speedy. Visual Studio 2003 was a little slower but not bad, 2005-2008 about the same. It was all bearable and acceptable.

Now Visual Studio 2010 is painful and awful. I've got a Core 2 Duo, 4 GB of RAM and the interface is slow, you can see the GUI repaint sometimes. Clicking on the interface causes frequent pauses that take close to 1 second to respond.


Opposite experience for me. 2005 and 2008 were incredibly slow, painful, and prone to locking up or flat out crashing. I don't think I've had one lock up or crash since I switched over to 2010 about 4 or 5 months ago. Also, I can have multiple instances of it open now without my whole computer gasping for RAM. In fact, when I launch a second instance it comes up in a split second, making me feel like the core parts are sharing common resources.


I have to agree with this. VS 2010 is by far the best so far on many different levels as you've already pointed out.


VS 2010 is extremely fast for me, running on essentially the same hardware. Sounds like you've got something else going on there.


Out of curiosity, what are you getting out of Eclipse that you'd like to see in Monodevelop?


I think one of the biggest issues people are facing with MonoDevelop is stability (we get a lot of feedback from users that they get a lot of crashes).

There's definitely a lot of work/polish that needs to go into MonoDevelop and it's something Xamarin knows about and is working hard to fix.


Stability no question, including plugins.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: