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."
Re:He was a retard (Score:2, Interesting)
Well, it looks like he now understands why people had reservations about the Mono project in the first place, and why it wasn't embraced with open arms by the community. Considering that he seems to be quite smart it may feel like a surprise that the learning experience took this long, but frankly I'm just happy that he seems to have learned the lesson. Hopefully this means he will put his considerable skills to better use now that he is starting to see the problems with his original approach.
O rly. (Score:5, Interesting)
"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.)
Re:Finally (Score:1, Interesting)
The worst of it was that they defuncted Suse's push for patent reform. Microsoft, Novell, Suse, Linux or Skype, software patents are a nightmare for software development and we need creative solutions to fix the problem.
Re:Pwahahahaha (Score:2, Interesting)
Mono is a cheap imitation of .NET, which is a cheap imitation of Java. This is why Java rules on the server.
C# and F# (Score:4, Interesting)
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).
Re:Finally (Score:5, Interesting)
Comment removed (Score:4, Interesting)
Re:Pwahahahaha (Score:3, Interesting)
Silverlight which is also supported by Microsoft on Apple's Mac OS X
And which caused my browser to crash regularly whenever it was invoked. YMMV but for me, it was almost as bad as Adobe's Mac implementation of Flash.
Re:Microsoft needs to get a grip (Score:3, Interesting)
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.
There were always alternatives to MS developer tools, going back over a decade. On DOS, Turbo Pascal was awesome. On early Windows versions, Delphi ate everyone's launch (VB was originally released by and large in response to Delphi). On the web, PHP and Java have been around before ASP, much less ASP.NET, got there.
That never stopped Microsoft from making a profit on selling developer tools, and from people buying them. There are various reasons for that, but one of them is that what we offer today is a single bundle that does it all well, and is easy to use. You obtain a Visual Studio DVD (or download the Express version), install from it, and you get a complete set of tools covering every aspect of development (including testing web server and database), all integrated together out of the box in a single IDE, and with a single cross-referenced documentation library.
Well, that, and then there are features that competitors just don't have, at least in some areas. For example, last I checked, Java had neither first-class functions (lambdas) nor anything analogous to LINQ (sequence comprehensions). WPF/XAML beats Swing on both power and ease of making good layouts any day. And so on. Though I'll grant you that it goes both ways, and Visual Studio editor is no match for e.g. Eclipse when it comes to the sheer number of refactoring operations available; or that there's no MS ORM offering that is as full-featured as Hibernate.
By the way, it's interesting that you've mentioned jQuery. Do you know that Microsoft is one of the biggest jQuery sponsors today, and that the framework will ship in Visual Studio 2010 (already shipped in betas), with full transparent integration out of the box - e.g. JS code completion & debugging? In fact, if you create a new ASP.NET project from default template in VS2010, it'll have jQuery in it by default.
Re:That took guts to admit, Miguel (Score:4, Interesting)
Re:Pwahahahaha (Score:3, Interesting)
Uhm ... no. .NET is supposed to make it easier for idiots to write code by abstracting a lot of the hard parts from them. Sadly, like every other time someone has tried this it turns out that its actually more difficult to do anything beyond extremely simplistic because learning how to deal with GC issues is actually far more complex than just fucking freeing memory on your own.
The hardware independance is a side effect of compiling to an intermediate language. VB has essentially had this 'feature' its entire product life, and its always been thought of as a downside, not an advantage. The only people who think of the .NET IL system as an advantage are basically VB programmers who don't really understand what the framework and runtime are doing.
If you'd like to discuss why .NET is still limited to Windows its a far far simplier reason than anything you've posted.
The reason is simply: Mono fucking sucks. I tried porting a ASP.NET app to Mono ... oh .. the GC is a pile of crap and results in ever growing memory usage since it doesn't relocate in long running apps ... i.e. you gotta restart often otherwise it'll fragment its memory into oblivion unless I ... worry about memory management (might as well go back to using C). But ... I can publish to IIS via front page extensions in MonoDevelop ... cause thats fucking useful to anyone other than some idiot learning how to use MonoDevelop and publishing to a local test server. Just recently I was starting a new desktop app for a personal project, so Lets try Mono so I can be lazy and turn out this app quickly ... Look ... serial ports support is broken on OSX ... they've had a patch that fixes the problem for over 3 years now ... no one has bothered to commit it ... it changes like 5 lines to use mono_poll instead of trying to call poll directly to deal with OS abstraction for poll ... Once again, I just reboot into Windows and work on it there. I presume serial ports work on Linux but thats pointless to me since I actually want to run my app a machine I might come across at someones house. My friends don't use Linux so ...
The MS implementation isn't bad. Mono is an asstastic pile of shit that is more concerned with filling in buzzword checkboxes than actually doing something useful.
Mono's idea of feature complete framework support is that they added stubs that throw NotImplemented exceptions. Mono needs to be managed by developers who care about making it work right, not developers and managers who are more concerned with filling in buzzwords so they can attract the crowd of 'developers' that follow buzzwords.
Mono isn't popular because its leadership and current output suck ass, thats all.
Re:Not very persuasive... (Score:3, Interesting)
No one gives a shit that uses .NET.
No one does anything of importance and cares about Mono. Unless your app was written to deal with the inadequacies of Mono its unlikely that any non-trivial app will work in Mono. There is no concern by anyone with a non-trivial app about what Mono licensing issues might mean because Mono is incapable of running any app that matters.
Rant, whine, moan, talk out your ass, lie, cheat and steal to make it sound like MS is the reason Mono isn't taking off ... won't make it so ... won't change the fact that Mono isn't even second best, its not even in the running, it didn't start the race.
Yes, this is a rant, I want Mono to be useful so I can use it, but licensing has never been the issue, its gotta actually work before the licensing issues are anything I could give a shit about.
Perhaps making the product actually work would get the project further than coming up with some political bullshit reasons for its utter and complete failure to provide any value.
Hey Miguel (Score:2, Interesting)
Re:Finally (Score:1, Interesting)
When Stallman said the same thing, de Icaza called him a fanatic. Well, most voices on /. called him the same thing. He was right then like he was right with his movement from the start. You can't have half-measures.
Stallman is brilliant, but I think he was wrong in this instance, and de Icaza was originally right, but is now wrong.
.NET has taken over Windows development, and it's by no mean slowing down or stagnant. Windows development dominates. Microsoft hurting development of .Net for non-windows platform isn't shooting itself in the foot, it's by design, in order to keep windows applications working in windows only, so people don't decide to switch.
Re:Wah wah wah (Score:4, Interesting)
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.
Yeah, I personally argued with him, and yes, I think that's an accurate characterization of his response to the patent issues. He couldn't deny that patent issues existed, so instead he simply claimed that they would not be a problem. After all, Microsoft had promised. So we were just being paranoid.
Re:Wah wah wah (Score:5, Interesting)
You are mixing two different things.
Microsoft claims that they have patents had a chilling effect on Mono adoption.
That does not mean that I do not stand 100% by our position in the Mono project regarding patents. To begin with, we think it is a bullshit argument, since everything you use is infringing on someone else's patents (Microsoft included).
Microsoft like any other corporation will do a cost/benefit analysis of suing someone over patents. So far the kernel has been a juicier target than Mono has.
Re:Pwahahahaha (Score:3, Interesting)
Java apps usually use some OS specific stuff as well. Virtually every mainstream Java program uses an OS specific installer for instance. And if you're distributing a different installer for every platform, you may as well compile it for every platform.
As for C based desktop apps with cross-platform capabilities, might I point you in the direction of a little thing called Firefox [getfirefox.com]? Yeah, it needs certain libraries coded differently for different platforms, but as noted, so does Java.
Re:Pwahahahaha (Score:3, Interesting)
I know I know don't feed the trolls, especially the slow ones....
You're not making any sense. This is nonsensical. Assign a string to a List? Huh?
Yes, it's quite possible, through reflection. What's worse though in C# is that the incorrect object can then be passed all over the place as the "type" that it's not until you try to use it. How did you sum this up? Oh yeah: "Huh?".
Delegates? Please, just fancy syntactic sugar for the adapter pattern.
Right, the same way a "Class" is just fancy syntactic sugar for a pointer to a structure amirite? Shit, C does everything we need then, I guess. Ridiculous.
delegate->adapter/proxy method is like waffle -> sugar cone.
Class-> pointer is like House -> stick.
But I'm sure those are just minor differences to a stellar intellect as yourself.
I'm getting the sneaking suspicion that you don't know what you're talking about, and that in addition you're defining anything not in Java as not being useful or good, which is a bit circular.
Well at least you have a suspicion of something.Too bad its misplaced.
Just because something might look good at first glance as making all those "hard things" go away by just using some pseudo code is really just a short cut that experience has shown will bite you in the ass later sooner or later.
I'm also solidly against hibernate, spring, and several other frameworks that purport to do similar things - removing all those "hard things' so I won't have to worry about them. They all suck royally, as you'll find out in phase 2 or 3 of the evolution of your product when gee, it just doesn't do this one little thing... and then it doesn't do that one little thing, rapidly snowballing into a bigger effort than the original work would have been.
Yep. Since Java's getting them, closures are OK, huh? Sweet logic.
I'm undecided actually, and don't know that depending on which of the three flavors they choose that it's going to make all that much difference other than stating "Java has closures" much in the same way many feel about generics. (And yes, generics suck too in some cases. Mostly they're helpful. And after my run ins with C#'s lack of runtime type checking, I'm willing to bet the same deficiencies with generics exist for them too)
Their collection classes are fine. Oh, and they have generic runtime collections. Does Java? Oh, it doesn't? As for the string index, that's truly idiotic. Going from index 1 to index two is (2-1), if you call subtracting two numbers in your head a computation I think you make have larger issues.
C# collection classes blow. I have to check before adding (and remove if found) or getting a value or it throws an exception? You're kidding, right?
As per the earlier statement - there are no runtime checks in C#. So it doesn't really matter whether they are runtime or not. And yes, if you want, you can create runtime generics or any code at runtime if you'd like, or even alter existing classes. (Not generally recommended, but it can be done)
So, care to show any other areas you're a little thin on? I can't wait to see a scintillating "Duh" or the like.