De Icaza Says Microsoft Has Shot .NET Ecosystem In Foot
An anonymous reader writes "Microsoft has shot the .NET ecosystem in the foot because of the constant threat of patent infringement that it has cast on the system, Novell vice-president and Microsoft MVP Miguel de Icaza is quoted as telling the website Software Development Times recently."
Microsoft has shot the .NET ecosystem in the foot
A head shot would have been clearer. We all know .NET limps already.
Or is this just the usual Microsoft wobbling instead of making an actual decision?
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
It took how many years for Miguel de Icaza to realize this? Most of us could have told him that with seconds.
There is hope for him yet!
I am Slashdot. Are you Slashdot as well?
That's a little rich for De Icaza to be coming out and saying this now. He's spent years shouting down anyone that warned him about the patent scenario with Microsoft's technologies and yet he continued to proselytise. He's worked away on Mono and Silverlight and made sure to get them included wherever he could.
So is he allowed to be surprised or angry now?
I never get used to these constant resurrections
for assuming (and advocating to others) that Microsoft won't threaten Linux.
The largest prime factor of my UID is 263267.
Dude... (chicks don't react like that) .NET is supposed to be cross hard- and software.
It was introduced to abstract the OS so that if Microsoft were to also release Windows for PowerPC's or whatever architecture, .NET apps would still run,
Later on Microsoft announced the interoperability (this is my time to "Pffffffwahahahahaha") and they killed it with patent infringements.
So now, yes, Microsoft has shot the .NET ecosystem in the foot, which is differently from shooting it in the head.
What I am saying is yes; .NET is still very strong and succesful, but limited to Windows pretty much. Good for Microsoft and Windows, bad for the ecosystem itself that had spread to other OS platforms with Mono (which is chasing taillights and thus sucks).
Here be signatures
Taken from Google Cache: http://74.125.93.132/search?q=cache:LPFDjfqGMRMJ:www.sdtimes.com/link/34203+Does+Windows+cost+Microsoft+opportunities&cd=1&hl=en&ct=clnk&gl=us
Does Windows cost Microsoft opportunities?
By David Worthington
March 17, 2010 — .NET Framework has won new users to the platform, and drawn its share of criticism from those who think Microsoft’s stewardship has often been off-target.
The evolution of the
Among the critics is Novell vice president Miguel de Icaza, who said .NET's focus on Windows has come at the expense of opportunities for Microsoft, and its desire to guard its intellectual property is an impediment on the platform.
"Microsoft has shot the .NET ecosystem in the foot because of the constant threat of patent infringement that they have cast on the ecosystem," he said. "Unlike the Java world that is blossoming with dozens of vibrant Java Virtual Machine implementations, the .NET world has suffered by this meme spread by [Microsoft CEO Steve Ballmer] that they would come after people that do not license patents from them."
In practice, the Java community only uses two or three JVMs (IBM's, JRockit, and OpenJDK from Sun), while others are research efforts or smaller-scale open-source projects, said author and consultant Ted Neward. "Virtual machines are not something the open-source community seems to want to experiment with."
Microsoft submitted the Common Language Infrastructure (CLI) specification to ECMA International, which ratified it in 2001. Microsoft built technologies on top of the specification as .NET evolved.
Microsoft has made an open-source CLI implementation codenamed "Rotor" freely available, but it has had little or no uptake, Neward noted.
However, Mono remains the only implementer of the ECMA CLI specification outside of Microsoft, and that is a testament to the legal uncertainty surrounding some aspects of .NET due to Microsoft's statements about open-source software, de Icaza said.
"[Microsoft] would still be the No. 1 stack, but it would have encouraged an ecosystem that would have innovated extensively around their platform," he added.
Facebook, Google, Ruby on Rails and Wikipedia could have been built using .NET, de Icaza claimed. "All of those are failed opportunities. Even if the cross-language story was great, the Web integration fantastic, the architecture was the right one to fit whatever flavor of a platform you wanted, people flocked elsewhere."
"To say that Google could have used .NET is to undervalue both Google and .NET. Google creates value from things like distributed MapReduce and a brand-new system-level programming with concurrent coroutines," said Larry O'Brien, an independent analyst and consultant who writes the Windows & .NET column for SD Times. ".NET creates value from a fantastic IDE, great mainstream languages, and well-executed technologies like Silverlight, LINQ and the DLR [Dynamic Language Runtime]."
Despite the criticisms, customers are "making bets on .NET" all the time, said Brandon Watson, director of product management for Microsoft's development platforms. "The fact that we didn't get Google—I'll cry a little, but not a lot. I'm not certain that Google wouldn't have taken a bet on philosophy, wanting to beat us."
Further, developers can build languages on top of .NET 4.0's dynamic language runtime, which supports both Python and Ruby, Watson said. But it's the addition of new technologies on top of the ECMA specification, such as the DLR, that de Icaza believes impedes the CLI's adoption.
Microsoft's submission to ECMA has remained at a "core level," de Icaza claimed. "I
The sky in Miguel de Icaza's world just turned blue!
"I believe in Karma. That means I can do bad things to people all day long and I assume they deserve it." : Dogbert
"He also claimed that Facebook, Google, Ruby on Rails and Wikipedia could have been built using .NET."
Wikipedia? AHAHAHAHAHAHAHA no. Really, no.
(Although the WMF Lucene search implementation was done in C# on Mono for a while, when Java wasn't yet sufficiently free software. It ran at half the speed of the Java version.)
http://rocknerd.co.uk
I'm afraid your commitment to excellence has not synergised with market driven realities of the mission critical holistic buzzwordverse. Buck up your ideas sonny and buy into the knowledge base on a going forward basis or you'll soon suffer negative organic growth in your wetware core vocal services vis-a-vis next generation corporate employment opportunity scenarios!
Microsoft's idea of cross platform is one of their platforms; like Windows 2000, XP, Vist and 7.
If someone is passing you on the right, you are an asshole for driving in the wrong lane.
can we get that diseased crap out of GNOME?
Maybe the biggest lamentation I have is regarding C#. I keep on hearing how it's a wonderful improvement on C++, which is my bread-and-butter language. But I'm just not willing to invest time in a language that requires paying a Microsoft tax one way or another.
Similarly for F# (I have a deep love for functional programming).
Miguel was enamored with a lot of the technology behind ".NET", and thought he could outsmart Microsoft, in a sense. He thought he would be pragmatic and non-religious about the technology and adopt it.
What he never realized, and is maybe now only starting to realize, is that .NET is a *marketing* term. It was brilliantly crafted by Microsoft's marketing people. As smart as their developers are and as cool as Miguel thought their engineering and technology is, their marketing is far and away better and more sophisticated. .NET is a brilliant marketing strategy. Miguel didn't realize that by using the '.NET' term so incessantly, he was basically ensuring that he would be in the position that he's in now.
Sure, there was C# and the CLR. That was probably 10% of ".NET", which was a overarching strategy for the *Windows* ecosystem at the time that involved extending Windows into the Internet as much as possible, including "tieing" it into all sorts of Microsoft-oriented services that were MSN at the time.
Think about it. VisualStudio.NET. What the !@#$ does that mean? It's a branding term. Miguel showed his complete lack of understanding of marketing by using that term so regularly and continuously WRT Mono.
Everyone else has been saying that forever, but to hear it from you.. I'm impressed.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
Put aside the fact that De Icaza is now eating his own words about the patent issue and look at the issue itself. Microsoft simply has not accepted how things have begun to change. Developers rarely need them the way that they used to need them in the business space. Most large enterprise apps can now be entirely built in Java, Ruby, Python, Perl or PHP for the backend and JavaScript with a toolkit like jQuery or ExtJs for the front end. There is not a single need for Microsoft in that whole space.
Microsoft needs to realize that developers have options now and their threats are empty. Most developers would laugh at their attempts to control things now and simply say "have fun with that" as they switch to some pure open source approach or one built around a hybrid of open and closed source from various projects and vendors.
I have to disagree. Mono has grown out of it's cheap-copy-of-.NET state. It tries to keep compatibility with .NET, but it has become a great framework itself.
He already pushed Mono into a lot of parts of Gnome...harm is already done De Icaza, you had to realize before pushing it into one of the most widely used Linux desktop enviroments.
Snakes bite, buddy, that's why we don't play with them.
I don't know why you keep thinking that Microsoft wants some sort of "ecosystem". They want control, but they're always willing to use a useful idiot.
Do you have ESP?
Sun shot Java in the foot a few times.
Microsoft abused its monopoly position to shoot Java at short range.
Go green: turn off your refrigerator.
How is java's cross platform ability a myth? How many java programs that you know of are not cross platform when written correctly? With the not very notable exception of a few non-standard libraries, the occasional difference in performance and developers that hard-code file paths, java works very well on multiple platforms.
The myth about simple cross-platform development in Java is just that, a myth. Anybody with cross-platform Java experience will attest to this. Java, as a language, has grown stagnant, while C# has continued to evolve.
I and our team of 100+ Java developers will disagree with your statement of Java and cross-platform development. We find it excellent. Is it perfect? Nope, but in my opinion it would be a 9 out of 10 with the next closest competitor being.... Well there isn't really any close competitor but I guess we could give the C language a 2 out of 10. Perhaps Ruby is good but I haven't looked at it. Granted I am talking more about the JVM that Java itself. However, Java like other languages has evolved quite a bit in the last few years.
Does Java have the radical changes that say languages like SCALA have? Nope, but then again it shouldn't have that. Is it stagnant? Not at all.
The core difference you see between any of the Microsoft languages and the JVM languages is that the JVM languages somewhat try to work within the community. They also want to maintain binary (class) backward compatibility. Microsoft is an absolute dictator with their language and even to a large part their tools. This does have it's advantages, in that stuff comes out quicker, but then again, if you are a business and built you lifeblood one VB6 to have it brushed aside by Microsoft, you might be a little angry about that ruthless dictator approach. If you are some contractor type of person who wants constant change in the core framework to make your life easier (at the cost of compatibility), then you would probably like this approach.
So in short things like closures will be in Java 7 (not a small task), and Java the language is not at all stagnant. Cross platform development, testing and support is excellent with Java. We use OSX, Ubuntu, Microsoft Windows XP and 7, and RedHat with no problems.
The more I learn about science, the more my faith in God increases.
Miguel was enamored with a lot of the technology behind ".NET", and thought he could outsmart Microsoft, in a sense. He thought he would be pragmatic and non-religious about the technology and adopt it.
I've been saying it for years -- real pragmatism must always include consideration of the practical realities surrounding a tool or technology. Like, who is providing it, what are the terms under which they provide it, could those terms change and how would that affect your use of the tool? Or as you point out, how does the technology you like (C#) fit into the larger strategy being pushed (.NET)?
Many engineers tend to want to ignore those aspects and focus solely on the qualities of the tool itself. They say they just want something that "does the job", and thus fail to consider how those factors affect the tool's ability to do the job. Because, being technically-minded people, they want the technical factors to be the only ones that matter. They call this "pragmatism" and being "non-religious".
Which just goes to show how even people who value pragmatism and rationality more than anyone can still be completely irrational. Ignoring the important external factors because you really wish they weren't important is not rational!
Rationality is simply a useful trick that our mammalian brains have picked up. But at the end of the day we are still emotional animals, and even when expending great effort to force ourselves to think rationally we can't eliminate the effect of our emotions. Much of the time "rationality" is simply a way to justify what we've already decided based on emotion.
Ergo the worst thing a person who values rationality can do is tell themselves that they are completely rational and uninfluenced by emotion. I think there's an important lesson to be learned here, even for those of us who saw this situation coming from a mile away.
The enemies of Democracy are
Paint.NET is far too usable to be compared to Gimp.
Some of the strongest minds in computer science have built out .NET, and continue to do so. There are some practicality gaps, but today the majority of the corporate world is powered by .NET devs, for better or worse.
However, this many years into the platform, it's starting to show it's age. From .NET 1.0 applications, laden with crude pinvokes to Win32 API's, GDI+ silliness, messy ADO.NET integration, through 2.0, 3.5, 4.0, the "Enterprise" helper classes, the "Foundation Extensions", the integration of pseudo-SQL declarative syntax with LINQ, Entity Relation classes, Unity, security, contracts, plus all of the layers of ASP.NET tools .... don't VS's forget code analysis, test suites, code coverage, profiling, generated documentation... there are many more but you get the point... ...all this is shaping up to be a very MS-centric view of the .NET universe. Which is a mistake, De Icaza seems to imply. I wholeheartedly agree. While the computing world abandons PCs for most tasks (gaming, editing information aside) and info consumption is done via smaller devices, on a variety of hardware & OS's, MS has bound .NET to their OS deployments - and there will be many other OS's talking in that space.
This is Microsoft's biggest gamble with .NET: That as the OS lives or dies, so does this platform. Really, it could be bigger than Windows. If MS shipping a full (even licensed) 4.0+ framework for use on Linux & Apple, it would inject a massive growth spurt in both those platforms but a huge and lasting foothold on the MS-based app development.
It is cross platform (not necessarily cross OS). I've written code in C# that can run on my Windows Mobile phone or on my Windows laptop or as a Web Service or in my SQL Server database or in Silverlight or as a Web App or even on an XBox. That portability works well (as long as the libraries are supported -- see Compact Framework for example). It may not work as well on the Mac or Linux (but Mono does work), but porting code between the platforms I mentioned isn't that difficult (mostly just changing your target in Visual Studio; assuming library support existing on the targetted platform).
>> It was introduced to abstract the OS so that if Microsoft were to also release .NET apps would still run,
.NET was created to take developers away from Java and back onto Windows. Read up on some of the court documents to see what really was the deal. MS .NET came about well after the PowerPC systems(CHRP and PREP ) gone. It was all about stopping a cross platform product from becoming popular and therefore making Windows just another OS and therefore a threat to their #1 profit generator.
>> Windows for PowerPC's or whatever architecture,
no way dude. MS
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
Cross platform typically means running on platforms from more than one vendor. You basically said, "I can run my C# code on all these Microsoft platforms."
Java embodys one radical change, and it's not a feature of the language (which was pretty radical itself at the start). No, the radical feature is that it's GPL'd. This change came a little late in the game, but look what it's produced already.
Take Android. You might say 'just another smartphone platform', but think about how it came about. Google didn't develop it. A startup did. And how was it possible for a startup to build an entire internet-capable touchscreen platform? GPL. Because they had a free OS they could use any way they wanted, and a free virtual machine they could use any way they wanted, they were able to get creative and package it all together as an innovative new platform. Google bought it, added polish and apps, and suddenly it's an iPhone and Android world with Microsoft playing catch up.
Microsoft can't do this. They are committed to their proprietary OS, so they are unable to harness any major creative leaps that come from outside the company. Outsiders can't play with the OS to tweak it to their needs, so they have no way to use Windows as a platform for creativity that doesn't fit into the channels that Microsoft provides them. Plus, they know that any really good ideas they develop on the Microsoft platform will likely be copied by Microsoft and never realize their potential (for them, at least).
But the Android folks could start with minimal overhead and produce something great under the radar.
That's the beauty of the GPL and the Linux (and now Java) models based on it. DVR's, netbooks, cheap wireless routers, smartphones, Kindle and 100 tablets to come. The Microsoft ecosystem is not capable of producing these things. So the next time you rag on Java or OpenGL, X-Windows or even OpenOffice - and rhapsodize about C#, .NET, MSOffice, etc., realize that you're missing the point. These tools may not individually be the absolute best in class, but they are all much more than good enough. And they enable the most creative and dynamic ecosystems in IT today. If you care about that, C# vs Java is a no-brainer. You're gonna want Java.
Miguel seems to be just now grasping this. He had hoped that a free version of .NET would be as good as Java. He liked the technology better (not sure how much better), and thought making it free would bring it to the creative class that's really innovating these days. But Microsoft won't let him. Never meant to, never will. Sorry Miguel - I feel your pain.
Posted from my Android phone. Oh, I can change this? There, that's better...
I provided some context to the SD times article on my blog today:
http://tirania.org/blog/archive/2010/Mar-25.html
Miguel.
Unfortunately, even the most studious lack of infringement won't prevent you from getting abusively sued into bankruptcy. It's all about the implied threat, Miguel.
-- B.
This sig does in fact not have the property it claims not to have.