This seems to be directed at the gaggle of ideological extremists that have hounded and insulted de Icaza for years because he dared suggest that Microsoft had a pretty good idea with .NET and C#. Sadly though, it's precisely those people who will pay the least attention to this.
Perhaps, but it doesn't address my two big issues:
1) I fully accept that .NET/C#/most especially the CLR are great ideas. Which I care not a whit about because Microsoft's ownership of them makes them things I cannot trust. For me the technical line of demarcation was in fact the orphaning of VB6, see Joel for more on this. Legally, at about the same time, see #2:
2) When he says "For open source to win, we do not need Microsoft, Apple or proprietary software to lose." he's leaving open a terrible logical hole, since it is not at all clear that the reverse is true.
Maybe Microsoft can't win without open source losing. Microsoft's war to the knife against Linux, by proxy (e.g. SCO) and otherwise, argues that it doesn't see the world in the way de Icaza implies.
Java/the JVM wasn't even Gosling's first bytecode system (that was as far as I know his MockLisp for his 32 bit Unix EMACS).
Come to think of it, a Common Language Runtime wasn't a particularly common idea at the time. There have to have been some ... there were some common bytecode engines, but not common libraries as I recall ... so maybe it's somewhat more original than you and I automatically assume.
My own take on C#/.NET, and I bet a lot of others had this take as well, came down to 2 elements:
1. when it appeared, it looked a lot like somebody within Microsoft said to some other guys, "Hey, go make us a Java. Like Java, but our baby." And they basically approached it by cloning it and then making several superficial tweaks and changes -- JUST enough, especially at a superficial level, so they could say with a straight face to people who were none to observant that this indeed was the product of internal R&D -- true innovation -- rather than being what it actually was. In short, it looked awfully like a student who turned in a paper which was a pretty blatant copy of another student's paper, except with some superficial textual changes made to make it look different and original. I know that both languages have drifted and evolved since C#'s debut, but I remember looking at programs written in the current dialects of Java and C# at C#'s debut and it was hilarious just how much it looked like the C# version was just a functional/semantic clone of Java, only with arbitrary syntax differences (keywords, case, etc.) Life is complex and they've both evolved since then, but there's no doubt in mind that C# started life with a "clone Java, change it's name/keywords" design strategy.
2. Microsoft's whole business model appears, to me anyway, and to other folks, as being basically about just copying what other folks are doing, putting their logo on it, offering it up for sale, and then once people are using it, to design features and systems in such a way as to create lock-in. Lure them in, then close the door. Or least, slowly start closing that door, so slowly and with enough distraction that the unwitting victim is not smart enough or quick enough to see it.
Regarding your #1 element: When I was coding w/ .Net PDC (e.g. pre- 1st beta) I would use the java reference docs to get some idea as to what to do because MS didn't have any real documentation for .Net at that time.
Regarding your #2 element: A perfect example of this is their attempt to take Adobe on with Silverlight (e.g. vs Flash), and also with XPS (e.g. vs PDF/Acrobat).
I'd be curious as to what you (or anyone else) see WPF as copying from as an example for that does not readily come to mind.
2. I like how even the name Silverlight pretty much tells you it's their Flash knock-off: silver + light = bright light or lightning = flash. It's like they're thumbing their nose and saying "neener-neener!" to Adobe.
Quick Wikipedia read on WPF made me think of similarities to Flash and Apple stacks. But there can be non-malevolent explanations for this, and I don't know a lot about WPF (since I now try to keep my brain non-Microsoft, for efficiency's sake), so take with grain of salt.
Obviously, C# and a good part of the the .NET libraries are Microsoft's attempt to do a better Java, with Anders Hejlsberg leading the effort AND trying to fix some Java mistakes while he and his team were at it.
As far as I'm concerned that's just fine, competition is a good thing. Also note that this happened shortly before progress in the Java language became glacial and sometimes dysfunctional.
(Also note that Java was hardly original when it came out; being able to do that in a useful way has become exceedingly difficult now that we're in the 5th decade of high level language design. If you disagree, please point out say half a dozen things in Java that had never been seen before in the lab or industry.)
However note my comment "most especially the CLR [is a great idea]". This is where Microsoft can in theory win on the technology side of things. E.g. F#, their dialect of OCaml. Indeed it's "just copying what other folks are doing", but it is the first functional language with major vendor support, right?
You can do functional programming on the JVM with e.g. Scala and Clojure, but the JVM runtime is not exactly going to go out of its way to help you (that's actually scheduled for the upcoming new version of the JVM).
My bottom line is that focusing on C# rather misses the point when Microsoft from the very beginning made such an effort at a multi-language system.
Your points about vendor lock-in are of course well taken, although I'd say Microsoft's abandonment of backwards compatibility with VB6 -> VB.NET is a lot worse. There's a difference between the old "IBM will take care of you" and Microsoft's untrustworthiness if you play the game by their rules.
The issue isn't the technical merits of C#. It's the degree to which a Microsoft technology can be trusted as the foundation of the free software desktop. As Miguel himself has recently grudgingly admitted, Microsoft's own ambiguous stance on this issue has limited the uptake of Mono.
It's one thing to suggest peaceful coexistence with Microsoft and quite another to suggest getting into bed with them. I for one am glad that nothing essential in my Gnome desktop requires Mono.
Interesting how that was never a problem with Java. For years the only outcry against it came from Stallman babbling on about how it was a "trap". It wasn't even an ECMA standard like C#. Yet it was no more free of patent threats or corporate greed as Mono is today. In fact a recent article by Sun's ex-CEO casually mentioned how Sun was ready to enforce "Java patents" on Microsoft, and I didn't see anyone from the Apache foundation get on the horn with Oracle to ask just what those are.
Realistically, all software is under patent threat from IBM, Microsoft, Apple, Google and a thousand other small and large patent trolls. But it's fascinating that it's only Mono and de Icaza that are constantly under attack. And note I have no problem with raising and discussing the issues that surround it - the problem is the vicious personal attacks he has had to endure for releasing something that is, amusingly enough, 100% free software.
Patent FUD is just that, I don't care if it comes from Microsoft or in reverse from the FSF scaremongering enforcers. No, I think the problem with Mono is that it's an implementation of a Microsoft technology, and that just rubs a lot of people the wrong way. The patent thing is just a convenient excuse. Go ahead and fire up Inkscape, GIMP, Firefox, or compile hello world with GCC and then assure me that you didn't just violate a whole bunch of patents held by other corporations.
And by the way, C# is about as likely to become the foundation of anything as is Java or Visual Basic for that matter. Unless someone comes up with en enormous breakthrough in speed and memory consumption for VMs, major desktop applications and components will continue to be written in C or C++. A music player and a note taking application don't signal the Mono takeover of GNOME or whatever, that's just another excuse for the "that's a nice free OS you got there, it would be a shame if something happened to it" party line that has been used against Mono. In the meantime though, anyone who does write a note taking app in C# because it takes 1/3 of the time to do so than it does with C++ is hounded to death because he's "destroying" the free software desktop.
Nobody ever suggested that the Gnome desktop should be built on Java. Miguel was a very vocal advocate of C# as a solution to the language interop problems the early Gnome tech suffered from. The rest of your argument is an unpersuasive slippery slope argument. The software patent system is broken and you can never really be safe but there's still a difference between building something that might use some of the same methods as other patented software and implementing a full-stack clone of a core MS technology that they've alternately promoted and protected.
A big part of the reason that Mono hasn't made further inroads in the Gnome desktop beyond some disposable userland apps is because the rest of the free software movement sees it as the trojan horse it is, despite Miguel's urging over the years to make it the base of Gnome.
The argument du jour is that every software patent is dangerous and useless, and every patent holder a potential troll. Surely it cannot be "safer" to infringe on Oracle's patents than on Microsoft's, yet at least Microsoft has gone to the trouble of specifying what exactly is exempt from patent claims and what isn't with that Community Promise of theirs - which by the way is legally binding under estoppel. I don't remember ever seeing anything like that from Oracle, Sun or IBM vis-a-vis Java, and it was interesting that Java was released under the GPLv2 and not v3, which would actually eliminate the threat of a patent claim on it.
/This/ argument that Java and PostgreSQL and MQ implementations (check out the patents in that niche) and everything else is "more safe" than Mono is unpersuasive at best to me - in fact I'd buy it only in the case of Samba, which does have an official get out of jail free card from Microsoft.
You may be unpersuaded, but, as Miguel acknowledged in a recent article linked here, most OSS developers have (wisely, IMO) kept their distance and relegated Mono to a sideshow. While MS was constantly making veiled threats about patent issues with free software in general and Linux in particular Sun and Oracle were making important contributions and treating Linux as a first-class deployment platform. Maybe you can't see a difference here but it couldn't be plainer to many of us.
It's interesting how "idealist" sounds like a good thing and yet "ideological extremist" sounds like a bad thing. And yet, they are both probably the same thing. :)
The abolishing of slavery was led by ideological extremists.
Voting rights for women and blacks were led by ideological extremists. Child labor laws, environmental protection, social security, health reform, religious freedom, heck, arguably the founding of our country, etc. were all disproportionately brought about due to ideological extremists.
I think having ideals and principles is a good thing. People who are anti-Microsoft "extremists" tend to be that way because they have ideals and principles, and they think they see Microsoft as having a certain track record against those ideals and principles, and therefore that's bad.
There may or may not be good ideas in C# and .NET. But if we can have those good elements without having Microsoft, I bet that's what those folks would like. I'm definitely one of those folks. I had no issue writing software in Java in part because I had no expectation of Sun trying to say lock me into Solaris or a suite of Sun products -- something which Microsoft had a track record of doing in the past. Whether they would still do that with C#/.NET I could not know for sure at the time, but it was the smart bet to make.
Subtley different than Torvalds (pragmatism) vs. Stallman (idealism) in that I think the main point is about how people react to others' with different opinions. Should I hate a friend because he disagrees with my ideals? Certainly not. Yet people act as though anyone with a differing opinion is their enemy.
"I never considered a difference of opinion in politics, in religion, in philosophy, as cause for withdrawing from a friend. " - Thomas Jefferson
Unfortunately, the Us vs. THEM mentality seems to be propagating more and more these days. "Divide and Conquer" isn't just a military strategy. It's a highly successful way
for keeping a population from moving forward in many ways. I live in the DC metro area and have seen a "Democrats need not apply" sign up in a store front. I think it was meant to be humorous, but it's still fairly screwed up.
"Disliking or hating something conditions you to (1) ignore virtues in the disliked, (2) dislike people, products, and actions associated with the disliked, and (3) distort other facts to facilitate hatred.
Startups should focus on their customers, not their competition—whom they may dislike."
-This is #3 on VentureHacks cheat sheet of point from "The Psychology of Entrepreneurial Misjudgment"
Unless Jefferson wrote that after the denouncement of the French Revolution and the appreciation of how it changed the game, I can't consider it to be useful advice today.
E.g. to update a bit (to Marxism or Marxist/Leninism), Jefferson's potential and actual friends didn't include ones who considered him to be a class enemy with all that that implies.
Things like a sign that says "Democrats need not apply" are merely an indication of the continuation of this eliminationist civil war in Western society (well, more likely who it has been heating up in the last year and a quarter; I never saw such in the 1991-2004 period when I lived there).
Anyway, I "dislike" people who want to put me and mine into concentration camps, plus or minus (i.e. less and more severe examples of the same thing). There are no virtues in such people that can cause me to "like" them.
The right spirit... for him. I do not share his view. I agree that it is not a "zero-sum game", however, Microsoft identifies Open Source as the "enemy" (add your favourite Ballmer's quote here).
I respect Miguel's opinion, but I will not follow his C#/Mono "vision", as I prefer vanilla C, or in case of needing higher abstraction, use Lisp, Perl, Python, or Bash.
Yes, but so many people are focused on being a better MS (say, in the desktop software space) they're forgetting the larger game (that desktop software is shrinking itself, meanwhile lacking an installable current-release version its default web browser).
Microsoft, Ballmer in fact, also sees iPods, iPhones, Google, Amazon AWS, IBM, Nintendo and Sony as enemies, and not only open source.
If there are some people in the community that wants to see Linux as a platform that fits everything (mobile, server, embedded appliances, etc) what is wrong if a MS executive dreams of the same happening with his company's products?
And by the way, bash sucks... zsh forever. Just kidding in this line.
<i>For open source to win, we do not need Microsoft, Apple or proprietary software to lose.</i>
Hrm. Actually we need Microsoft to lose. A lot of things. We need them to lose the embrace, extend, extinguish attitude. We need them to lose the criminal abuse of monopoly tendencies. And we need them to lose the creepy unspecified claims of Linux infringing their software patents.
Alternatively if we dont actually believe Microsoft, the coorporation, will change behavior - then we need them to lose the dominant position that they abuse to hurt competitors and Free Software.
There's a difference between accepting MS software being ported to Mac or Linux such as Office or... I think that's it and what he wants. But Miguel wants big parts of the linux desktop to be built on .Net and C# some parts of which are patented. Why take that risk when we already have gtk/C etc and Qt? Even Steve Jobs wouldn't drop Cocoa and build the whole OSX on top of C#, and he'd be right not to do so.
Seems like he's trying to rationalize the position that he has had for the last 10+ years. One can imagine that those M$ contracts are brutal, I hope the cash was worth it for his sake.
God, what an ignorant statement. This is the kind of reasoning I would expect on Reddit but not Hacker News. Agree or disagree, but please base your argument on the article and not just some ad hominem attack on the person.
Note: This also applies to anyone who uses the term "M$".
When someone fronts their own PRIVATE struggles(by attempting to rationalize the way that they earn a living) as PUBLIC philosophy regarding open-source then counter observations will be made. Nothing unusual really.
Once you graduate from your insulated world in academia and spend some time in industry you will realize just how "ignorant" the previous comment is. Profit determines many decisions. The quicker you learn this the better. Or just stay in Academia forever.
On the off chance that you're serious and not just intentionally trolling...
I think you forget that he is employed by Novell, rather than Microsoft.
This article is consistent with statements I've seen in the past, and past actions. It doesn't look like a philosophy made up after the fact to rationalize actions, it looks like an existing philosophy that drove those actions. Do you have any actual, um, evidence that this is a rationalization rather than an explanation of a long-standing viewpoint?
Note that the quote comes from Steve Jobs, was he also trying to rationalize how he made a living?
I feel about the same way as is expressed in the article despite it having no financial impact on me and not being relevant to any projects I have (ie, there's nothing for me to rationalize about).