De Icaza Says Microsoft Has Shot .NET Ecosystem In Foot
425
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."
Here's the original cached version (Score:1, Informative)
http://74.125.153.132/search?q=cache:O6bmbLpdB1gJ:www.sdtimes.com/DOES_WINDOWS_COST_MICROSOFT_OPPORTUNITIES_/By_David_Worthington/About_NET_and_WINDOWS/34203+http://www.sdtimes.com/link/34203&cd=1&hl=en&ct=clnk [74.125.153.132]
The original SD Times article. (Score:5, Informative)
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 [microsoft.com], 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
Re:Pwahahahaha (Score:2, Informative)
I wouldn't say that Mono sucks. It's certainly behind .NET, but it's not the average crappy FOSS clone.
Re:Pwahahahaha (Score:3, Informative)
Not quite. Cross platform to MS means Windows and Wince. The point of .NET was never to hide the OS, it was to allow you to write Windows applications that were architecture-neutral, so you can run them on a desktop x86 CPU or a mobile ARM/MIPS/PowerPC CPU. All of these architectures were supported by Microsoft when .NET was introduced, but Wince had the big problem that it didn't run desktop Windows apps, which eliminated a big chunk of the reason for running a version of Windows at all.
Wince 7 now only allows you to run .NET apps, which means that Wince 7 can run the same apps on any architecture, and means that if you write a .NET app that runs on Wince 7 it will also run on desktop Windows. Conversely, if you write your desktop Windows app using .NET then you can easily port it to mobile Windows machines just by tweaking the UI a bit to work on smaller screens.
Mono is not an integral part of GNOME (Score:2, Informative)
You can easily remove mono with 'sudo apt-get remove --purge mono-common'
Re:OSP? (Score:3, Informative)
Re:The original SD Times article. (Score:3, Informative)
Microsoft has made an open-source CLI implementation codenamed "Rotor" freely available, but it has had little or no uptake, Neward noted.
Rotor isn't open source, though. It's "shared source", meaning that you can look at the code, but you can't hack on it and redistribute the result. It's more of a reference implementation for study.
It's not full-featured, either. It doesn't have the complete set of .NET class libraries, for example; only the basic stuff (what was in Ecma CLI spec, I believe).
Oh, and it's Windows-only (the first release, which corresponded to .NET 1.1 IIRC, was for Windows and FreeBSD).
Re:C# and F# (Score:1, Informative)
For a Python/Ruby style scripting language there's Groovy.
Or Jython or JRuby, which are about as "Python/Ruby style" as you can get.
Re:O rly. (Score:4, Informative)
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.
Mono runtime (both JIT and GC) sucks, to be honest - compared to both Sun JVM, and MS .NET VM. Any .NET vs Java performance comparison that uses Mono is thus flawed from the get go.
It's faster than Python, though, I'll grant them that...
Re:O rly. (Score:3, Informative)
Really, why would anyone bother listening to what this de Icaza guy has to say, when he spouts off nonsense like this?
Re:Pwahahahaha (Score:5, Informative)
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.
Re:C# and F# (Score:3, Informative)
You can use Python or Ruby themselves with Jython [jython.org] or JRuby [jruby.org], respectively.
Re:O rly. (Score:2, Informative)
De Icaza is claiming sites like Wikipedia "could have been built" using .NET, not that they were. In other words, he's claiming the .NET platform is capable of performing as well as the platforms on which those sites actually were implemented.
He then goes on to say that because those sites were not implemented in .NET, they were "failed opportunities", implying that if Microsoft were not so aggressive or paranoid, they would have more .NET success stories to point to.
Re:Microsoft needs to get a grip (Score:1, Informative)
In my section of the U.S. Department of Agriculture, all applications are being developed in Java. My own area is supporting a single .NET app for internal consumption and we get the occasional complaints that from our program office that we should switch the app to Java.
Re:Wah wah wah (Score:2, Informative)
I mean sure he's slow on the uptake. Sure it was pretty silly to dismiss the quite plain threat of Microsoft's patents with "Oh but they won't do that!"
Is that what he did? I remember long, in-depth justifications from him and others. Endless debates on slashdot with Miguel personally arguing in dozens of threads.
And we're allowed to roll our eyes and say "No shit, Sherlock! Welcome to five years ago!"
He deserves greater censure then that. He got his mono in my free desktop.
Re:Not very persuasive... (Score:3, Informative)
Again, you need to compare C# + VB.NET to get a meaningful comparison of .NET vs Java.
And if you want to count Groovy and Scala, sure - but then let's also count Boo and F#.
Oh, and the link is from 2006. Here [odinjobs.com] is a newer comparison, from 2009 (though they don't give the methodology they used to determine what ".NET" is). Still shows Java roughly 1.5x ahead in terms of job count, which isn't surprising, considering the head start.
Salary distribution is more interesting. It shows that .NET salary distribution is skewed more towards lower pay, while Java spikes at a higher rate. This also produces an average salary disparsity. Overall, I'd take it to mean what I wrote previously - that .NET has more people in it who are new to this whole programming thing, while Java has more senior devs that specialize in the platform.
Here [indeed.com] is a job trend graph for a typical job search web site. Notice how both C# and VB on themselves, and even combined, are way below Java, but .NET is above. Just goes to show how many job postings specify ".NET" without detailing the language...
An unrelated, but also interesting trend is that of technical book sales - have a look [cnet.com], and notice how rapidly Java in particular is falling.
Then also there are studies like this one [reuters.com] - but I'm not sure what to look at there, since they don't give neither their sources nor methodology, so the numbers could all just as well be conjured from thin air.
Re:C# and F# (Score:3, Informative)
foo.fraction = bar.num / bar.den;
than it is to read:
foo.setFraction(bar.getNum() / bar.getDen());
Contrived example, but an idiom that allows all assignment to be done via the equals operator makes for much more readable code. In Java, you can only do the more readable version by exposing the variables directly; in C#, you get all the implementation hiding of getters and setters with all the ease of use of a variable.
Re:O rly. (Score:3, Informative)
No. Nobody has to do anything here. He was indicating that he found that statement hilarious, and there is nothing wrong with that. If you want more in-depth analysis feel free to read any of the other dozens of posts here.
I provided some context (Score:5, Informative)
I provided some context to the SD times article on my blog today:
http://tirania.org/blog/archive/2010/Mar-25.html [tirania.org]
Miguel.
Re:So, Miguel (Score:5, Informative)
Rather, submit patches to replace System.Data with Sqlite-net and you have protection from Microsoft patents on .NET
Re:You need to engage with the frameworks (Score:3, Informative)
Much of userspace is hidden behind the scenes and often not related to the desktop directly.
Re:C# and F# (Score:3, Informative)
I don't understand what you mean by Microsoft Tax? I can develop in C# without giving any money to MS (well, I spose I need a copy of Windows
looks like you answered your own question.
Re:So, Miguel (Score:3, Informative)
I could see there may be some problems...
The following packaegs will be REMOVED:
f-spot libart2.0-cil libflickrnet2.2-cil libgconf2.0-cil libglade2.0-cil
libglib2.0-cil libgmime2.2a-cil libgnome-keyring1.0-cil libgnome-vfs2.0-cil
libgnome2.24-cil libgnomepanel2.24-cil libgtk2.0-cil
libmono-addins-gui0.2-cil libndesk-dbus-glib1.0-cil
libndesk-dbus1.0-cil tomboy
Re:Java's radical change (Score:3, Informative)
Android isn't using JVM, it's using Dalvik which is a VM written from scratch that's entirely different from the JVM (it doesn't even use the same bytecode).
The link between Java, the JVM and Dalvik is a bytecode converter, capable of converting already compiled Jars to Dalvik.
And not to burst your bubble further, but Android isn't even using an X Server, the gui manager / toolkit being also written from scratch ... so you can't really rant about how they've used a "free OS" ... it was only the Linux kernel ;)
On the whole, Android isn't even licensed under the GPL, but APL.
So the next time you rag about the virtues of GPL stuff you get for free, take a deep breath and get your facts straight because you're just waisting bandwidth otherwise.
Also, what Miguel does is Miguel's business. He saw some value and wanted that on top of Linux. Maybe he was wrong, but before you criticizes him you first have earn that right ... you see, I don't really think you or any of the freetards in this thread have any meaningful contribution to open-source software.