Mono: A cure for Microsoft monotheism
zdnet.co.uk
zdnet.co.uk
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.
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.
.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.
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.
If they ever do that, it'll be because they think Macs and other OSs don't represent a threat to other Microsoft software.
Not all corporate developers are good developers. Managing good developers is hard and managers prefer the more predictable, cheaper, average ones. Sadly.
Several web applications in the company I work for require IE. I have Windows in a VM for that.
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.
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.
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.