In my continuing attempt to listen to pro-mono points and address them, we have a question to consider!
In which zekopeko makes a proposition
In a comment to my Totally Awesome Rocks and Excellent article “Ubuntu Free Speech Zones”, zekopeko makes a very interesting proposition:
MS position certainly is “entrenched” on the market, but as we can see it’s slowly but surely being eaten by FLOSS solutions. And in part thanks to Mono, whether you like it or not.
This is a powerful proposition, and deserves serious consideration.
In which a zealot who is not part of the real community zealously expresses his zeoltry with zeal
BEWARE! Crazy zealot beliefs coming up. This is what I think when I’m not eating babies and trying to destroy Freedom single-handedly:
- Microsoft has a much larger influence than FLOSS on the computing industry.
- Microsoft influence needs to be reduced.
- Microsoft influence is likely to decrease over time, for many reasons.
I know that is some crazy juice negative hateful talk, and I can only hope you are seated for the next part, because I’m really going to let the freak flag fly:
- FLOSS has a much smaller influence than Microsoft on the computing industry.
- FLOSS influence needs to be increased.
- FLOSS influence is likely to increase over time, for many reasons.
I know that is some insane stuff there, and I probably deserve to be roundly condemned for such “faux community” ideals. Why it’s almost if I had …shudder… principles! Here are some logical extensions of my belief:
- I am generally opposed to those things that help Microsoft.
- I am generally supportive of those things that help FLOSS.
- I am generally supportive of those things that hurt Microsoft.
- I am generally opposed to those things that hurt FLOSS.
Well, now that you have seen how irrational I am, I can only hope you will read on.
In which a few facts are established
- .NET is a key Microsoft technology / initiative / mouthwash / salad topping.
- Microsoft discussed standardization before doing it.
- We can know some, but not all, of Microsoft’s motives.
From these facts I think we can derive some logical conclusions:
- Microsoft is aware that .NET is a valuable technology for Microsoft.
- Microsoft did not standardize portions of .NET for no rational reason whatsoever.
Am I going to fast for anyone? You in the back with the gnome cap and the drool, pooping in your hand and flinging it at that poster of Richard Stallman, still with us?
In which some insight is given
Let us look directly at what some people in the Microsoft camp internally thought about the release of .NET to the Unwashed Masses:
Bill Gates (2001):
We have to spend a lot of money to make sure the openness of C# is well understood and that it is accepted at a level that allows our innovations to have traction. [...] The strength of this platform and the innovation around it is the key element in preventing commodization by Linux, our installed base and Network Appliance vendors.
It is important to understand when Bill Gates says “well understood” he means “thought of the way Microsoft wants”. He uses this exact euphemism frequently. He also likes to say “innovation” when he means “proprietary closed extensions”.
Charles Fitzgerald, Microsoft GM (2001):
[Working on cross-platform .NET CLR] is terrifying. A x-plat strategy is not a winning strategy.
[...]
[The .NET CLR cross-platform strategy is] potentially worse than that – we both validate x-platform and then demonstrate conclusively we not prepared to deliver on it.
Srivats Srinivasan, Microsoft PM (2001):
We understand the need for DMD to proliferate the format … however, if it is at the expense of our embedded OSs, I fear that it can hurt us in the long run. Especially when you consider that part of enabling the .NET vision is to embed our OSs in devices of all forms going forward – hence our apprehension.
Graham Clark, Microsoft GM (2001):
I would like to understand the x-plat strategy, because I don’t get it and nor does anyone in the field. It doesn’t seem to make ANY sense.
By putting CLI into ECMA, we are inviting x-plat implementations. With Rotor we are even doing some work on Linux and Solaris.
For enterprise customers/partners, wanting to build enterprise apps, all this is meaningless as there is no mechanism to provide transaction (and other core services) support on these non-Windows implementations. J2EE clearly has a mechanism, albeit faulty, to enable these x-plat services.
I can think of four explanations for our current strategy (as I and the field see it):
1. There is something happening to provide these applications services x-platform that I don’t understand (based on Joe [Long]’s proposition, I doubt it is this).
2. We think that our customers/partners/analysts are stupid and that they won’t see our approach as insufficient for real enterprise apps.
3. We are going to evangelize to IBM and others to plug their own transaction services under CLI on Linux (without specifying how). Joe’s proposal is to tell them how.
4. We haven’t thought thru a strategy that will make sense after anything more than a superficial inspection – if so why are we doing all the Rotor work?
If the answer is (2) then we have learned nothing from the past 5 years and J2EE will continue to kick our butts. I would rather see Microsoft say x-plat is BS rather than make a half step (Rotor, CLI) that will confuse everyone and lead to continued distrust of our motives for doing it.
Dan Neault, Microsoft GM (2005):
Maintaining Gap vs. Linux
1. Keep network effect with Applications
- Migrate applications to .NET framework
- BUT keep framework proprietary to Windows
- Patents required to implement clone
[...]
Maintaining Gap vs. Linux
- The .NET framework contains the latest developer platform for the future, and it must be licensed like Windows. Subsets have gone about as far as they should go in the standards bodies, but we need a compact subset for phones and TVs. It was noted that we have to be careful because once the horses are out, they are out forever. At the right royalty, we can have discussions around technology beyond this.
[...]
- The plan in that images, inks, and still formats will not go to Linux like some of our digital media formats will. This would mean that if someone downloads images, it might violate patents. There was a discussion of a new format where as one takes pictures, the pixel resolution compresses.
[...]
[...]Strategy Axioms
Technical Axioms
- Invest in formats/protocols (ensure we are not blocked; gather IP advantage if possible)
Eric Rudder, Senior VP (2005)
As many of you may know, we’ve actually kind of broadened the product portfolio of Visual Studio, targeting all the way from the low end with students and hobbyists, kind of competitive in that Linux space, making sure that every developer has a copy of .NET and is trained in writing .NET solutions. We introduced the low-end version we call Visual Studio Express, so we have Visual C# Express, Visual Basic Express, and Web Developer Express. These products are still in their beta phases, but we actually had more than a million downloads of Visual Studio, which is quite healthy for a developer tool. I think it will really help us in our competition with open source.
These are all court exhibits or public statements made not by janitors or interns or mouthpieces hired to spin doctor Microsoft’s image; these are decision makers. They are Microsoft, and this is discussion that went on for years surrounding the relase of parts of .NET for standardization.
No matter what level of supervillian-like nefariousness you care to read into such quotes, you will surely agree that the decision to standardize parts of .NET was throughly considered by Microsoft before doing it.
In which a point is made
Why exactly do you think Microsoft decided to standardize parts of .NET?
There can be no doubt they discussed the ramifications of such an action. Do you think that Microsoft would act against its own best interests?
Then it is reasonable to assume that Microsoft thought standardizing parts of .NET was in Microsoft’s best interests.
We should be able to stop there, but I know my Gentle Readers clamor for ever more elucidation. Plus, I’m not leaving until the poop-flinger in the back does.
Alright, one may say, Microsoft released parts of .NET because it was in thier best interests? So what! Mono still helps Linux and Open Source development! So neener neener to you, Mr. Mono-Hater!
Fine, Mono may indeed help FLOSS to some degree. The question is, does it help Microsoft more than it helps Linux? This is an important question, because if you help your competition more than yourself, you are in effect harming yourself.
What is Mono doing?
We know Mono must help Microsoft. Microsoft would not have allowed for the ECMA standardization if they did not come to the same conclusion.
Here are some ways Mono helps Microsoft:
- Spreads Microsoft standards
- Spreads Microsoft mindshare
- Increases FLOSS dependency on Microsoft
- Good PR value for Microsoft
- Mono apologists are often obliged to defend Microsoft
- Mono evangelists are often obliged to be Microsoft evangelists
- Divides, distracts and delays the community
- Makes it easier for FLOSS developers to develop on Windows
- Provides some nice FLOSS applications for Windows
- Provides developer tools
- Helps in Microsoft’s fight against Flash
- Helps in Microsoft’s fight against Java
- Decreases effort in general for non-Microsoft tools
Think on that. When a Mono developer stands on stage with a huge slide that says:
“Moonlight is an Open Source implementation of Microsoft’s Silverlight technology … and it is awesome”
They are evangelizing Microsoft. They are promoting Microsoft. They are increasing Microsoft’s mindshare. That is good PR for Microsoft. Microsoft actually pays some people money to do that! That is actually a career for some people!
Now, here are some ways Mono helps Linux that are unique to Linux (i.e. not covered in the above list):
- Provides partial compatibility with some Microsoft offerings
There are almost no unique benefits to Linux from Mono. Microsoft enjoys almost every benefit that Linux does from the Mono project, as well as some unique ones. I think it is quite clear that Mono benefits Microsoft more than Linux.
A difficult question
Consider this: Say that Microsoft released .NET for Linux in the same manner they did for Windows. Do you think that it would enjoy the same adoption, enthusiasm and support that Mono enjoys?
If you answer is not “Yes. Absolutely”, then you are acknowledging that ideals and ethics do matter. Quit pretending like people that have them are some sort of embarrassment holding Linux back.
That is the problem with a purely “pragmatic” approach. That is the problem with preaching that “users just want something that works”.
An easier question
And now, I think we can return to zekopeko’s original thesis: Microsoft’s position is slowly being eaten away in part by Mono.
I reject that. I do think that Microsoft’s position is slowly being eaten away; but I do not think Mono is playing a significant role there. I think that Mono helps Microsoft at least as much, if not more than it helps FLOSS. So, it can not “eat away” at Microsoft’s position, because it is in fact bolstering Microsoft’s position.
So I ask you, should the community support something that harms it?

#1 by Richard on July 22nd, 2009
This piece is rife with false dichotomies. Microsoft and Linux don’t exist in a closed universe, and that which helps one does not necessarily harm the other; furthermore, the decisions of one party do not need to hinge exclusively, or even primarily, or even tangentially, on some behaviour or characteristic of the other party.
I mostly find this sort of zealotry in the Java camp, where everything that the .Net crowd does is either (a) playing catch-up to Java or (b) in some way intended to subvert and kill Java. In much the same way, you seem to see everything that Microsoft is doing in the most paranoid light. No mention is given to market forces, business drivers, customer feedback, platform unification, OS strategy, … the list could go on and on.
But, hey, don’t let me stop your rant. Think of this as me just flinging out that ol’ poop. Who needs a powerful cross-platform framework anyway? Naah, let those developers (who, in your universe, obviously have infinite amounts of spare time) just re-code everything for different platforms. Or if they want something cross-platform, they can pick any framework they want, as long as it’s Java. With those options, I can’t see why they’re not flocking to make Linux versions of popular software…
#2 by Jason on July 22nd, 2009
@Richard,
Thanks for stopping by!
It does if one has said they intend to destroy the other.
I just got done talking about how customer demand is driving Microsoft’s latest code contribution, and there is an implicit recognition of market forces in the very start of the piece. I don’t think I need to cover every single angle when I’m trying to get across a single point.
If you think I see things in the “most paranoid light”, you need to get around the internets a bit more. I’m extremely skeptical and cautious, and far too refined to point to those who are the “most paranoid”.
In any case, I thank you for your comments and critique!
#3 by Richard on July 22nd, 2009
… and this was said many moons ago. Notice that Microsoft, much like the open-source community, does not speak with one voice: the OS division, the applications division, the research labs, and others all have their own interests and views. And like any organization, Microsoft changes and develops and evolves — see, for example, how the ASP.Net MVC architecture is taking shape, or how IronPython is being developed. It seems that the people who are handling .Net are very open to open-source, so why not give them the benefit of the doubt?
See, it looks to me like you want to have your cake and eat it. If they do something that ostensibly harms OSS, you say “Naughty! I was right all along!”, and if they do something that ostensibly benefits OSS, you say “Where’s the catch? Those sneaky bastards! They’re planning something!”. What, exactly, would it take for you to come around to seeing Microsoft in a friendlier light? Is it the patent “issue” that’s bothering you? If so, how does ranting about it help? Contact Microsoft. Lobby. Make your views known to them directly. Start a Facebook group about it. Do something useful.
That’s just the thing: to make your point, you do. Your piece is based on a closed ecosystem, where the only rational reason for Entity A to do anything is to counter/preempt the behavior of Entity B. If there is a third alternative (such as “Microsoft is doing X in order to grab market-share from Adobe Flash developers”) then this entire piece simply doesn’t stand up any more. Closed-ecosystem arguments are trivially shown to be flawed. To make them stand up, you need to show that the ecosystem is effectively closed (e.g., in the case of an oligopoly), and I don’t think you can do that.
Frankly, a better way to do the “Does Mono hurt Microsoft” question would be to not rely on either-or black-and-white points. Do a proper analysis, using stats from SourceForge, NetCraft, CodeProject and so forth. Look at Microsoft’s recent offerings — such as IronPython v2 or F# or WPF — and ask yourself how they fit into a model you’re constructing. Use anecdotal evidence, if you must. In other words: do some real research. If you want people to listen to you, give them something to think about. Anyone can rant. It takes a better person to present a perspective.
#4 by Jason on July 22nd, 2009
“Many moons ago”? Kevin Turner, Microsoft’s COO, just got done saying in this very month (July 2009):
The only people who talk “nice” about Linux and Open Source in Microsoft are those who are specifically paid to do so – or low-level tech people who have no more influence on the company than I do on Congress. That’s why Microsoft has to hire people just for that job, because no one who matters in Microsoft will do it.
I will tell you what it will take for me to come along a see Microsoft in a friendly light: lots of time and a proven track record. Because that is exactly what it took for me to see them in an unfriendly light. I didn’t wake up one day, throw a dart at the board and decide to get my hate on.
It is ludicrous to assert that one needs to cover every single angle, because such a thing is not possible. It is always necessary to simplify and exclude aspects, else the description of the thing would be as complex as the thing itself. Not to mention this is a personal blog, not a book.
Furthermore, your very example (“Microsoft is doing X to grab market-share from Adobe Flash developers”) is something I explicitly mentioned in my article as a way that Mono helps Microsoft!
Anyway, it’s clear to me you either didn’t even read the thing or failed to comprehend it for whatever reason. It is hardly a “rant”. Why even bother commenting? Oh well, thanks anyway I guess.
#5 by Richard on July 23rd, 2009
What’s wrong with Kevin Turner’s quote? What Turner is saying is that they’re making headway in showing customers that TCO doesn’t end with the OS cost. I’ve been in enough organizations to know that he’s absolutely correct on this point.
(This is not to say that it Linux necessarily has a higher TCO, but I am saying that it does not automatically have a lower TCO. YMMV with the organizational needs; no OS is going to be a panacea for everyone.)
This is your perception of Microsoft culture. Please do not assume that they are a monoculture, or that the people at “the top” all think the same thing. Such a notion is false for any mid-sized organization, and Microsoft is bigger than mid-sized.
Then I would suggest that you stop writing articles about how they’re such sneaky, cunning devils when they release GPL’d code, or when they strike a deal with Novell/Ubuntu/whoever, or when they create OSI-approved licenses, or when they contribute to open projects like Apache, or when they start emphasising community involvement, and start writing articles about how you perceive their track record to be changing. Unless, as I’ve said, you want to have your cake and eat it?
True. However, simplification reduces a situation; and reduction changes a situation. In fact, if the world was as you posit it to be, I’d agree with you. What we disagree about is your portrayal of the world as being two always-antagonistic entities in a battle-to-the-death. When I was younger, I also used to think that this sort of a depiction was accurate. Much like Jim Huginin, I changed my mind.
An excellent case-in-point. Silverlight/Moonlight is an answer to Flash, and the reason for developing it has nothing to do with Linux. Mono, in porting it to Linux, helps to break Flash dominance of the rich-media web. I think we can agree on this so far; here’s where the disagreement comes in:
… there you went, putting it somehow in the context of 2 people engaged in a game of economic-deathmatch, and that context is a sham. It doesn’t exist. You’ve taken the fact that there’s a third party primarily responsible for and primarily affected by the development of a particular technology, and reduced it to “Mono helps Microsoft! -> Microsoft harms Linux! -> Mono harms Linux!”. It’s an oversimplification, and it doesn’t fly.
#6 by Lex on July 23rd, 2009
@Jason
“It seems that the people who are handling .Net are very open to open-source, so why not give them the benefit of the doubt?”
This is why your article “Does Mono hurt Microsoft?” is wrong. You must remove your rant and apologize publicly. Wait. What does this have to do with mono?
“Then I would suggest that you stop writing articles about how they’re such sneaky, cunning devils when they release GPL’d code, or when they strike a deal with Novell/Ubuntu/whoever, or when they create OSI-approved licenses, or when they contribute to open projects like Apache, or when they start emphasising community involvement, and start writing articles about how you perceive their track record to be changing. Unless, as I’ve said, you want to have your cake and eat it?”
Thats right. Stop writing about how Microsoft is bad and start writing how Microsoft is good. It’s called positive thinking, buddy! Doh, where have you been?!
And off the record, here at Microsoft you cannot eat the cake you have. You can either have your cake, or eat someone else’s cake. Just don’t eat your own.
“Contact Microsoft. Lobby. Make your views known to them directly. Start a Facebook group about it. Do something useful.”
That’s right. Do whatever you want, just stop writing bad things about Microsoft in your personal blog. Oh, and you are useless.
@Richard
“Silverlight/Moonlight is an answer to Flash, and the reason for developing it has nothing to do with Linux.”
Moonlight has nothing to do with Linux? Nice one… Except that if you look at the moonlight page http://mono-project.com/Moonlight their goals #1 is “To run Silverlight applications on Linux”.
It appears you are not even familiar with the technologies in question. Let me explain them to you: Mono is .Net port, Moonlight is the port of Silverlight. Moonlight runs on top of Mono. See, not very hard to remember.
Next time you want to defend Microsoft in an article that exposes them for who they are, do your homework first. Please!
Your comments have a smell of typical MS propaganda. First you ignore any points made and dismiss the argument. Then you bash the competing technology. In your comments you are promoting Microsoft as a company and promoting Microsoft technologies. Finally you try to make the author look stupid and suggest that he should go and do something useful.
Reading your comments made me want to vomit. And it’s not a figure of speech. Maybe I’m just too sensitive to such large amounts of BULLSHIT.
#7 by zekopeko on July 23rd, 2009
What does your “answer” have to do with Richards question?
Let me explain that to you Lex since you missed the point: the world isn’t black&white it’s everything in between.
Jason writes like there is only either black or white argument.
Writing code would be nice.
Yet again you miss the point Lex. MS didn’t create Silverlight to attack Linux, they did it to take a piece of Adobe’s market. Moonlight was developed because Miguel de Icaza didn’t want Linux to be stranded without access to content provided by Silverlight. No different then gnash or swfdec when compared to flash.
I hope you don’t read your own posts then
#8 by Apollo11CAPCOM on July 23rd, 2009
I think some of the commenters here are missing (or deliberatingly ignoring) one important factor for Ubuntu, Debian and GNU/Linux at large success: Up to now, it has provided a wonderful viable alternative for many individuals, government bodies and businesses to escape Microsoft lock-in, forced obsoleteness and upgrade cycles, expensive, bloated and inferior quality, underperforming, insecure, unstable and non-standards-compliant products.
Now, if people campaigning for inclusion of mono *by default* (notice I dont perceive any problem At ALL in providing mono as an option among others for anyone who wants to use it) get its way, there will be no such alternative: In the end people will have to choose between Microsoft and Linux distros dependent on Microsoft ™ technology: And definitely that lack of choice benefits Microsoft and Microsoft-lead technologies *network effect*, rather than GNU/Linux and alternative Free Software’s *network effect*, its users or the Free Software community.
Claiming that mono *by default* in the first media of Ubuntu and/or Debian does not restrict user’s free choice, is like claiming that by providing InternetExplorer by default in Windows does not favor Microsoft since anyone can Install other browser afterwards (let’s keep aside the fact that up to now it was not possible to uninstall IExplore, a situation I really expect won’t happen with mono in Ubuntu or Debian, despite the fact the more dependent on mono they become, the more “broken” they become when a knoledgeable user tries to uninstall mono -because novice users don’t even know that the possibility exist, just as novice Windows users dont know there are other browsers available apart from IExplorer)
Directing people to choose other distros if they happen not want to use mono is of no help either. Ubuntu has become the most popular Desktop distro and Debian is the most complete one and one of the stablest, and they have reached this degree of popularity and quality with little or no help of mono dependenct or mono installed *by default*.
Forcing people to stop using the best distros around is not a good way of giving them choice.
But there is yet another factor that IMHO makes *depending* on mono and letting it be the default choice in the most powarful GNU/Linux Distros (notice again im in no way *against* mono) is definitely a poor strategic move.
There is the fundamental point of who controls that technology. The development, roadmap, legal status and in general, future of .Net is exclusively Microsoft’s so mono development will always be behind and at a competitive disadvantage while its developers will keep spending a great deal of effort at keping up with Microsoft’s plans and ever changing versions and/or standards and its users will never get the full benefits of that technoloy nor will they get them in time. (Remember what happened when Flash 10 sites proliferated and Adobe treated Linux and x64 distros users as second class-citizens: despite the fact that packages like gnash existed they didn’t work.Thats whay it is not a good idea to depend on technology of a single company. Why do you think Microsoft would behave better with .Net/mono and silverlight/moonlight than Adobe did with flash -at least Adobe released a native flash10 player and a native AdobeReader for linux, even late, even closed source, but it is something Microsoft hasn’t ever done-)
Depending on Microsoft’s technologies amounts to forcing GNU/Linux to depend on Microsoft and on Microsoft’s terms, wich I think weakens the independence of the GNU/Linux system and offers less choice (not more) to the community (apart from dividing and weakening it).
Microsoft has repeatedly and officially declared (I mean, in their K10 quarterly filings to the Securities and Exchange Commision, not only the tacky anti-Free-Software and threatening PR rants of Steve Ballmer and other MSFT senior execs “there is no such thing as a Free Lunch, the Free Software movement is dead, Linux infringes on our intellectual property, the 235 patents”, etc,etc), As I said, it has declared GNU/Linux and the Free Software movement as one of the greatest threats to their business model (licensing permissions to use software) and core products (MSWindows and MSOffice), and for those rushing to give MSFT “the benefit of the doubt” there is no deniyng that they are going to make something about that that won’t be nice for our preferred Operating System. Also rest assured they have refined their “evangelism is war” strategy in the 10 years after thanks to the company being taken to the courts of justice, their internal strategy documents have been made public.
Just look at the exclusionary Novell-Microsoft deal exploiting the patent loophole of the GPLv2 and the recent threats against TomTom and Melco/Buffalo are of any indication: better be safe than sorry before it is too late…
#9 by Jo Shields on July 23rd, 2009
@Apollo11CAPCOM
“Up to now” should read “up to 2006″
#10 by Jason on July 23rd, 2009
@zekopeko
No. You are in fact the one that asserted that Mono is “eating away” at Microsoft. How then will you criticise me for developing the theme that there is a competition?
Or are you suggesting there is some situation where Mono can “eat away” at Microsoft (presumably helping FLOSS), but there is no competition occurring? Because I don’t understand that.
Right. Could you just point me to the gnash developer that wants to rewrite the Gnome dock in ActionScript? Or re-do GNOME in Flash? Or maybe the gnash developer giving presentations talking about how “awesome” Flash is?
Do you not see that difference? It is significant to how people perceive things, I assure you.
It’s one thing to roll up your sleeves and take on a “dirty job”, it’s another thing to rub feces all over youself and laugh gleefully while doing so.
#11 by zekopeko on July 23rd, 2009
We get it, you don’t like Microsoft. And why FLOSS flourished was because of it’s development model. The development model allowed people to contribute while maintaining strong competition amongst projects and demanding quality code.
I don’t know of any distro that is depending (as a core tech) on mono, do you?
Mono is not an integrated part of the system like IE so your comparison fail’s miserably.
But let’s entertain the idea shall we? How is mono by default limiting users free choice? They can uninstall it easily. They can install other applications from the repos. There is nothing stopping them from achieving those two.
No, the problem is that you can’t stand having it in the default set of applications because users will then use it.
Not to mention removing applications from users isn’t a good way of giving them choice.
Mono has already (or is about to) implement all of the ECMA specification for C# and CLI. After that it doesn’t matter. Why? Well because we already use technologies that are specific for the Linux platform. We don’t create our GUI’s with system.win.forms nor with WPF. We use GTK# or Qyoto. Oh, and let’s not forget parts of the code that MS released under it’s MS-PL license that is OSI approved.
And it would be a damn shame to forget Mono.SIMD that is Mono specific. Or C# shell that .NET will have in version 5 (about 2-3 years from now). So who is it again that is lagging behind?
There was such a nice article on Ars that covered the whole change in cultures that is slowly happening in MS. I always forget to bookmark it. It was about why are they entering in more and more patent interoperability agreements. Can’t remember the details. But I do know that it was a book review. Perhaps you can find it and be enlightened.
Let’s see why your whole post sucks:
You want to limit developer freedom to develop on the mono platform and by extension the users choice of applications since there would be less of them. Now you say that mono is OK but not in the default install. So how did I come to this conclusion? Well if you put a border that mono app can’t cross (default install) then you are removing incentive for developers to program on said platform. You are treating them like second class citizens in the FLOSS world.
Now let’s continue the tour.
We have (to use Jo’s term) fatboy Ballmer saying that the Linux kernel (from now on just “kernel”) allegedly infringes 235 patents. So I’m left here with a confused look on my face (picture WTF!!!??? as a facial expression and you are close). Why aren’t you and other z-lots demanding the removal of the kernel from the default install? There are other options to use.
I mean the kernel is covered from patent threats as much as mono is, by way of OIN.
Nay, the kernel is even less covered since there is no Community promise that covers it.
So where is my boycottlinuxkernel.com or kernel-nono.com?
#12 by zekopeko on July 23rd, 2009
Confused about your answer. Elaborate.
For clarification:
I was explaining to Lex what Richard said while agreeing with him on the point he made about B&W.
Forgot to add the bolded part since Silverlight/Moonlight are compared to swfdec/gnash in such a context. That will teach me to have all my words put into sentences and not remain in my head when posting!
What’s wrong with wanting to rewrite the panel in Moonlight? Silverlight is MS’s answer to Flash/RIA.
.
Mono developers saw an easy way for creating beautiful desktop applications since they don’t intend to port WPF (Window’s answer for next gen UI’s on .NET) to Linux since it’s a too large undertaking (and I’m guessing isn’t really needed on Linux).
And the man only expressed his opinions, or are you also against freedom of speech?
I do see is bunch of developers wanting to write the panel in JavaScript, ActionScript’s bigger brother
As much as I don’t see a gnash developer saying Adobe’s Flash implementation is awesome neither do I see core parts of Flash standardized.
I also don’t see what is wrong with Miguel going to a MS sponsored conference and giving a talk about Mono.
It is a implementation of .NET after all. If that is wrong then there must be something wrong with other FLOSS developers going to Sun sponsored conferences and giving talks about OpenJDK.
That last part is deploring. Worthy of Roy.
#13 by Jason on July 23rd, 2009
Because Moonlight is only available through Novell. Because the “covenant” is so anti-community.
Certainly not. However, that doesn’t mean I can’t take issue with his speech. Do you think those that take issue wih my speech are against freedom of speech?
Sorry about that, a little on edge because I grow tired of being told how I’m not a part of the community by blowhards.
#14 by zekopeko on July 23rd, 2009
Whoa! First of all the panel isn’t written in ML and it didn’t see anybody trying to write it in ML.
But even if it was written in Moonlight it would still need to be accepted in Gnome as a replacement. And we aren’t even on the first line of code yet.
It’s obvious that you don’t like his project but attacking him for a completely hypothetical scenario, existing by definition in his mind only, is going to far.
Attack the covenant not the underlaying technology and one man’s spoken thought.
When he said that it’s awesome he was talking about the technology. And I don’t see anything wrong with saying that something is awesome, especially if you are professionally involved with the relevant field and are passionate about it.
You should apologize do Miguel not me. And remember that you chose this path and everything that entails.
#15 by Jason on July 23rd, 2009
You just said yourself “What’s wrong with wanting to rewrite the panel in Moonlight?”. You just asked that question.
Now, when I answer your direct question, with I direct answer, you fall back to “Whoa!”???
Show some honesty and intellectual rigor.
Just want to make sure this your way of squeaking out the “faux” community thing, right?
#16 by zekopeko on July 23rd, 2009
Hard to do any kind of rigor this late. “Whoa!” was my Keanu Reeves way of saying slow down. Was going for “there is nothing wrong with writing the panel in ML so why are we even discussing it”.
Here I was going for the whole “you have an unpopular opinion, get used to the stress and marginalization” not the “faux” thing. Direct response to your “I’m a little on the edge”. Not to be view in context of lefty’s post.
#17 by Jason on July 23rd, 2009
@zekopeko
Again, fair enough. My thanks.
#18 by Lex on July 23rd, 2009
@zekopeko
The very reason “people who are handling .Net are very open to open-source” is because they want developers… http://www.youtube.com/watch?v=8To-6VIJZRE
Whether those people are open to open source or not has nothing to do with Mono. Their licenses and patents make the difference. I could not care less what they are SAYING. What matter is what they are DOING. And their actions are speaking for themselves – they have opened a very limited subset of .net… over the last SEVEN years. Then they have given a PROMISE not to sue. No patents, just a promise.
Can you honestly tell me if you think they are ACTING open to open source or just PRETENDING?
Now you are saying that “the world isn’t black&white it’s everything in between”. Argument it’s never black and white has the same sort of logical fallacy as saying it’s always black and white. So I take it you mean to say that the word is almost never black and white…
But guess what? It still does not change any arguments presented. Jason have touched on many points. I will not go into all of them, just one single point. I’ll present the breakdown line by line. If you really think it’s false, please care to comment on exact number that you think is wrong. Anything else is just dismissing the argument.
1. More people using mono means more mindshare for .net platform. This means more influence to Microsoft because they own the .net platform.
2. The key people at Microsoft have stated on multiple occasions that Linux is their number 1 enemy.
3. Just like any other business Microsoft is interested in leaving the competition far behind.
4. Giving Microsoft more influence means giving them more means to leave their competition behind. And as pointed out, their competition happens to be GNU/Linux.
5. This could be offset if and only if mono was also helping GNU/Linux. Here I actually disagree with Jason, because mono is not helping (the rest of the post is why).
Every GNU/Linux installation that was chosen on the basis that it can run .net software is a subject to Microsoft influence (EMBRACE). Microsoft can choose not to open the future versions of .net, so these GNU/Linux installations will lose their interoperability (EXTEND). Because these installations will not be able to run new versions of software that requires the new version of .net they will become useless and will be replaces by Windows boxes (EXTINGUISH). The mere possibility of this scenario negates any perceived help of mono. Because as pointed out in #3 Microsoft is interested in leaving the competition behind. So if you disagree with this, you have to argue on #3.
Now, their community promise is a very clever thing. Because it does not extend to new versions of .net and at the same time explicitly requires you to adhere to the specified standard to be covered. They can easily make any open source implementation of a new .net version lose CP coverage completely. I’ll rephrase it again, so it’s clear.
Given the CP as presently stated, Microsoft can, at ANY TIME release a new version of .net so that it is impossible to use CP to cover ANY PART of an open source implementation of the new .net version. And i’m not talking about the coverage of the new stuff they add, i’m talking about EVERY SINGLE LINE OF CODE that makes up an open source implementation of the new .net version.
Here is how:
Make the new .net version break the standard that is covered by CP. Do not extends the CP to cover the new version. Now, any open source clone that implements the new version of .net is breaking a standard that CP explicitly requires to be 100% implemented in order to be covered. So any open source implementation of the new .net version is no longer covered by CP.
As demonstrated Microsoft can make it so it is not possible to have a legal fork of mono that supports some future version of .net
Again, if you are saying “but Microsoft would never do that”, then you would have to argue that “Microsoft unlike any other business is not interested in leaving the competition far behind.”
THE END
PS.
I hope this explain just the kind of influence Microsoft has over .net and mono.
While nobody can predict the future, given the Microsoft track record and current attitude to GNU/Linux you can be certain there is a HIGH PROBABILITY of them doing 3E (Embrace, Extends, and Extinguish). You can take a chance that they wont do it, and be right. Nobody is saying it’s impossible, just that it’s rather unlikely.
And people should be aware of that before they choose their development platform. That’s why I think this blog is doing a great service to the GNU/Linux community.
#19 by Jo Shields on July 23rd, 2009
This fallacy was debunked in 2002. KUATBT.
#20 by Lex on July 23rd, 2009
@Jo Shields
If you are not gonna post how, at least you should link. That’s reasonable, no?
#21 by Jo Shields on July 23rd, 2009
http://mono-project.com/Mailpost:longreply
Specifically:
#22 by Lex on July 23rd, 2009
@Jo Shields
That’s not even close to what I’ve said.
I’m talking about making a LEGAL fork. Because companies will not use illegal forks. If they do, they will be subject to Microsoft extortion, latest example being Melco.
http://www.linux-magazine.com/Online/News/Microsoft-and-Melco-Group-Sign-Patent-Agreement-for-Linux-Devices
I know i’ve made a long post… but please read the second half again, especially the part that explains how Microsoft can easily take away CP protection from future versions of .net. That would make the whole Embrace Extend Extinguish possible on the legal grounds.
#23 by Lex on July 23rd, 2009
And Melco signed a deal based on undisclosed patents of questionable existence. The .net patents are much more real.
#24 by Jo Shields on July 23rd, 2009
Not even close?
How is this complicated?
Mono does not need to be compatible with Microsoft.NET to be useful for Linux people. If future versions of the ECMA standards fail to get into the CP (which is disingenuous of you, since you don’t believe in the CP) then Mono does not need to use them, apps do not need to use them, etc.
#25 by Jo Shields on July 23rd, 2009
Is that your pro-bono legal advice as a trained legal worker?
Or a guess based on conjecture?
#26 by Apollo11CAPCOM on July 23rd, 2009
Here is a pro-bono legal advice brought to the community thanks to Software Freedom Law Center.
http://www.softwarefreedom.org/blog/2009/jul/17/microsoft-patent-aggression/
Might be not enough for you, but sure it is a lot more reliable than the “just trust us” of the Microsoft lawyers and PR people…
#27 by Jo Shields on July 23rd, 2009
Were Melco attacked for their use of Mono?
#28 by Dan Serban on July 23rd, 2009
@zekopeko
Interesting, who’s “we” ? I think I’d like to know more about your affiliations with the Mono project. Or at least I’d like to know whether drawing a paycheck requires you to shamelessly promote the infestation with Mono of the most popular Linux distro.
Endlessly repeating a question that I answered for you on this very blog before, in another comment thread, is not conducive to intelligent debate.
#29 by Lex on July 23rd, 2009
@Jo Shields
“Is that your pro-bono legal advice as a trained legal worker?
Or a guess based on conjecture?”
Sorry that was not me speaking, that was common sense.
“Mono does not need to be compatible with Microsoft.NET to be useful for Linux people. If future versions of the ECMA standards fail to get into the CP (which is disingenuous of you, since you don’t believe in the CP) then Mono does not need to use them, apps do not need to use them, etc.”
I do not have to believe in CP in order to argue that even if CP was true it still has nasty surprises. It’s called “Reductio ad absurdum” argument.
http://en.wikipedia.org/wiki/Reductio_ad_absurdum
CP has raised many questions, I have given you one of the reasons why people should be very careful about CP.
If mono does not implement a new .net version then .net applications that require the new version will no longer work. So choosing GNU/Linux on the basis that it can run some .net applications will lead into Embrace Extend Extinguish cycle as I’ve described.
In this case there is no benefit that GNU/Linux can run .net applications. Because if .net compatibility goes, users will not be able upgrade to feature versions of those applications and make them work with mono.
It may be possibly but costly to refactor new versions of open source .net applications and make them work with mono. However if you were relying on the closed-sourced .net application and mono, you are completely screwed. Once those apps require the new .net version that is not supported by mono, you have no choice but to move to Windows.
If the mono team has no intentions of following .net standards if a legal problem arises, they should not claim any kind of .net compatibility, or at the very least they should clearly state that the .net compatibility may disappear subject to Microsoft decision.
And something like this has far reaching consequences. If people are relying on mono being stable, and mono changes suddenly (to avoid infringing a patent) that will break their applications. You are basically proving the point RMS made that FOSS should not rely on C# implementations.
#30 by Dan Serban on July 23rd, 2009
Melco was given as an example of extorsion by Microsoft, not necessarily being related to Mono. The point being that Microsoft can and does use extorsion as a weapon, before attempting litigation.
#31 by Lex on July 23rd, 2009
@Jo Shields
Wow Jo, you have just commented
followed by
Do you even read what people are saying before fire a response?
#32 by Apollo11CAPCOM on July 23rd, 2009
Jo: You are smart enough to understand perfectly well that Microsoft needs to aquire more critical mass (more Mono code and dependencies inserted in the most popular GNU/Linux distros) for such an attack based on Mono to be effective.
This is the role they reserve for gullible developers and the pro-Mono-by-default-and-nothing-else-will-do aggressive proponents. We are at the “invade and divide” phase.
Attacking right now would indeed backfire Microsoft since their move would be too obvious and people would understand their strategy and would stay clear and safe from Mono hyperdependency.
#33 by Richard on July 23rd, 2009
Silverlight, WCF, WinForms, F#, Boo, IronPython, MVC, ASP.Net, VB.Net, … tell me, exactly which .Net technology have they NOT opened up? Can you give me a percentage breakdown (even a ballpark figure will do) of how much they’ve shared, and how much they haven’t? Where I’m sitting, I can’t think of many technologies that haven’t been implemented for Linux. There’s WPF, I suppose, but that’s due to the Mono guys not having the time to do it — nothing to do with Microsoft.
Of course, if you are using “opened” in a more legal sense, then you probably want to look at the legal doctrine of estoppel. Seems clear to me that, aside from any Community Promise, Microsoft would find it difficult to stop people from using .Net, or “retract” technologies already presented.
And the answer is … not black-and-white. (are you surprised?). The balance of probability lies with “Acting”. In any large organization, decisions are generally made by compromise. Thus, for example, some people might have wanted to release software under BSD, some under GPL, and so forth. The result was MS-PL. Similarly, some people might want to release technology with a different set of legal wording, but what we have now is a compromise. Why assume malevolence, in the absence of evidence of malevolence, and the presence of statements and actions that deny malevolence?
No, it doesn’t. One leads to false dichotomies, and the other does not. You need to take Philosophy 101.
Correct premise, incorrect conclusion. Microsoft does not, in any practical sense, “own” the platform any more than Sun “owns” Java. I can code all day using Mono and never bump into a single restriction that Microsoft has placed on the platform. So, no, Mono mindshare does not equal Microsoft mindshare.
… and key people at Microsoft (have you met Sam Rami? No?) have stated on multiple occasions that OSS has a place in the software environment. Differing opinions at the top level in a large organization! Who’d'a thunk it!
… and Java, and Google, and IBM, and Adobe, and Yahoo!, etc etc etc … you do realize that if Microsoft had to choose between cultivating a cross-platform development environment and giving up the ghost to Google, they would probably choose the former? Which means that it is not, in fact, in their best interest to pull any rug out (even if they could) from under Mono? Just pointing it out.
What an odd statement. Do you want to clarify what you mean by “Microsoft influence”? Is it branding? ‘cos I can run Tomboy all day and not be subjected to a “Microsoft influence”.
When you speak of “.net”, are you talking about the CLR? Or the framework libraries? Or technologies such as Silverlight that are built on top of the CLR + framework libraries?
Also, this sort of thing would only be true if:
1. .Net became a fundamental part of the OS, without which Linux could not function, AND
2. It was impossible to build libraries/CLR extensions which duplicated functionality for interoperability purposes.
(1) is pretty unlikely. (2) is impossible.
Let me understand you. You’ve laid out a far-fetched, outlandish possibility that COULD happen in some alternate universe where the existing CLR is not Turing-complete and languages like Boo or Nemerle didn’t exist, and because of this possibility you refuse to acknowledge that Mono can be of any benefit to the Linux community.
shrug. Me, I tend to worry about real-world scenarios, but each to his own is what I say …
… and this would be a Tragedy, if not for the unfortunate fact that the CLR and libraries that we have right now are just fine and will be for the foreseeable future — we don’t need to implement a new version to get the benefits that Mono already offers. And developers interested in cross-platform issues can just code to the old version. In this game, the only loser is Microsoft.
So, in the worst-case scenario, I get to use my existing Mono libraries and framework, but I don’t get some syntactic sugar or Cloud-Interoperability or whatever? So I’m stuck with a language that offers memory-management, multiple programming paradigms, close-to-native speed, and an extensive set of libraries that cover everything from cryptography to web services? What a bummer! I can totally see why this would suck.
#34 by Richard on July 23rd, 2009
Rubbish, and that’s putting it kindly. Technically speaking, you can convert ANY app that runs on CLRv2.0 to run on CLRv1.1, and you can convert ANY app that runs on a future CLR to run on the existing Mono CLR. An automated tool could do this for you; heck, an automated tool (Grasshopper) can already convert between .Net and Java, and this is a much simpler transform. This applies equally well for any future CLR version. There is no “costly”. There is no “completely screwed”. Due to reflection metadata which MUST be embedded in assemblies (or a whole bunch of core language features will stop working), there is no “no choice but to move to Windows”.
In fact, operating under exactly the same sort of legal reasoning as Wine and Samba, there are no legal problems with this either.
Actually, no. If the feature must be reengineered in a clean-room fashion, that can be done: see TrueType’s avoidance of patent issues. Nothing breaks. And let’s not bring RMS into this, shall we? Ideologues have little value in this conversation.
#35 by Jason on July 23rd, 2009
@Richard,
You make some good points, but I would like to take (minor) issue with this one:
Do you not think that Microsoft enjoys some mindshare when .NET is promoted?
Say, for example, that .NET was MS-only, Windows-only, and so when it was promoted, Microsoft gained 100% mindshare points.
What percentage would you assign to Microsoft when .NET is promoted as x-plat, praised by Mono peeps, and so on?
I hope you see where I am going with that question – I feel like it is a high percentage, say 75%. I know we are pulling numbers out of bottoms, but I happen to like this point and hate to see it brushed aside casually!
Thanks!
#36 by Dan Serban on July 23rd, 2009
@Richard
So basically because the messenger was “killed” by some people, the message does not hold true anymore all of a sudden?
#37 by Lex on July 23rd, 2009
@Richard
I mean that mono should open is legal sense.
“Why assume malevolence, in the absence of evidence of malevolence, and the presence of statements and actions that deny malevolence?”
Hello… Patents… Melco, TomTom? Do these ring a bell? These are actions that clearly prove malevolence.
“Microsoft does not, in any practical sense, “own” the platform any more than Sun “owns” Java.”
Sun does own java. Every line of code in java increases java mind share and increases Sun’s influence. Sun has even changed their stock name to JAVA.
“… and key people at Microsoft (have you met Sam Rami? No?) have stated on multiple occasions that OSS has a place in the software environment. Differing opinions at the top level in a large organization! Who’d’a thunk it!”
I have clearly stated that there are HIGHLY HOSTILE opinions about GNU/Linux at Microsoft. You saying that the organization has different opinions does not disprove the point. As a bonus, point me to some other companies open sourcing coding while having similarity hostile and friendly (at the same time) attitudes toward GNU/Linux as Microsoft does.
“… and Java, and Google, and IBM, and Adobe, and Yahoo!, etc etc etc … you do realize that if Microsoft had to choose between cultivating a cross-platform development environment and giving up the ghost to Google, they would probably choose the former? Which means that it is not, in fact, in their best interest to pull any rug out (even if they could) from under Mono? Just pointing it out.”
Java was in somewhat similar position until Sun itself release Java as open source. Notice, no CP and some half-backed third party implementation, but full Java by Sun itself under GPL v2. After that it got accepted… with caution.
Now, just because you say it’s not in Microsoft’s best interest to pull the run out from under mono, doesn’t meat it will always be the case. Technologies evolve fast, things change. Before people run into mono land screaming in ecstasy there should be solid guarantees that no matter what, Microsoft is not able to pull the rug out.
“When you speak of “.net”, are you talking about the CLR? Or the framework libraries? Or technologies such as Silverlight that are built on top of the CLR + framework libraries?
Also, this sort of thing would only be true if:
1. .Net became a fundamental part of the OS, without which Linux could not function, AND
2. It was impossible to build libraries/CLR extensions which duplicated functionality for interoperability purposes.
(1) is pretty unlikely. (2) is impossible.”
When I speak of .net i mean it in the same way the Microsoft does when they speak of .net.
1. If a GNU/Linux distribution is chosen on the BASIS THAT IT CAN RUN .NET APPLICATIONS. It does not have to be OS core to be required by the user. For example if there is a .net application that is essential to some business company and they choose to go with GNU/Linux because it can run that application.
2. Microsoft can make it LEGALLY IMPOSSIBLE “to build libraries/CLR extensions which duplicated functionality for interoperability purposes”. You are not suggestion that companies should break the law to have their apps running in GNU/Linux, are you?!
Both 1) and 2) are real and very well defined.
“… and this would be a Tragedy, if not for the unfortunate fact that the CLR and libraries that we have right now are just fine and will be for the foreseeable future — we don’t need to implement a new version to get the benefits that Mono already offers. And developers interested in cross-platform issues can just code to the old version. In this game, the only loser is Microsoft.”
The problem comes when there are new programs written for .net that are no longer compatible with your runtime. All serious companies will choose the newer version of .net and you will be left with outdated software. Unless you are trying to prove that mono is just a toy thing. But if it’s just a toy, it should be treated as such and kept in the toy section.
“So, in the worst-case scenario, I get to use my existing Mono libraries and framework, but I don’t get some syntactic sugar or Cloud-Interoperability or whatever? So I’m stuck with a language that offers memory-management, multiple programming paradigms, close-to-native speed, and an extensive set of libraries that cover everything from cryptography to web services? What a bummer! I can totally see why this would suck.”
Really, nobody is talking about technical merits here… You seem to have an itch to advertise .net/mono or something.
But guess what, java has all that too. If you want a slicker languages, there are options like Scala http://scala-lang.org/. Scala even run on top of .net. Really everything you have said applies to Scala + a long list of other features. All under BSD.
It’s not like it’s mono or nothing… there are choices, you know. And those choices are more open (in legal sense), much more mature and more functional than mono.
#38 by Richard on July 23rd, 2009
@Jason
Not necessarily, no. Users can be broadly categorized into “user” and “developer” (or “surfer” and “techie”, or “casual” and “power-user”, etc).
The ordinary user has tasks to do: organize pictures, look up word definitions, make notes for himself, etc. He could use F-Spot, Gnome-DO, and Tomboy for these tasks without knowing about the language or framework being used to create these apps. So as he’s doing these things, the “mindshare” that Microsoft gets from him is zero. Most users are of this type.
On the other hand, there’s the developer/power-user who wants to find out about his system, tune it, maybe develop some applications, and so on. He uses the same apps as the casual user, but if he’s interested in a particular app, he discovers that it has a dependency on Mono. He investigates Mono, and finds that it is an implementation of the .Net environment. He looks up .Net, and finds out that Microsoft is the original creator of it, and the current driver of many .Net trends. And he tries it out and he’s impressed, so he mentally awards a pile of brownie points to Microsoft. How many points he awards depends on how impressed he is!
Umm. 50%? 70%? 80%? I know that I’m impressed by some of the stuff (I mean, come on, you can’t NOT be impressed by something like LINQ … that’s just mad-1337-fu).
The thing is that I don’t see it as a “point” for either pro- or anti-Mono. So Microsoft created .Net, does that make me want to switch from my sweet Ubuntu+AWN setup? No. Adobe created Flash, does that make me want to give up desktop app development? No. It’s just credit where credit is due, which is eminently fair to all concerned.
#39 by Lex on July 23rd, 2009
@Richard
“Rubbish, and that’s putting it kindly. Technically speaking, you can convert ANY app that runs on CLRv2.0 to run on CLRv1.1, and you can convert ANY app that runs on a future CLR to run on the existing Mono CLR. An automated tool could do this for you; heck, an automated tool (Grasshopper) can already convert between .Net and Java, and this is a much simpler transform. This applies equally well for any future CLR version. There is no “costly”. There is no “completely screwed”. Due to reflection metadata which MUST be embedded in assemblies (or a whole bunch of core language features will stop working), there is no “no choice but to move to Windows”.”
First of all those transformation are not 100% reliable. You need to do testing and manual tweaking. And no amount of recompiling can go around new libraries. Also when an API is patented and you have to twist the hell out of it to make your API non-infringing, then transforming large bodies of code RELIABLY may become costly.
Try suggesting an IT lead to recompile a huge app, like a server using the tool you’ve mentioned and then use the resulting software in production. Watch their facial expression change to horrified.
#40 by Richard on July 23rd, 2009
No, they don’t. If I sue one party, does that mean that I must sue another — in an entirely different problem domain? Of course not. Give me an example from the .Net set of patents, and I’ll listen more closely.
Yep, I agree. And there are highly favourable opinions about GNU/Linux at Microsoft. All I ask is that you stop claiming that the existence of hostility precludes the existence of friendliness, or somehow overrides it. Be charitable (in the philosophical sense).
OK, none of these hold any water. See my other post. Technically, and legally, it is IMPOSSIBLE for the situation you posit to arise (unless, of course, Mono development were to be completely abandoned by everyone, or IP laws were to change globally, or aliens were to land and outlaw it, etc). If you’d like to reply about one of these points, please reply to post #34.
You seem to be confused about what Mono is. It is not a language. It is a CLR + tools + libraries. Any language can run inside it: Scala, Ruby, Python, C#, VB.Net, ASP.Net, F#, Boo, Nemerle, Java, C++, … the list goes on and on. To say that a particular choice is “more open (in legal sense), much more mature and more functional than mono” is meaningless.
#41 by Richard on July 23rd, 2009
Then Grasshopper must be magical. And RedGate’s Reflector must also work by the Power of Castle Grayskull. Yes, bytecode to bytecode transformations are 100% reliable. Why not choose to argue a point that is not backed up by many, many real-world examples of 100%-reliable bytecode manipulation and translation (have you seen ILMerge? And PostSharp? And Mono.Cecil? And, and…?)?
… this is called “reimplementation”, and Samba and Wine are good at it …
Really? You can patent an API? Quick, tell Wine so that they can stop breaking the law. I’m surprised that out of all the people on the Internet, you’re the first to discover this.
Translation is not recompilation. Any “IT lead” who doesn’t know this needs to have his role reexamined.
#42 by Dan Serban on July 23rd, 2009
So, Richard, how do you summarize in 30 seconds or less what you have proven by posting these comments?
Kind of like a reader’s digest version of it.
You lost me in the details.
#43 by Lex on July 23rd, 2009
@Richard
“Then Grasshopper must be magical. And RedGate’s Reflector must also work by the Power of Castle Grayskull. Yes, bytecode to bytecode transformations are 100% reliable. Why not choose to argue a point that is not backed up by many, many real-world examples of 100%-reliable bytecode manipulation and translation (have you seen ILMerge? And PostSharp? And Mono.Cecil? And, and…?)?”
The biggest problem with bytecode translation between different platforms is surprisingly not the bytecode itself, but differences in the libraries. To make it worse, a platform with a large library accumulates quirks which are version specific. The issues most clearly manifests itself when you are dealing with large projects which due to their size have many dependencies on such quirks. These programs (I’m talking enterprise size software) will not work on a newer version of the same runtime. If you would suggest recompiling an enterprise server to a different architecture and then use it in production without investing money into sufficient testing first, you would get fired for incompetence.
I’m not talking about your hobby project you mess with when you have time. I’m talking about a web-server in an enterprise setting where every hour of downtime costs a company hundreds of thousands of dollars.
So bytecode translation is not 100% reliable. Maybe 99.99%, maybe even 99.999%, certainly enough for most project. Reliable enough for real stuff that companies use? No.
If you want an example of such app, look at Documentum.
“… this is called “reimplementation”, and Samba and Wine are good at it …”
So who should do the reimplementing? The users of broken apps or the mono team? If we went this far into the argument, why not choose a technology that will not require reimplementing?
“Really? You can patent an API? Quick, tell Wine so that they can stop breaking the law. I’m surprised that out of all the people on the Internet, you’re the first to discover this.”
These guys surely believe in patented APIs
http://www.stillhq.com/extracted/tutorial-imaging/clibpdf-license.pdf
“Translation is not recompilation. Any “IT lead” who doesn’t know this needs to have his role reexamined.”
Compilation is defined in a dictionary as translation. But surely you must have better arguments than this
#44 by zekopeko on July 23rd, 2009
“We” was used to make a distinction from “them”, “them” being Windows developers that would naturally want to use the best framework for creating rich GUI’s on Windows. And from the look of things that is WPF. I was making a point that we aren’t constrained my MS since we have our solutions.
See this kind of “argument” is what falls under the “faux fundie” category.
I don’t have anything to do with the Mono project beyond being a user.
And why does monetary incentive have to be implied for me to defend Mono? And not to let you drag this one out: No, I have no monetary (or otherwise) incentive for defending Mono. And note I said defending, not promoting. What platform the developer wants to use for his application is up to them.
Not you or me.
Moving forward.
Why don’t you attack the Ubuntu Technical Board? They made the decision to include Mono not me.
I’m just a user that fucking LOVES Banshee/Gnome-do because I think that they bring value to my user experience. So when people try to treat them as second class citizens I want to defend them.
Perhaps you could link to it so that I can see this explanation. I don’t read nor memorize every freaking comment that is posted here.
#45 by Richard on July 24th, 2009
Yes. You have already pointed this out, and I agreed with you. And this is why such libraries would have to be reimplemented. I said ‘this is called “reimplementation”, and Samba and Wine are good at it’, and I don’t see why Mono would be worse at the game.
I’m sure that I would. And if I were to suggest running a v2.0 app on a v1.1 runtime, do you think I’d get the same response? (Hint: the answer is “no”). It’s hardly the same as porting from Windows to Unix, or even from one CPU architecture to another.
You’re misinformed on this point. If you have queries about how much 100% is, please direct them to Mainsoft, and they’ll happily tell you the same thing that I’m telling you: bytecode transformation, barring bugs in the transformer, is a 100%-reliable process. Oddly enough, you’ll find that Mainsoft makes a good living selling their software to “real” companies, and not to hobbyists. And they would know what 100% is, because the success of their engagements rests on the transformation process being 100%.
Either, I don’t particularly care. And this only really comes into play if you want to have fun with some new whizz-bang future library that isn’t covered by the CP; it’s not as though all of the work up to now will have to be reimplemented.
And they’re incorrect. If you don’t believe me, go ahead and ask Groklaw, or any IP lawyer that you happen to know. You can patent an algorithm, not an API. Frankly, half the rubbish in some agreements won’t hold up in a court of law, which is why most such agreements come with phrasing like “If some part is deemed invalid by a court, the rest remains in force”.
No, not particularly. Recompilation would involve taking MSIL, pushing it into a language syntax, and then compiling that down to bytecode. Doing so without cause is crazy, since multiple source representations can be compiled to a single bytecode representation (e.g.: switch statements and multiple if-else statements), and you lose the mapping in the translation of language -> bytecode.
I’m sort of a one-trick pony on this issue, since I happen to be backed up by practical experience, a few tools that apparently do the impossible, and just about every bit of compiler theory ever formulated. Whatever the dictionary says, 100% translation from one instruction set to another is not only perfectly possible, it is almost trivial when the former is a superset of the latter. Transmeta built their hardware on this exact foundation. GCC used to compile C++ by doing an AST transform to C. I’ve already mentioned Grasshopper. But you don’t have to be convinced by dozens of real-world examples; perhaps you’re more amenable to theory. If so, go and ask any CS professor at any tertiary institution, or look in any book on compiler theory, and you’ll get the same answer.
#46 by Lex on July 24th, 2009
Here is a quote from Grasshoper website:
“It’s a plug-in for Visual Studio .NET that takes your compiled ASP.NET code and translates it into Java bytecode so you can run it on your J2EE system on Linux. In many cases you don’t need to alter your ASP.NET code at all – it just recompiles and runs!”
http://dev.mainsoft.com/Default.aspx?tabid=154
Notice two things.
1) The word RECOMPILE. They are using it interchangeably with the word translate. I suggest you go and tell them not to use the word RECOMPILE.
2) “In many cases you don’t need to alter your code.” That means there are cases when you do need to alter your code. Here goes your 100% automation and reliability.
As I’ve said, the problem is not translating the instructions, the problem is mapping the library calls of one platform onto the library calls on another platform.
Sometimes a single class on one platform is represented by several classes on another platform. They encapsulate similar functionality. But method signatures can be different. The mapping between a library from one platform to another is not straightforward. This is what requires manual tweaking and creates costs.
Here is another quote from Grasshopper website.
http://dev.mainsoft.com/Default.aspx?tabid=29
FAQ Architecture #1
“How does Mainsoft for Java EE work?
Mainsoft for Java EE is built on three major components:
1. The core technology is the cross compiler that converts the Microsoft Intermediate Language (MSIL) code to Java bytecode. This infrastructure generates native Java applications from C# or VB source code.
2. A Visual Studio plug-in that seamlessly integrates Mainsoft for Java EE extends the IDE functionalities cross-platform.
3. The Mono .NET Framework is rehosted on top of the Java EE infrastructures, allowing you to port .NET applications to Java EE.”
So the they don’t actually translate .NET library calls to Java library calls. What they do is host MONO on top of the Java EE Infrastructure. So mono is the KEY COMPONENT that makes this translation possible.
Now, going back to the argument. If Mono has legal issues and you need to escape those issues you cannot use the method Grasshoper is using to recompile to some other runtime.
So your whole argument about Grasshoper and translation is basically flawed. And your whole posturing about 100% reliability and automation is no more than empty words for someone who does not know what it is he is talking about.
Thank you.
#47 by Richard on July 24th, 2009
@Lex
I’ve had about enough of this back-and-forthiness, and frankly, I can see that you’re not about to change your mind no matter how many examples I point out, and I’m not going to change my mind because I’ve actually done similar bytecode transformations. Essentially, the crux of why you and I disagree is a technical matter, and if the “threat” can be resolved in this way then I have no qualms and you have a few. So, let’s agree to disagree on this, and move on.
(If you are not satisfied with this, provide me with your email address and we can take it to email. The technical points that have been raised have little to do with the weblog post that we are commenting on, and I suspect that we’ve drifted off-topic: Dan Serban certainly seems to think so.)
On a legal point, do you think that Microsoft will (given the doctrine of estoppel) be able to “retract” already-shared technologies? If so, why?
Pingback: Forza Mono « MadBob
#48 by Lex on July 25th, 2009
@Richard.
I find it amusing that now you suddenly want to escape into an email conversation. I’m sorry, but “I’m sort of a one-trick pony on this issue”. You were found to be WRONG and until you admit it I have no intentions going further.
Dan Serban have asked you to summarize your points. Maybe you should do it.
#49 by vexorian on July 25th, 2009
I just wanted to mention something slightly OT, the other day I accidentally got ‘infected’ with planet python’s RSS feed when importing a lot of feeds from someone else. It is interesting to see that many stuff in the feed are actually Iron Python evangelism, with Icaza showing a lot of work to promote it over the real python (you know, the one that does not require patents, patent deals, etc to run and you can use in a much wider range of machines). Icaza quotes are being quite heavily used to migrate python developers to ironpython:
#50 by zekopeko on July 25th, 2009
I can already see it:
Miguel in his tunic and a whip with a golden handle. Under him hundreds, nay thousand of Python slaves siting behind computer screens, feverishly typing. Their only goal: Write as much python code with as much C# bits running on, praise-th be his name,Silverlight.
On occasion you can see Miguel moving on his MS-patented elephant-snake through the vast rows and columns of slaves in a completely deterministic path. Every so often a slave collapses from dehydration or a stroke. Miguel doesn’t care. There are more of them to fill the void.
Slowly traveling between the slaves, Miguel engorges himself on the code that is powered by pure suffering. And then he sees, IT, the abomination. Row A, column 27. He whips the MS-patented beast to the location.
There he sees the filthy thing in human form, typing fast, desperately trying to meet it’s LOC quota.
“Slave”, yells Miguel. The slave in row A, column 27 falls to his knees and hands. “Yes, Mono-God, the shinning Moonlight of Silverlight’s grace?”, responds the frightened creature.
“Why isn’t this algorithm optimized? Why isn’t it written in C# for performance?”
“I…don’t know…how…to optim-ize it, My Overlord”
Miguel is angry. His beautiful presentation on advantages of languages running on a DLR wasn’t remembered by this lowly slave. And he spent so much time creating the background and choosing the font. The creature must be punished for such insolence.
“In the garbage collector with you!!!” , screamed Miguel.
“NOOOOOOOOO!!!!!!!!! Please, sir not in the garbage-collector! I have family! Little children, a puppy even!” , begged the slave.
But Miguel is already gone.
…..where was I? Oh yes, what were you trying to say vexorian? Did you have a point?