Let it be emphasised that Mono is a threat because of a variety of innate issues. We've known this since 2006. Here is a top Microsoft executive admitting that Mono is a patent problem for GNU/Linux. We also discussed the effects on OpenOffice.org back in 2006. Microsoft admitted this again on several occasions later on (even in 2008 when Brian Goldfarb accidentally confessed). For the lawyers among us, it's also in the heavily-redacted contract with Novell [1, 2, 3, 4, 5, 6, 7]. Only one company is said to have 'protected' its paying customers. Yes, Novell is fine with Mono risk because it probably wants to use this to its advantage.
# rpm -i --force openoffice.org-common-3.0svn13475-1mdv2009.0.i586.rpm 2>&1 | grep mono libmono.so.0 is needed by openoffice.org-common-3.0svn13475-1mdv2009.0.i586 mono(mscorlib) = 1.0.5000.0 is needed by openoffice.org-common-3.0svn13475-1mdv2009.0.i586 mono(mscorlib) = 2.0.0.0 is needed by openoffice.org-common-3.0svn13475-1mdv2009.0.i586
Makes sense to me and I want to purge mono-related packages - if any - from distributions I use [which are - on hard drive - PCLinuxOS, Fedora, Mandriva, Mint, and Kubuntu].
An interesting but quickly executed purge, right? Not. The packages I don't want are:
mono-common, and libmono0.PCLinuxOS doesn't have mono-common - done. It does have libmono0 - which I tried to zap but got:
rpm -e libmono0 error: Failed dependencies: libmono.so.0 is needed by (installed) openoffice.org-2.4.0-3pclos2007.i586Oops! Put a hold on that for a bit!
Some input would be appreciated while I look at those other distros.
The final release of OpenOffice.org 3.0 is expected later this month, in time for the upcoming Ubuntu, Mandriva, Fedora and OpenSuse releases later this year.
Comments
Béranger
2008-09-14 09:09:12
libmono0 is only an interface lib, written in plain C. It's harmless, except for the psychological effect.
However, mono(mscorlib) is provided by mono-core, and this is where Mandriva 2009 went off-limits: by having mono-core required by OpenOffice.org!
AlexH
2008-09-14 09:56:06
Roy Schestowitz
2008-09-14 11:24:26
paul (the unverified)
2008-09-14 14:36:37
Also, I'm seeing more stuff re Mandriva. I had used Mandrake v7 and 8. Then I was distro hopping for a while, but finally settled (?) on three; CentOS for a server, PCLinuxOS for an easy to install and configure desktop solution for friends and family, and Sidux for my Dell 1501 laptop. But now I'm feeling the itch again re a different distro and am becoming sorely tempted to return to Mandriva. The mono thing would probably discourage me, though.
Thanks again for an insightful update.
Roy Schestowitz
2008-09-14 17:24:04
landofbind
2008-09-14 17:37:35
So what that there is something written in C# on your systems? Will it turn you blind, rape your wives, kill your children, make you worshipers of the devil or anticipate the end of the world?
Why live in fear?
You, Roy, have a big mouth. Why don't you create a distribution that promises to never, ever include anything developed in C#? It's a challenge to you and your fear mongering, gray cells-lacking friends.
Do something productive for a change. Instead of the usual "the sky is falling".
The problem is, dear Roy, your purity is all pretense. You don't oppose patents, patent deals or even proprietary software. No, you only oppose it because it's Microsoft or Novell. Blind hate. Associated with it is also the lack of any cognitive ability and laziness.
Incapable of making a intelligent, reasonable comment, incapable of analyzing any of what you post in any meaningful way, not even an superficial one.
You're not even entertaining.
When you don't have anything damaging, and because you've to make 10 posts a day, you resort to lying, rumor, fud, fear-mongering, and absolute nonsense. Posting anonymous comments as facts. You run a "smear campaign".
You show yourself lacking in any ethical and moral values when you have to answer your critics. You never contradict them, never argue with them. Instead you purposely ignore what they say and post some more links completely unrelated, most of them pointing to you. If you make some comment it's always something offtopic and nonsensical.
Seeing you arguing with someone is like seeing a Monty Python sketch.
Note: comment has been flagged for arriving from an incarnation of a known (eet), pseudonymous, forever-nymshifting, abusive Internet troll that posts from open proxies and relays around the world.
ildeG
2008-09-14 18:52:17
ildeG
2008-09-14 18:56:26
Mick
2008-09-14 19:02:01
It exposes you to a future lawsuit, if you had cared to even read the post title.
Downloading music and movies carries a fairly low risk of being sued too. Tell that to the tens of thousands of people who have been sued and ask them if the risk was worth the reward and whether they'd do it again.
AlexH
2008-09-14 19:39:57
What we need to do is defend free software from the threat of patents, not scare users off it. If it wasn't Mono it would be something else; most successful free software is a copy of something proprietary.
Roy Schestowitz
2008-09-14 19:48:03
Software patents are bad, this Web sites fights them, but here you have two companies signing a deal which explicitly encapsulates an /entire technology/, not a set of ideas or algorithms.
AlexH
2008-09-14 20:16:15
First; don't misrepresent the Novell/MS deal. It is not a patent cross-license.
Second; patents affect myriad free software projects. We in the free software community don't abandon them just because patent holders threaten them, we defend them.
In this specific instance, if there is a threat to Mono (which, remember, is defended by OIN), that is 90% likely to be the same threat to Java (and, possibly, Tamarin, Android's VM, and other VM-based projects). This isn't "other evils", this is the same evil. All of these projects should be defended from software patents, not just those Roy likes.
AlexH
2008-09-14 20:18:22
Roy Schestowitz
2008-09-14 20:26:56
It is. Even Novell admits it now ("agree to disagree" is passé).
AlexH
2008-09-14 20:35:20
Care to cite something which specifically shows that is wrong and that they have licensed MS patents? Not just rumour, people guessing, opinion, but actual _fact_ ?
Roy Schestowitz
2008-09-14 20:40:26
Roy Schestowitz
2008-09-14 20:41:59
AlexH
2008-09-14 20:44:55
Just to be specific, I'm looking for you to show some evidence that they have entered a cross-licensing deal which isn't based on some opinion / guess / other fantasy article on the web, but... y'know, something actually factual?
Roy Schestowitz
2008-09-14 20:51:33
http://www.linux-watch.com/news/NS2927608517.html
"To do this, Novell and Microsoft are providing covenants to each other's customers, therefore releasing each company from the other's patent portfolio. This may sounds odd vs. a traditional patent cross-license agreement but it is one of the things that makes this deal so unique."
And later this from Microsoft:
http://arstechnica.com/news.ars/post/20061121-8259.html
AlexH
2008-09-14 20:58:44
And then you restate the "Novell did not agree or admit that Linux or any other Novell offering violates Microsoft patents" link where Novell and MS "agree to disagree", which you earlier dismissed saying: "Even Novell admits it now (”agree to disagree” is passé)".
That's not the most convincing evidence, I'm afraid: neither citation backs up your claim, and you don't even seem to be consistent on the point of the second.
Roy Schestowitz
2008-09-14 21:06:27
http://blogs.computerworld.com/novell_and_microsoft_stop_with_the_fud_already
AlexH
2008-09-14 21:14:14
While you're trying to find more links, let me pose a question. If this was a cross-license deal, where Novell get access to and use Microsoft patents, why did the Free Software Foundation explicitly exempt it from the terms of the GPLv3?
AlexH
2008-09-14 21:15:59
Roy Schestowitz
2008-09-14 21:20:42
AlexH
2008-09-14 21:27:35
Sure, we can rephrase it if you're willing to retract your claim that it is a cross-license. I'm quite happy to discuss whether or not it's about patents, are you happy to accept you were incorrect?
AlexH
2008-09-14 21:28:16
Roy Schestowitz
2008-09-14 21:33:59
Anyway, yes, it's not cross-licensing, which is the term you brought up. It is, however, about patents.
AlexH
2008-09-14 21:43:23
However, I'm not a Novell customer, so it doesn't apply to me and with the situation of the GPL it's something that is relatively time-limited. I disagree with their statements about IP and I don't recommend people buy their products. I have no problem with their free software contributions, though.
xiso
2008-09-15 00:20:09
Thanks for any help xiso
mpz
2008-09-15 11:08:25
First, it is great as a FUD tool. They can claim patent risks as often as they like as a marketing mechanism without ever having to prove a word of it. Novell certainly do. And they can do that without all the costs and most of the bad-press they'd suffer if it ever came to a lawsuit.
Second, it will probably never be at the quality and functionality to rival the MS implementation, and certainly not keep up with on-going changes (through no real fault of the guys doing it - they'll have to keep up with moving goalposts). It will always be the poor cousin - so anyone wanting to do 'real work', or use the latest features, certainly wont (be able to) stay with mono. (until they piss it off and start working on their next big thing). Hell even if it does somehow pull the golden rabbit out of the hat and achieve parity, they can just say it sucks anyway.
And third, and more indirectly. It helps dilute free software developer power by diverting resources and creating conflict and disagreement. Developer resources are not unlimited, even in the free software world. Diverting even a significant fraction into mono/related work removes them from the talent pool that may otherwise work on competing technology (and particularly with that set with interest in the area) . And the icing on the cake is the conflict it creates - diverting emotional energy and making the `linux community' look like a bunch of rabid lunatics.
AlexH
2008-09-15 11:33:55
I also don't buy the "dilutes manpower" argument. That's not a languages or platform thing; part of what makes free software work is that it is a thriving ecosystem of competing implementations.
I totally agree with you about the conflict, though. It's unfounded and unnecessary, and it's not for us to tell other people what they should and shouldn't work on: it's free software.
Roy Schestowitz
2008-09-15 11:38:46
AlexH
2008-09-15 11:45:43
Mono is an extremely attractive platform for developing applications for free desktops; it's easier and quicker than any of C, C++ or Java, and marginally better than Python (especially when it comes to wrapping native libraries). It's a good technical choice.
Roy Schestowitz
2008-09-15 12:28:41
What you're sometimes suggesting is that companies choose software never based on some choices that are imposed by convenience or other people's choice. In essence, many companies end up adopting Mono-based applications simply because the software distribution comes with it. Ubuntu, for example, comes with quite a heavy 'Mono duty' saddled onto it. While this issue was discussed before, there are no easy answers.
AlexH
2008-09-15 12:44:27
Mono is free software, and the apps you're talking about in Ubuntu are free software. It's a shame you don't like Mono, but then some people don't like Python. You can't please everyone. What matters is that they are free software.
Roy Schestowitz
2008-09-15 12:53:25
Yes, .EXE and .DLL files produced using the framework which Microsoft warns is only for Novell, Microsoft's partner in a corporate recovery plan.
Do you really think they are interested in anything other than their investors?
AlexH
2008-09-15 12:57:12
Quite why the names of files involved should be of any relevance, I don't know. It is certainly of absolutely no *technical* relevance, and neither is Microsoft's FUD. They throw mud at a lot of free software projects, it's sad to see you copy them.
Roy Schestowitz
2008-09-15 13:03:11
paul (the unverified)
2008-09-15 13:12:08
There is NO reason to expect anything different from Redmond now. Especially now.
Alex, most of your points are valid enough, the bottom line comes back to who is at the center of all this. And again, I'd rather be very suspicious of a convicted monopolist than innocently naive.
For me, this has tainted the free software environment. I'd rather not use (and thereby, approve or support or even recognize) anything that's associated with mono. If m$ really was feeling all sincere and genuine now and only wanted to 'help' and 'contribute,' they would not have pulled the blatantly unethical crap they did with OOXML and Ballmer would admit that he screwed up about the patent infringements.
Sorry, it's the old 'fool me once... fool me twice' scenario. m$ can go crawl under the trash heap of history for all I care. No mono for me, thank you.
AlexH
2008-09-15 13:12:21
I think it's convenient to say "problems with Mono" when that could mean virtually anything.
And I'm quite happy to admit that there are issues with specific aspects of it: for example, Fedora have decided at the moment that they're not willing to carry Moonlight, due to the patent risk around XAML. Thus, I don't use Moonlight.
What do we do about that, throw our hands up? No. If Moonlight is risky, then so is XUL: technologically, they're virtually identical. Even if we decide we never want Moonlight, we still cannot ignore that threat, it must be dealt with.
But that is a bit of a special case. The rest of Mono is happily accepted by all mainstream free software distributions, and people are building good apps with it. If there is a vocal minority that does not like it because it comes from Microsoft; tough, it's free software: you can choose not to use it.
We're already seeing more Microsoft code in free software apps; just today it turns out that Microsoft code is critical to the new Google Chrome browser. Is Chrome suddenly non-free? Of course not. Free software is free software, whether it comes from Microsoft or anywhere else. That's the measure, not the level of FUD you can throw at it.
Roy Schestowitz
2008-09-15 13:23:53
AlexH
2008-09-15 13:28:48
Giving people the option to run against a proprietary SQL server isn't necessarily a bad idea: I know plenty of systems, including web hosts, where the choice of database is non-negotiable.
What matters is that people have the ability to choose free software. If free software won't work in that setting, they won't choose it, and we lose.
If they can choose the free software, and they choose a proprietary SQL DB - well, frankly, that's their loss, and you can't force them into choosing free software everything.
Roy Schestowitz
2008-09-15 13:32:05
AlexH
2008-09-15 13:34:58
At the end of the day, Mono leverages a number of key free software technologies which aren't available to people on .net, and encourages people to start using them, and offers real benefits to .net programmers.
This is bringing Windows developers over here. You might not think that's a big deal, but it is - there are literally millions of them. Starting out with Mono isn't a huge step, but we're bringing them slowly towards the free software ecosystem. That's a huge win.
AlexH
2008-09-15 13:37:21
People aren't going to go out and buy MS SQL server just because some free software supports it now. You're not going to see people swapping out Postgres. I would bet there are a fair few people itching to get off SQL Server though, and giving them a migration path is crucial.
You can't force people down the path either way, but it's vital that the path exists to bring people to free software.
Roy Schestowitz
2008-09-15 13:44:24
AlexH
2008-09-15 13:56:12
Jose_X
2008-09-15 17:42:37
The biggest effect of advancing mono specifically as opposed to something else that is similar is to help establish MSdotnet.
There is a clear effort by Novell to be Microsoft's pet and follow their lead or they would have left by now (and as well not accepted the money and conditions). That is fine for Novell, but not for the rest of us.
Mono lowers the cost of dotnet for those that can't pay the MS toll. It supports the dotnet ecosystem which is ultimately controlled and dominated by Microsoft. Does piracy of Windows interface help or hurt Microsoft? Mono is like a pirated, though lower quality (less integration to Windows), dotnet. It helps dotnet have breadth and depth despite Microsoft's pricing/brand and manpower and other limitations.
Again, you can make any of very many different decisions from a technical point of view and the results would mostly be the same.. technically speaking. Mono people could be doing their VMs very differently in specifics to get very similar effects. Sticking to dotnet precisely as MS describes is a very conscious decision that helps Microsoft. The tech arg is worthless (just add the few gains of dotnet to something else .. eg, work on Parrot or something else if Java is deemed not good enough.. heck fork dotnet today, since not years ago, through an open community).
Actually following dotnet is about the "hooked" aspect.. both mentally for those developing with it and as well the facility this creates for Microsoft to extend their hooks onto dotnet apps (as opposed to the apps being made differently). Microsoft can more easily reuse quality mono FOSS (both to study, to add value to MS platforms as the free low end apps, and through a license from Novell on command if they wanted actual source) to create "deluxe versions" (with lock-in to MS platforms).
Mono helps Microsoft. Free software or not, if you help Microsoft you hurt Linux/FOSS. Also, the point of free software is that you can fork when you don't like the leadership. In this case, the patent issue and some other things (like lack of sufficient interest in ms technology by those not on the mono plan already) keep mono from being forked. Mono should be forked. Then the story will get interesting.
Everyone supporting dotnet will talk about the inevitability of this or of that MS technology. That is intentional. Microsoft would spend huge sums of money to create the perception that their technology is inevitable (Roy quotes frequently about the slog). It's crucial to Microsoft that people talk about how they can't leave ms technology.
AlexH, you should consider forking mono if you want to help out FOSS. You can mostly get your technology fix this way and would be creating competition which you recently said was good. Why would you not fork mono and the dotnet specs.. for the sake of FOSS since this would be just as useful to use technically speaking and less useful to Microsoft? We'd have control among other gains.
Let's remember something. Microsoft is in competition with a lot of more Linuxy-open technologies and companies. Dotnet gaining puts the pressure on the commercial ecosystem around Java and others to move to dotnet. This would bring Microsoft huge amounts of money and more control. This would be bad for FOSS. This would remove more FOSS support and even more checks on Microsoft. Microsoft large incomes also means they can subsidize losing efforts to get into industries they otherwise could not reach (like game consoles and more hw/services industries). It means more marketing dollars against Linux/FOSS and the freedoms across the board that we represent and offer.
AlexH
2008-09-15 18:02:17
I think there are a number of problems with your argument above, but I want to take issue with a couple of points:
Mono is absolutely nothing like a "pirated" dotnet. First, Mono is free software. Second, Mono and dotnet overlap, but one is not a subset of the other: Mono provides significant benefits over dotnet, not least:
UNO and XPCOM interop support, advanced support for bytecode introspection and manipulation with Cecil, support for DBus, Gtk#, Gnome#, Stetic, Cocoa#, ObjC#, Qt, and numerous other important free software technologies, support for OpenGL.
If you don't use or understand Mono, it's very unfair to comment on what it is and isn't, and what it does.
Second,
Nothing prevents Mono from being forked; anyone can do that. If people don't want to do that, that's up to them, but please don't drag false patent problems into this. The Novell developers have no patent licenses for dot net stuff and are not protected from MS lawsuits.
Jose_X
2008-09-15 18:15:03
I completely agree that comfort is very important.
>> If you facilitate people’s proprietary comfort, they are unlikely to depart from it.
Yup.
Let's see if we can achieve both of these simultaneously.
Roy Schestowitz
2008-09-15 18:18:06
I disagree with this. Novell has some sort of agreement around it.
Jose_X
2008-09-15 18:43:10
I didn't say totally like MSdotnet.
And do you really believe that it is "absolutely nothing" likea pirated MSdotnet? That's a shock. I trully thought there were many similarities between mono and MSdotnet (the pirate aspect represents the $0 costs that piracy would enable).
Do you want to clarify since you seem to contradict public info available on mono vs dotnet?
I perfectly know there are differences, btw, ie, the licensing among other things. But source code that is licensed X or Y can look or act identically in every respect; hence, there can be a great very many similarities despite some differences.
>> Second, Mono and dotnet overlap, but one is not a subset of the other
So quickly you seem to contradict what you just said about mono and dotnet being "absolutely nothing" like each other.
And I didn't say one was a subset of the other.
I said, "Mono is like a pirated, though lower quality (less integration to Windows), dotnet." This was a simile [ http://en.wikipedia.org/wiki/Simile ].. kind of how one might say that you were hungry like a wolf.
Oh wait, your's was a simile as well, so I imagine then that you do recognize that mono and MSdotnet have similarities. Add the $0 of a pirated MSdotnet, and the number of similarities increases further.
>> UNO and XPCOM interop support, advanced support for bytecode introspection and manipulation with Cecil, support for DBus, Gtk#, Gnome#, Stetic, Cocoa#, ObjC#, Qt, and numerous other important free software technologies, support for OpenGL.
Thus:
Mono brings Microsoft the ability to control and mimic all these protocols you mentioned, except that the work was done by distracted FOSS developers, and Microsoft gets a proprietary (nonGPL) license on a moments notice from their contractor Novell [or so I assume].
You do understand what I just said, right? Microsoft now also has an ability to interface with all of these Linux things since mono can. It's the benefit of open FOSS, except that MSdotnet continues to be better at least in that it has exclusives.
mono volunteers are helping MS be able to leverage their huge msdotnet closed source investments to control and manage Linux and essentially be able to cut Linux out of the picture. Microsoft can create these bindings themselves, but it would take much more time and effort than if they get devs with experience to do it, and preferably for free. Also, through Novell and not Microsoft, the expectation is that we will trust and start using these dotnet protocols everywhere.
Don't use dotnet. Leverage something else. With FOSS you can add whatever you like in dotnet to anything else. There is little reason for the FOSS community to stick precisely with dotnet, though this certainly helps Microsoft. mono people are making sure dotnet stays up to date with other Linux technologies.
Microsoft: manage everyone, but be unmanageable.
The best way to fight them is to avoid helping them. Don't use things that help them. Look towards free software to see what we should create, rather than assume Microsoft is inevitable, then copy them left and right to the tee. You are just participating in their embrace. Making things easier for them to add special Windows tie-ins with these apps than they could with apps built on other technologies.
Of course, there are other issues, like mono grows dotnet mindshare among devs (that is a valuable asset) and makes the dotnet path more likely to stick with execs and tech leaders that otherwise would switch to a different technology. Ergo, why I talked about the effective pirated msdotnet being mono when looked at this way.
>> I think there are a number of problems with your argument above, but I want to take issue with a couple of points:
so what's the next issue you have?
Jose_X
2008-09-15 18:47:53
I should clarify. I don't perfectly know all the differences, but I am very aware of what makes free software different from most other.
>> If you don't use or understand Mono, it's very unfair to comment on what it is and isn't, and what it does.
I'll comment, and I'll leave it up to you to see if you can find mistakes and maybe fix them for me. I think I know enough about what is going on in general to comment. I disagree with enough important items that you say to feel a bit of an urge to comment. We'll each comment and each correct the other... deal?
paul (the unverified)
2008-09-15 20:34:40
I am astonished at how often m$ has used the Ex3 strategy and yet people blindly jump right into their arms whenever they say they have the next great thing.
Anyone that doesn't see this as an effort by m$ to pollute the FOSS environment must be living next door to Pollyanna.
And you're right, Alex. It is about choice. So if someone feels warm and cozy with m$'s products, they should buy all the licenses they can afford from them. But please, don't expect those of us that believe in and support FOSS to listen to a rationalized defense of Redmond.
There is only one way to counter Redmond's efforts. Stay the course. Keep FOSS as free and unencumbered by patents as possible. I know that is impossible to do completely re all the software manufacturers (eg, Mozilla), but when it comes to m$ it must be as close to 100% as possible.
FOSS will draw developers because they see it as an advantage because it is unencumbered and because it is better maintained and developed. We don't need to make allowances for or tolerate convicted monopolists who SAY that they want interoperability and let's all get together and hug and sing 'Kumbaya.'
I really appreciate the work that Roy and the others here do with re to keeping a watchful eye on what is going on in our industry. I say, keep up the outstanding work. Some day I hope we drive a stake through the heart of the Redmond beast. I DO NOT care how that sounds. They have done nothing to improve our industry. They only introduce conflict, confusion, and angst into the market. They are a cost to all of us.
I apologize for the angry response, but I get the impression that you, Alex, have created an homage to the infamous Monty Python Argument Sketch in the form of this discussion. So unless you're willing to pay for another "five minutes," we won't be permitted to argue with you any longer.
AlexH
2008-09-15 21:41:12
I said it's absolutely nothing like a pirated dot net. You're equating use of Mono with copyright infringement, which is so wrong I just don't know where to begin.
@roy:
We went through this yesterday; there is no patent cross-license. You admitted it.
Roy Schestowitz
2008-09-15 22:09:21
Microsoft is a company of lawyers and marketing and I shall post something about it in 5 minutes.
Jose_X
2008-09-15 23:55:58
That's not what I was doing. Maybe you will reread it later and it will make sense.
mono is like MSdotnet in a lot of ways but MSdotnet is not $0; however, a pirated MSdotnet is still somewhat like mono as before except that it's also $0.
Why do I mention this? because mono is a bit like the poor man's MSdotnet. Those that can't afford MSdotnet and want $0 (and better, without pirating) now have mono.
Gates and others have said that pirating your software (ie, your technology) is preferable to the customer going with someone else's technology. mono allows the benefits of pirating Gates' technology for those that won't buy MSdotnet.
Sorry, if you don't understand what I mean. I could try again some other day on some other thread.
Shane Coyle
2008-09-16 04:27:42
Roy Schestowitz
2008-09-16 07:42:44
If I'm gone from here one day, I'm sure you'll take over and brighten up the place. I'll be away Sep 26-30, so I hope you'll post some stuff. I can't reach you by E-mail by the way.
AlexH
2008-09-16 07:59:45
Sorry, but you're simply both wrong. Nothing you have posted shows Novell having licenses for Mono. Conveniently, you post the 10Q where it says "with certain exceptions", without saying what those exceptions are.
Look at the actual agreement for definitive text on what is covered:
Mono is not a "Covered Product", it is an "Excluded Product" because it is a "Clone".
This isn't the first time that this information has been pointed out on this site; it is sad that it makes the same false claims again and again.
AlexH
2008-09-16 08:02:54
I've already given numerous examples where Mono is better than Microsoft's dot net platform. I've also given examples of where it allows you to do stuff that dot net doesn't.
People don't choose to use Mono because of the price. If you'd look on the internet, you'd find out that Microsoft don't charge for dot net (nor, infact, do they charge for the entry developer environment in Visual Studio, either). People choose Mono because of the advantages it has over any other available system (see: Linden Labs, et al)
Roy Schestowitz
2008-09-16 08:27:36
"Interestingly, the Novell deal seems to be different, Mono is not excluded from the Novell deal. So Microsoft seems to be promising not to sue Novell over Mono, but keeps the option open for Xandros. Weird but true."
AlexH
2008-09-16 08:42:57
The exceptions that they mention only admit products before a specific date (November 2006). What they're saying is, they won't sue people for using old versions of "Clone" products. There is no such benefit for current editions.
zinka
2008-09-16 12:29:26
Yeah, but this is wrong! It should be completely compatible. But it doesn't matter, this technology is doomed out of my cultural space. You can have it all you want.
AlexH
2008-09-16 12:33:12
I'm not encouraging people to use it; I'm explaining why people do use it and defending it from people who like to knock free software.
Shane Coyle
2008-09-16 12:59:47
AlexH
2008-09-16 13:10:51
The discussion was about Mono specifically; that probably explains why your comment wasn't very insightful about Mono.
No-one's arguing that Novell don't have "protection" in place for their customers. That's very different to having a patent license themselves, which Roy keeps claiming but never seems to have any evidence for.
Roy Schestowitz
2008-09-16 13:12:24
AlexH
2008-09-16 13:20:02
First you claimed they have a cross-license twice , before you later retracted the claim, but then later changed your mind and disagreed with my statement that they don't have a license.
It's all in the record.
Shane Coyle
2008-09-16 13:32:15
Roy Schestowitz
2008-09-16 13:40:58
Shane Coyle
2008-09-16 13:42:46
AlexH
2008-09-16 13:43:53
What annoys me is the implicit suggestion that Novell are putting code into Novell which infringes Microsoft's patents, which is obviously wrong.
But, there is much we can agree on. And indeed, I would point out that Red Hat/Fedora have already done a legal review of Mono: it wasn't allowed into the distribution before that was done.
The thing is, you can never say for sure a project is 100% safe: even the simplest of free software applications have been attacked by software patents. But what you can do is say that a. the Mono project avoid patents, b. OIN protect Mono, c. major distributors have found no problems with it after review (Red Hat's ongoing concern with Moonlight notwithstanding).
There's not much more you can say about it.
AlexH
2008-09-16 13:45:23
It's all in the record.
Roy Schestowitz
2008-09-16 19:15:00
AlexH
2008-09-16 19:23:25
There was no question from me, and I certainly didn't ask you anything to "trick" you. Please retract that false claim also.
Roy Schestowitz
2008-09-16 19:38:58
AlexH
2008-09-16 19:51:04
If you're in so little control of the words you write that reading things makes you burp them back out accidentally, I suggest you take steps to correct that. You spent about four posts defending an idea you now said I "tricked" you into, which is pretty pathetic behaviour to be honest.
Roy Schestowitz
2008-09-16 19:53:43
AlexH
2008-09-16 20:02:36
What I am bothered by is your suggestion that I somehow asked a "trick" question. You still haven't retracted that false claim, even though it's quite obviously factually false to anyone who cares to check this record.
For whatever reason, you started to defend an idea which is indefensible, and now you're trying to put the blame on me for your apparently poor comprehension skills.
Roy Schestowitz
2008-09-16 20:40:53
AlexH
2008-09-16 21:13:28
Roy Schestowitz
2008-09-16 21:16:28
Adam Williamson
2008-09-16 21:46:21
Our oo.o build is based on the go-oo project, which optionally adds Mono support (basically for writing plugins or macros in Mono). We enable this, and by default if you do that, it winds up with an auto-generated mono dependency in the package. In fact everything will basically still work without Mono installed - you just won't be able to use any plugins or macros that are written in Mono unless you have Mono installed.
Adam Williamson
2008-09-16 21:47:10
...so with the new build we've just disabled the Mono dependency.
Dan O'Brian
2008-09-16 22:39:25
Roy Schestowitz
2008-09-17 00:11:36
Dan O'Brian
2008-09-17 00:19:47
Adam Williamson
2008-09-17 06:36:35
Roy Schestowitz
2008-09-17 08:51:14
Roy Schestowitz
2008-09-17 16:59:15
You got my E-mail address right. Let me know when it's set up and I'll pass you all the stuff I've probably been sending to your /dev/null/ 'folder' over the past year. :-)
I hope you'll help me out here more.
Jose_X
2008-09-17 21:15:29
>> I've already given numerous examples where Mono is better than Microsoft's dot net platform.
Honestly, as large as dotnet is, could you imagine if mono didn't beat out msdotnet in anything?
Keep in mind that Microsoft has msdotnet AND mono. And with proprietary licenses (or free software licenses like Apache, MIT, BSD, etc) from Novell, they will have modified mono closed source, too.
FOSS always has that issue that it can be used by closed source companies as their entree. Most of the time, this just gives company X a little payback for investments in FOSS study/devel/whatever. Preferably, I contribute nothing to company Microsoft where they can gain particular advantage. I think mono falls into this bin, as I have said many times. Microsoft's market-distorting advantages are already too great. Linux and FOSS doesn't need more handicaps. [Why delay the inevitable?]
I think companies hooked on dotnet will use mono and supplement with msdotnet or use msdotnet with mono here and there. As long as msdotnet is significant (true on MS platforms), then mono will be on shaky ground. "Introspection" won't save it from lack of interoperability as suits Microsoft.
>> I've also given examples of where it allows you to do stuff that dot net doesn't.
And since Microsoft has just as much access to mono (to package it or extend it or whatever) as everyone else, Microsoft and their offerings have these capabilities as well.
>> People don't choose to use Mono because of the price.
I'm sure this is a consideration.
>> If you'd look on the internet, you'd find out that Microsoft don't charge for dot net (nor, infact, do they charge for the entry developer environment in Visual Studio, either).
All versions aren't free ("poor man's" version might be). No version is guaranteed to be free over time, eg, once the lock-in kicks in. [As Matt Asay recently wrote, "Discounts are nice, but discounts only make it cheaper to fall into lock-in." http://news.cnet.com/8301-13505_3-10043997-16.html ] Those companies that swallow the hooks of MS' more integrated and advanced offerings, will find mono to be of limited use (a shame since mono is open).
I know FOSS mono has benefits as does any FOSS tool, but if you are into dotnet, mono lags and falls short in integration/interop on Windows (most using dotnet are on Windows).
>> People choose Mono because of the advantages it has over any other available system (see: Linden Labs, et al)
It's good you can find an example of a company that might think this is true. [I do think I remember them stating they find value in mono.]
...
Sorry, I took so long to reply. Like I said, I am trying to cut back in order to work on some more interesting things. Microsoft can attempt to embrace and extend anything. They don't need mono, but mono helps them with certain goals and makes some things easier.
Make things easyeasier for Microsoft? Not me! If I ever find dotnet-ish needs, I'll look for or contribute to alternatives.
Those that support FOSS that don't think Microsoft is as much of a hindrance to FOSS as I do may not mind adopting mono as they find a need.
Baby In The Bath Water
2008-09-17 22:18:06
Uh... yes they are. Microsoft's .NET runtime and framework are both free.
Note: this comment was posted from Novell's headquarters.
AlexH
2008-09-18 08:17:02
The Mono compiler and class library is MIT, but the runtime library is LGPL and the tools are GPL. Your theory that " Microsoft has msdotnet AND mono [and] they will have modified mono closed source, too." just doesn't stand up to any factual scrutiny, I'm afraid.
The rest of your argument seems to be based on this speculation.
Roy Schestowitz
2008-09-18 10:20:47
Dan O'Brian
2008-09-18 11:14:04
Jose_X
2008-09-18 22:26:01
I was going by AlexH's comment (which makes sense) which included development tools that are not free.
Also, you have to pay for Windows (at least most of us do). If you pay for Windows, you pay for everything within Windows. That packaging is how IE ended up $0 (not) and the Spyglass suit. You can't use MSdotnet in a vacuum. You have to pay Microsoft for Windows/Vista. Same applies for all Windows products.
This was such a small part of that original post. I wish you guys would choose to focus on something else. You aren't getting too far with this minor point as is. [This original minor point was that mono had the effect towards msdotnet as a pirated Windows contributes to Windows mindshare and "addiction".. because you have a similar product in terms of what developers see and code up (investment in brain cells and code much less useful elsewhere), but at no charge. This was a minor point. Are we going to fetch down all prices of all MS products for all time?]
>> The Mono compiler and class library is MIT, but the runtime library is LGPL and the tools are GPL. Your theory that " Microsoft has msdotnet AND mono [and] they will have modified mono closed source, too." just doesn't stand up to any factual scrutiny, I'm afraid.
I have no idea what you are talking about. *Anyone* can distribute mono.
I also said that this mere fact means that MSdotnet users have access to it even if Microsoft isn't the one that directly gives it to them. This is an issue with all FOSS. One difference with MS protocol clones vs other FOSS is that it that it serves as marketing for keeping customers on the lock-in product. It also leads to many apps that don't work unless others adopt and follow Microsoft. Advantage Microsoft. I don't find it funny donating FOSS developer time to give advantages to Microsoft's closed platforms.
As I've said before, developing mono is not the end of the world. It's help to Microsoft and a failed opportunity. Eg, imagine the ODF folks throwing in the towel to follow OOXML just because Microsoft said that's the next greatest and latest. Sure, Microsoft can embrace and extend ODF (anyone can though not with the leverage of Microsoft), but let's move the game there to ODF instead of to OOXML and Microsoft's home court.
Mono has been in development for a very long time and no doubt it has contributed to dotnet uptake. If dotnet, "wins out" over other technologies, it is a setback. Leading is how FOSS will be able to overtake the monopolies, not by following. At the time mono was pushed, we (those contributing) took the follower role AND helped give legitimacy to dotnet when it didn't have it. Novell admits time and time again that Microsoft is here for the long haul, and they show through actions that they want to be as high in the Microsoft dominated protocol ecosystem pecking order as possible. Those liking dotnet could have forked in many places or worked with other groups on alternatives (if they really liked that model.. eg, over the existing JVM). Not a huge problem. Just another case of let's follow Microsoft. Novell is in good company. That is how Microsoft has been making their living for a long time.
I mentioned somewhere that it's possible Novell will break off with Microsoft, but that is their business. As has been said, tomorrow it can be any other company. Will I help companies that work to sustain the monopolist closed source platforms? No. Simple. Nothing complex. No evilness anywhere. Just my decision. I speak for no one else.
I don't believe in staying with bad technology. As I said earlier, if a FOSS supporter finds value in dotnet, s/he can work on similar alternatives. We already have alternatives, but you may want something closer.
To finish off with the quote...
Anyone can include MIT licensed code in their closed source products or link to LGPL code. I still don't see what you point was of mentioning this in an attempt to put down my statement. Maybe I again wasn't clear in explaining what I meant.
Additionally, no one (just about) outside Novell's (or Microsoft's) top management is likely in a position to say which of their code (eg, GPL code) gets or doesn't get licensed to Microsoft under alternative commercial licenses. No one can talk about the future either (not with certainty.. only with probabilities).[ I understand that you can't condemn Novell on what they might do in the future.]
..However, a dotnet app is easier for Microsoft to leverage directly, in terms of strengthening the value proposition of the Windows platform, then would be for applications written with Linux in mind.
>> It should also be noted that Mono's class libraries are also shared with DotGNU.
Noted.
FWIW, also, note that I don't support the FSF's dotGNU, but that project is a very small part of what they do.
Eventually, it might be a good idea to support dotnet. A shame if that becomes the case.
I'm optimistic though that despite dotnet, Linux will continue to move forward aggressively if not as fast. Microsoft can't match the giving away of all source code and build tools. We will hopefully tap into that advantage much more and lead as much as possible with GPL type code (with distributed ownership).
Microsoft will be able to change to all open source, but I won't expect it without them first taking a huge hit financially and losing much control. At such time, they will be less of an impediment to FOSS, so it won't matter. [It's unlikely they will change while retaining most of their strength, but it's theoretically possible, I imagine.]
Jose_X
2008-09-18 22:47:04
I am referring to *net* help (based on what conclusion I come to).
Roy Schestowitz
2008-09-18 23:02:23
paul (the unverified)
2008-09-19 01:10:53
Alex was completely strung out on a point of minutiae. We all understood what Roy is concerned about. It's more than just a little obvious, but your explanation bears reading for those of us that are still naive about how Redmond operates.
Occasionally, I've had to deal with people like Alex during my 20+ years in the business world as a manager. Their points might be valid enough, but they slow everybody down with their overwhelming desire to debate a point and prove themselves right. And in this case, I believe this mindset can put FOSS at risk because it comes off as if it's rational and analytical when in fact it's naive.
In business, when dealing with a competitive threat, you have to be aware of possibilities. It is not a bad thing to be suspicious. This is not like programming where you can point to a section of code and say it's good or bad and be certain of it because you can confirm it by testing.
This is an environment of innuendo and implication with no testing allowed. You must achieve a very delicate balance between suspicion and confidence. You don't have a nice safe well-defined dev environment in which to see if you're ideas are sound. You can't be certain if a strategy will pay off until the sales numbers are examined. And sometimes, then it's too late.
So when considering the FOSS community's security re the world's largest software manufacturer who has consistently used the Ex3 strategy, there is no way that I would encourage using mono. If someone can't see how this is an attempt at polluting the FOSS environment, then they can go buy as many winDOHs licenses as they have money for.
Thanks again, Jose.
Jose_X
2008-09-19 03:04:18
AlexH many times takes a stance you could describe as developer-practical. It recognizes that there is lots of "free software" already and Novell is contributing more to the pile. [Smartly, AlexH also points out problems in other companies' approach as a way to divert attention from Novell. Some of it is very reasonable criticism, btw.]
What I think is missing from this perspective is the view that the people who feel most threatened tend to take (I think): the pov of "users everywhere" and not just the pov of the lucky few developers (or users) that will be able to have all the source accessible to entertain themselves as they could possibly want/use in a lifetime.
Those of us with what I am calling the "users everywhere" pov care much that Microsoft's hold be broken. That FOSS is being created is secondary. FOSS sets the conditions of the field of play and is the source of great diversion (you may feel this way if you are a dev), but the primary driving factor is about end user (and developer) freedom across the board.
Developers may be split for all time between the virtues of having open and closed source, depending on how they are leveraging each one, but end users that don't make a living off coding likely would care much more about the empowerment they would have in a FOSS environment [most still aren't at a point to see this]. So most users likely much prefer to break monopolies, opacity, lack of control, lock-in, etc, if at all possible by having access to FOSS that works and is practical.. over simply knowing that FOSS exists but is out of reach to solve their immediate problems. A dev could have an orgasm with impractical FOSS, but most people would like to have the freedoms of FOSS as part of the software they "are stuck with." It's important that FOSS not be developer-fun only but user-practical as well. And note I am not talking about having sw that "just works" (like a Mac) as being the ultimate goal. I am specifically saying that the openness brings with it some very valuable items, but it must be usable (interop, quality, usability, etc). I suppose users want to have their cake and eat it.
AlexH may not agree with this depiction, but that's what I conclude when, in defending deals with Monopolysoft that help sustain Monopolysoft, one effectively defends the continued existence of Monopolysoft. Maybe AlexH doesn't think Novell is helping Monopolysoft, but, besides ignoring certain types of arguments, we'd have to believe that Ballmer and staff have been having a lapse of clear thinking on their part for all of this time (considering they extended the voucher program). Maybe it's a huge bluff by Microsoft, some might reason. Maybe FOSS is so powerful that a little eating of the pie before dinner won't really hurt anyone very much. Or maybe Microsoft is so powerful that FOSS has no real chance for the time being. Or, more precisely, maybe Novell is such a small player that they can't possibly do much to tilt the pendulum in either direction. Or maybe Microsoft, by embracing FOSS, will become good and wholesome and all problems and conflicts will be solved (never mind that their primary products have more lock-in, less transparency, etc, than ever). Maybe users really don't care about the benefits of being able to rely on FOSS for any need. Maybe users want nothing more than software that works. [Never mind that this is a trap argument because closed software never really just works and solves your problems because humans are complex beings who among other things really value freedom of choice and control, two things taken away if any closed source vendor had his way.]
AlexH and anyone else can do their thing career-wise, but it's up to those interested in the "users everywhere" goals to draw attention to and challenge attacks on users everywhere. On some issues we are friends ..on others we are enemies. That is life.
PS: Above I said, "but [FOSS] must be usable (interop, quality, usability, etc)." AlexH backs FOSS criticisms that could be seen to help improve FOSS. And AlexH backs "interop". The criticisms he backs should be done tactfully whenever possible since doing otherwise can serve other purposes (criticism doesn't bother me too much but context may call for a balanced explanation). More importantly, "interop" with Microsoft is an illusion or a short-term gimmick to help divert business in a way beneficial to Microsoft. It's true that *maybe* Novell is not doing THAT much that is wrong, but I'd rather play it safe and not underestimate Microsoft and the inside knowledge and tactics they have at their disposal nor the demands stockholders can place on Novell at any point in time if Novell sets its table properly (they have added significant backing and resources to technologies that benefit Microsoft significantly in relation to everyone else). It is a shame because deep down I think some Novell/Suse folks and those on the other side really would like peace. But enough likely don't care. Just like the Microsoft employees that want peace but overall are more than willing to continue contributing to Microsoft lock-in: developer friendly (and exclusive access high inducing) when you have access and make the bucks, but not much fun to ordinary users (including a threat to a free society and privacy). PS2: Darn, another reply that got out of hand in the length and obscurity department. It's late for me tonight. Off to sleep I go.
AlexH
2008-09-19 07:06:57
The basic point remains: the people criticising Mono here have very little idea of how it works, what it contains, and why people choose it.
You can continue to hold the point of view of "It's a poor man's .net", but that's fundamentally mistaken, and you're just going to get more frustrated as Mono take-up increases.
I know it takes effort to come to a more sophisticated point of view, but that would then allow you to understand why Fedora are not happy with Moonlight but are happy to ship Mono.
Roy Schestowitz
2008-09-19 07:26:42
See this.
zinka
2008-09-19 07:38:06
I don't criticise Mono. You're right, I know nothing about it nor I want to. What I do care about is to make it completely out of my little world, with a simple switch, make variable or whatever. I respect your point of view, I know you can respect mine.
AlexH
2008-09-19 07:59:41
Absolutely; it's entirely your choice what software you run.
I don't mind people choosing not to use Mono; that's their choice. The only problem I have is with people who criticise the project unfairly, especially when they have a habit of bashing free software developers and applications not because of what they do but because of who they are. (the Novell OOXML vs. Sun OOXML hypocrisy is particularly obvious).
Roy Schestowitz
2008-09-19 08:21:28
AlexH
2008-09-19 08:26:21
Roy Schestowitz
2008-09-19 08:28:35
AlexH
2008-09-19 08:55:06
You can lead a horse to water, but you can't make it drink. I don't think I'm going to have much more success. Your beliefs about OOXML are based more in faith than anything else.
Roy Schestowitz
2008-09-19 08:57:28
OOXML is like Mono -- technical and legal baggage...
AlexH
2008-09-19 09:05:09
I've made this argument numerous times before: the main reason people are able to use OpenOffice.org is not that it has great support for ODF, but because it has great support for .doc. Anyone who thinks that OOo ignoring the default format of the latest Microsoft Office is somehow going to convert users to ODF is living in cloud cuckoo-land.
And, at the end of the day, this is an argument that has run its course. Office is getting some form of ODF support, which will not be perfect but will certainly be good enough, and ODF and OOXML will be slowly merged over the coming years. Microsoft is a member of the ODF TC and has already contributed to the spreadsheet work.
Losing sleep over OOXML is really missing the point.
Roy Schestowitz
2008-09-19 09:18:03
It is very much related. It's about doing things 'the Microsoft way' using their so-called "IP".
We've seen a lot of talk, but not much walk. Based on what I've been hearing (accompanies by evidence), Microsoft will treat ODF badly. it's all just a PR charade.
zinka
2008-09-19 09:27:33
you may be right, but you may also be wrong. I won't check it and Alex has his bias too. Plus it all depends on context and the interpretation. A method demonstrated by Jose above gives favourable results, please use it in your strategy.
We all live in our little nice worlds and pretending we can read, check and prove more than trivial is unreasonable. If opponent wants to prove his reputability, he can not attack you personally, so you should mix citations and your impressions. Don't talk about facts, that aren't trivial. Maybe he won't fool you but he will fool bystanders and even though you are right, the conversation will give a wrong impression to them.
AlexH
2008-09-19 09:28:48
As for ODF; the TC's mailing list and working materials are (mostly) public.
Roy Schestowitz
2008-09-19 09:46:10
AlexH
2008-09-19 10:43:53
I'm not going to defend their general development practice, but I have to take interest in IE because I'm a web developer. It could be much better than it is, but I'm not going to criticise them for the improvements they make to it to better support web standards - which is precisely what you're doing it.
If you want to criticise Microsoft, criticise them for not participating in WHAT-WG effectively, or for not supporting SVG. That's fair criticism. Criticising them for using CSS vendor extensions isn't, though; it's nonsensical.
Roy Schestowitz
2008-09-19 10:47:30
AlexH
2008-09-19 11:02:27
But that's not quite the point anyway. These "extensions" are features which are being designed by the CSS committee in the CSS 3 process. What would you rather Microsoft do:
1. Not participate in CSS 3 2. Participate in CSS 3 and use the CSS 3-specified names for the attributes 3. Participate in CSS 3 and use vendor extensions.
Pick one from three is easy, right?
paul (the unverified)
2008-09-19 13:58:20
As you've pointed out and so many of us have agreed, "it's about choice."
If you choose to accept anything from m$ or Novell, that's your option.
I choose to be suspicious of anything associated w/Redmond. I've watched their tactics over the years and I've watched as they've applied the Ex3 strategy. In my opinion anything that's associated with them should be suspect. How many times do we have to watch them destroy another company or pollute another piece of software before we become cautious?
My background is in management mostly in the marketing area with a great deal of involvement in a wide range of technology. I've seen these methods used first-hand by competitors.
Roy's suspicions and criticism are completely justified and if you don't agree, I guess there's no point in prolonging this comment thread.
As you've pointed out, you're a developer. As I've said before, I've worked with people like you during my career. You have a very well-defined and analytical thought process. However, what Roy and I and others are concerned about exists outside that realm.
This is not a well-defined area. Nobody comes right out and admits that they intend to pollute a developer base or they intend to freeze the market.
This is about competitors' business methods over a period of time. Things might appear appropriate on the surface, but if a person has been paying attention to history then one has a better basis for forming an opinion about someone else's intentions.
I think this is one of those right-brain/left-brain things.
If you like Novell and want to support their products, please do. If you like things like mono regardless of their origins and you want to use and promote them, please do. Once again, it is about choice.
The criteria that you use to qualify whether or not something is acceptable might make you feel like everything is safe and open, but I've seen enough that I'd prefer to keep things like mono and companies like Novell at arm's length.
Roy Schestowitz
2008-09-19 14:04:56
When you find the time, I urge you to read how Microsoft planned to destroy Java. Yes, Jim Allchin wanted to "piss" on Java.
Development experts suggest that in the near future there will only be Java (GPL) and .NET (multiple-times convicted monopolist). Whose side will you embrace?
AlexH
2008-09-19 14:06:57
This isn't an issue of choice; this is an issue of honesty. I'm not arguing people should use Mono; I don't really care what decisions other people make.
AlexH
2008-09-19 14:10:57
I know the history of Java, you don't need to teach me to suck eggs.
I don't know which "development experts" you're quoting, but it's not going to be a choice between Java and .net any time soon. When it is, I can answer that question in a non-hypothetical manner.
In the meantime, care to enlighten us as to whether or not MS should implement web standards?
Roy Schestowitz
2008-09-19 14:14:05
AlexH
2008-09-19 14:14:59
Roy Schestowitz
2008-09-19 14:27:04
AlexH
2008-09-19 14:33:53
You talked about "Linux is a cancer", anti-Linux advertisments, their pretend commitment to web standards, Silverlight, racketeering, and called me "nativ" for believing Microsoft (which I don't).
None of that is in dispute, though.
The question is about the actual implementation. You criticised them for using CSS vendor extensions. What should they be doing instead?
Roy Schestowitz
2008-09-19 14:46:38
"You would be naive, Alex, to believe whatever Microsoft tells you. To make matters worse, you try to spread this ‘trust’, imposing it onto others."
It says would be. I am not so impolite.
AlexH
2008-09-19 14:55:19
You're still avoiding the specific question on CSS web standards.
Jose_X
2008-09-19 20:25:37
From the blog http://blogs.msdn.com/ie/archive/2008/09/08/microsoft-css-vendor-extensions.aspx >> As you may know, all browsers have a set of CSS features that are either considered a vendor extension (e.g. -ms-interpolation-mode), are partial implementations of properties that are fully defined in the CSS specifications, or are implementation of properties that exist in the CSS specifications, but aren’t completely defined. According to the CSS 2.1 Specification, any of the properties that fall under the categories listed previously must have a vendor specific prefix, such as '-ms-' for Microsoft, '-moz-' for Mozilla, '-o-' for Opera, and so on.
My question then is, are extensions part of 2.1 or 3.0?
[I'll look it up if I have to, but I figured you'd know.]
If it's from 3.0, then how can it be justified to allow 2.1 to have them unless 2.1 doesn't exist yet and gets created with the extensions work of 3.0 committee.
[Again, I'll look it up if I have to, but I figured you'd know.]
AlexH
2008-09-19 20:29:59
The way that CSS works is that new features are kicked around in the working group, and they put together a draft specification. That's where CSS 3 is at right now.
Vendors are trying to implement those features, but they're working to a draft spec., so they can't just implement them as in the spec. Therefore, the use the vendor prefix, so that people can test the compliance with the standard without actually conflicting against the standard.
Pretty simple, really.
Baby In The Bath Water
2008-09-19 20:42:51
Note: this comment was posted from Novell's headquarters.
Roy Schestowitz
2008-09-19 20:45:06
Jose_X
2008-09-19 21:05:47
You are speculating about people. Heed your own advice: >> While it may be interesting to speculate about people at length, it doesn't help the discussion.
Comedy aside, you aren't saying anything here except the greatest of generalities. Can you point to something said specifically that is off (I'm thinking of things *I* may have said).
BTW, what is mono technically beyond a VM with a general language API (ie, a mapping from a canonical rep to each of the supported languages). Yes, there are details to the VM to allows the various languages it supports to be supported. Yes, there likely is a comprehensive API not too dissimilar from what you find in the Java world, except possibly with the heavy Microsoft Platforms bias and less developed. But in a nutshell, what am I missing? I have not looked at mono, but I am familiar with J2SE at least whatever version was out some years ago (before the 1.5/ 5 makeover). I'm also familiar with the server side but less so (again, the versions of some years' back). You can use this background info on me as a reference for a comparison if you want and can do so.
Can you see how the Parrot VM might (not) be a suitable base to accomplish most of what mono accomplishes? [Just gloss over their PVM Faq and maybe read a bit more. That's mostly what I know about parrot.]
Can you compare and contrast with the JVM? No need to go into the finer points of decisions made to support feature X unless feature X is that much of a killer feature.
Why do people use it, you ask? Well, some like the technology. Follow a given rule for you language of choice (ie, the dev platform/tools do it for you), and you get automatically supported bindings for every single language in a well defined way. That is nice. It saves the manual process of creating bindings for perl, python, etc. That's not that much of an issue in the large FOSS world, but it would be for a small outfit. And we certainly have patterns for creating the bindings. If we have patterns, those doing this likely have automatic binding generators.
OK, there might be neat support for some other things (please specify so that I don't have to guess). There may be gains in space and or efficiencies somewhere.
You usually aren't going to beat C in terms of the end product (using support tools, many eyes, etc), but that is more time consuming for a first draft. Sometimes that is not a problem because the community will later on build the heavy duty version (to follow the scripted short-term solution).
I am not criticizing dotnet technically (again, not having actually looked at it and going only by the glossy brochure). But why not support a different VM? Why was this not done years ago (since now mono is a bit developed)? I have heard the arguments that we need to keep up with Microsoft and "no longer will Linux be second hand citizen"? But really, why dotnet? Did we go for the Microsoft hype from a few years' back? Did those that worked on it already have a business model in mind (perhaps a la current Novell path)? Were those that worked on it unable to resist the temptation of an already laid out set of specs and/or the attraction to following Microsoft? Why?
Please don't wave us off on how we don't understand mono if you can't answer these basic questions. I am not trying to put anyone on the spot, but it is a little bothersome to be waved off with nothing to go on. Just say business is business if you want to. I say Novell can do its thing, and I can boycott or maybe not. No prob here.
Jose_X
2008-09-19 21:08:25
AlexH
2008-09-19 21:13:48
CSS 3 is in development, and these are the features that they are developing. CSS 3 is not a finished specification, though.
The vendor prefixes are part of the CSS spec, and ensure that they can add these new features without conflicting with the CSS specification. So with the vendor prefixes, they are valid CSS 2.1. But they're developing CSS 3 features.
They're "extending CSS 2.1" to the extent that they are developing CSS 3 features.
AlexH
2008-09-19 21:23:00
I'm going to try to address the main point of what you've written. Let's talk in terms of Java, since that seems to be more readily understandable to everyone.
You have Java the language, Java the bytecode, and a standard library.
Now, these are effectively "interfaces" but they don't make any implementation decisions. You have the JVM as Sun ship it. You have gcj. You have the Android system, which is a fundamentally different design being stack-based rather than register-based. And obviously, you have Mono, which can run stuff via IKVM.
Parrot could well be sufficient to run .net; aside from introspection features (which Java only got recently), you could easily have an IKVM-style setup which allowed it.
At the end of the day, the actual VM engine doesn't really matter one jot. Mono has two VM engines of completely different designs alone! And the main one compiles code into native code as Hotspot does.
Virtually none of the interesting stuff is the platform code. If you haven't already, I highly recommend cgwalter's essay on a single free software VM.
AlexH
2008-09-19 21:24:22
Mono is a good enough VM, Java is a good enough VM, and the thing in Android is probably good enough.
Baby In The Bath Water
2008-09-19 21:33:56
The amount of research and development that went into designing .NET was huge and Microsoft had a lot of the best minds in the field working on it. Does the Mono team have those kinds of things going for it? Probably not.
Besides having a a design to start with by implementing the .NET specifications, they also get compatibility with Microsoft's .NET (which is a bonus). There are a lot more Windows developers out there than there are Linux developers. It seems to me that if it is made trivial for them to write applications that work both on Windows and Linux, then Linux users win because they get a wider selection of software to choose from.
The biggest reason a lot of people I know stick with Windows is because of the apps. They won't even go Mac even though they love the interface (ugh) because the software they need doesn't exist for Mac.
As far as "did they fall for the microsoft hype?" - I can't speak for why the Mono team started developing Mono for certain, but from what I've read - they chose to implement it because they got tired of writing large applications in C and were in search of a better platform. At the time, Java was not free (and as I discovered a while back, some of the Mono developers were the creators of the GNU Classpath project), so it seems likely that Java had been considered.
Why didn't they use the Parrot VM? That's a question you'd have to ask the Mono team, but quite possibly they weren't aware of the project; maybe the parrot vm wasn't a good fit (at the time?), etc.
Note: this comment was posted from Novell's headquarters.
AlexH
2008-09-19 21:43:09
Jose_X
2008-09-19 21:48:46
...
http://www.w3.org/TR/CSS21/syndata.html "Section 4.1.2.1 Vendor-specific extensions"
"Keywords and property names beginning with -' or '_' are reserved for vendor-specific extensions."
This section itself doesn't describe everything (eg, conformance for an implementation is not addressed here).
Also, note the following:
"Authors should avoid vendor-specific extensions"
So Microsoft is doing what they have to do, according to the spec, in order to add their own "keywords" or "property names" (assuming I'm not missing anything).
AlexH
2008-09-19 21:51:41
Sort of, but still not right. They're adding CSS 3 properties for people to test. They cannot add those with the CSS 3 names because that would conflict with CSS 2.1.
So, they prefix them with a vendor code: this allows them to develop CSS 3 features without conflicting with existing CSS.
Jose_X
2008-09-19 22:11:12
FWIW...
I have no clue what IKVM is (I'll have to look it up).
You gave absolutely no reason why parrot can't work (as you mentioned). It is free software so could be changed, but I won't buy it until I have a reason. I'll take a look at the article you linked to see if it gives the clue you are withholding.
Point out otherwise, but I believe Java has had introspection since before dotnet existed or at least it has since version 1.2 if not earlier (not sure if dotnet existed then). If you are correct wrt to dotnet's timeline (I don't much know the history of dotnet), certainly Java (the standard and Sun's version) has at least had introspection for something close to a decade and almost certainly before mono got it implemented.
>> Now, these are effectively "interfaces" but they don't make any implementation decisions. You have the JVM as Sun ship it. ... And obviously, you have Mono, which can run stuff via IKVM.
You are confusing me. You can't mix VM from different unrelated standards. Maybe what you mean is that you can implement one VM to work over another, but I doubt dotnet's VM follows the same definitions/interface as Java's one (I don't know dotnet).
Anyway, I was expecting more from you here given how you said we didn't understand dotnet/mono. If you don't want to share, just don't criticize. As far as anyone here can tell, you don't have too much of a clue yourself beyond vague generalizations. [I'm just saying based on what you have posted -- isn't that how you judged us?]
Jose_X
2008-09-19 22:18:22
When you say something is not correct, you should point out how it is wrong.
I think what you are saying is that Microsoft is adding as their extensions CSS 3.0 trial properties. This doesn't contradict what I said. It simply adds new information.
For those following along, AlexH is saying that Microsoft's extensions are innocent features-in-testing from the yet to be fully specified/ratified CSS 3.0.
So to repeat, Microsoft is doing what they have to do to change CSS 2.1 while not violating the spec.
AlexH claims that the (only) extensions they are adding are items being considered for CSS 3.0 and (presumably) nothing else.
If all of this is true, there is at this point not much to get upset over unless you want to practices ;-0.
Jose_X
2008-09-19 22:58:08
Microsoft is not an ordinary player. Re-inventing their wheels, especially when they wave patent threats around and work from a closed source monopoly position, is a very good idea. We re-invent wheels in real society when necessary. You just don't want to do it when the existing wheels will do.
>> The amount of research and development that went into designing .NET was huge and Microsoft had a lot of the best minds in the field working on it. Does the Mono team have those kinds of things going for it? Probably not.
This excuse is weak unless you don't mind using that wheel. People reinvent wheels all the time. Microsoft leveraged much existing material. Don't overestimate their minds. FOSS is not supposed to work, remember -- a ragtag bunch of hippies scratching themselves -- but it does.
>> Besides having a a design to start with by implementing the .NET specifications, they also get compatibility with Microsof's .NET (which is a bonus)
Not really possible.
Not to mention this is inconsistent with Novell's (inaccurate) position that they are achieving interop because they are working closely with Microsoft, unless the mono people never expected to achieve (essentially impossible) interop except through special deals and contacts with Microsoft. If the mono people believed this, then this is as wonderful a reason as any to reinvent the wheel unless you want to run a Microsoft rat race (and risk much time and money much as IBM did with OS/2). If the mono people don't believe this (ie, if they believe that you *can* achieve interop straight from following the spec), then they (would be fools and) would be contradicting Novell's position that they have an advantage over all other implementations because of the deals they have with MS.
>> It seems to me that if it is made trivial for them to write applications that work both on Windows and Linux, then Linux users win because they get a wider selection of software to choose from.
Again, interop is not achieved from the spec (ask Novell). You need to have access to the entire source code (and then only with the assumption there are no bugs).
The reality is that full interop is not really possible but some % of it is possible. Of course, if you think Microsoft will help that percentage be very high and cover everything of significance or else offer money to the customers when mis-matching occurs, I have some land in Florida....
When FOSS apps fail to interoperate, have bugs, etc, you have the source code right there. There is good faith among most FOSS developers (not that faith is needed when the source is right there). These things are not only not true with Microsoft, but Microsoft has every incentive to be sloppy and break with the "best" interpretation of any given standard since that would help secure their monopoly position.
Working on mono seems to me as practice for trying to get a job with Microsoft. The whole premise to trying to interop with Microsoft is broken.
"What about OO.o .doc formats," AlexH will say? That is most certainly not a perfect or complete conversion by any means. Fortunately, for adequate subsets of MSO, it can do a good enough job.
But there is a real difference. If text is a little off on the page, you can still read that and fix it perhaps. You may not even notice in some cases.
If a bit is off within a long instruction stream, the whole system might come "crashing down" (ie, interop broken perhaps horribly badly leading to nothing useful).
Now, it's very easy to be off by a bit somewhere, especially when one side of the conversation has real interests in having those bits be incorrect here and there.
Also, the bit thing also can apply to documents to the extent off-by-a-bit can lead to complete garbage (eg, change a single random bit on a .tgz file and likely you will get garbage). To this end, OOXML might be a format more "properly" designed to make it easier for such garbage to result from such a small error. OO.o tries to find all the things it needs so that .doc work. In some cases, they fail a little, in others (probably more so with macros and instructions), they fail much more.
[For those not following, "bit" is the term used to describe a single on/off entity within a computer.]
>> Why didn't they use the Parrot VM?
I think parrot was new as well, but the question isn't why didn't they use parrot, it's why didn't they join a group to build parrot instead of starting mono? Of course, you already gave a partial response to that (>> too much trouble to re-implement that wheel).
Don't mean to be feisty in this post, btw, or to appear to be attacking you. It's a bit of frustration on my part. The interop thing is exactly why people spend lots of dollars and time playing a never-ending game of catch with Microsoft (a Rat Race).
Deal with a closed source monopolist? No no.
[Mono can be useful without interop with MSdotnet. I don't deny that. In earlier posts, I explained why I wouldn't take the mono path, but different strokes for different folks. ..And maybe in the future some day I will be using mono! .. ah-ah- ah ahh aaaachew... sorry.]
Baby In The Bath Water
2008-09-19 23:43:07
You don't actually need source code to get compatibility, you simply need to write unit tests and make sure they work on both systems.
From what I've seen, Mono has a LOT of unit tests, more than any other Free Software project I have seen.
Note: this comment was posted from Novell's headquarters.
Jose_X
2008-09-20 00:21:34
Don't be silly. Why does having 10 unit tests matter? Isn't 1 enough? Maybe 1000000 is better? Why?
A unit test simply shows that that particular test works. It says nothing about what wasn't tested.
More importantly, however, is that you can't measure the behavior on Windows because it is not transparent (unless you are running it so that every single instruction is trapped, recorded, analyzed, compared, while every single memory byte and byte on the drives are similarly recorded and tracked for each such instruction).
I know you did not do this. Possibly a "Hello World" program would take at least millions of such (eg) x86 instructions. Not to mention that hardware on the PC bus would also have to be tracked (including opaque graphics cards and motherboard chips etc).
Look. I am saying something that is not supposed to be an issue among friends, but it is when Microsoft gets together with hardware vendors and chooses to mess things up. And they don't have to get together with any hardware makers. Windows is plenty. Windows is opaque unless you literally do what I just described above to in effect reverse engineer Windows. This is not a task humans or their computer programs are likely to do anytime soon for such a large blob that is an OS like Windows. [How well we succeed depends on how much or not Microsoft wants to hide their tracks and succeeds at doing so, though, in any case Windows is a monster of a program in size and complexity.]
If I have lost you, let me try again with an example.
How do you define "something works"? You can look and study the code and believe that X should happen. Then you might observe X on both platforms and conclude that the two implementations work the same. And perhaps they mostly do.
But what if when you study the code, you think X yet on Windows Y happens which is behavior that is subtly different, eg, the registry is modified so that on next log in you app fails to work. Maybe you observe Y as if it were X because you weren't measuring too carefully or tracking instructions, memory, nor the registry (btw, you can't track memory the OS occupies on x386 and above unless the OS allows you and no OS does this.. or if you run within the OS).
I can re-explain if you want. Just ask.
This crazy things I am talking about matter because it's ridiculously easy for Microsoft to pull off (just by being sloppy, in fact), and means that your app might end up doing or lead to anything in reality (eg, phoning home to Microsoft behind your back). Another example, your next OS call to allocate a memory buffer simultaneously corrupts memory you were already using.
We can achieve some level of interop (a high percent), especially, if there is no intelligent/concerted effort to sabotage. Otherwise, you can't really know/measure.
If you trust Microsoft for all your applications for all time, go ahead. I do not. I don't even trust their (superhuman) ability to code bug free or make specs that are completely unambiguous, consistent, fully specified, etc. I certainly don't trust their intentions or business plan.
You are talking about interop at a very high level for toy programs. The reality is that MS lock-in will never be solved except in pieces and even then we can't be sure. We play the rat race and our software is never quite just right with their stuff. This is especially true for complex programs.
So in practice things might work most of the time "good enough", but that can change the moment Microsoft feels threatened (and they always feel threatened). It's especially easy to thwart your app in predictable ways if you reveal your source. Also, Microsoft likely always gives you something subpar so that you can't compete on an even field with their integration-apps.
As for performance, that is not really an issue for toy apps with today's computers, but you might be using a lot more CPU than you should.
Was your app a toy? Did you even test everything you can see? Do you know if the exact input string "http://www.google.com/X/Y/Z" won't translate to "http://www.microsoft.com/A/B/Z"? Have you tested every possible input string? .. I am just getting started.
If you insist you can have interop, I did not make myself clear above, but I don't know what your background is so don't know how much more to explain without you asking me first for more examples.
>> From what I've seen, Mono has a LOT of unit tests, more than any other Free Software project I have seen.
I have no idea, but surely you haven't tested everything under the sun. For arbitrary inputs (eg, mouse clicks on screen or typed strings), this would constitute an infinite set).
Mono might work if you guys separate from Microsoft's lead. This way, you can at least have as much confidence as you want/need whenever you run the app over a FOSS platform. You would also find out quickly if Microsoft will sue.
Try it and see if Microsoft comes after anyone. Ditch Windows, for security, if for nothing of what I have said in this reply or if you don't care about privacy.
BTW, I don't pretend that FOSS has behavior (especially on a desktop) that anyone is likely to completely predict, but being able to check up and verify or being able to find the problems is priceless.
As you can see, for practical "good enough" results, Microsoft platforms are usually fine.. at least until it's time for an upgrade.
[I *may* not post again until earliest tomorrow.]
Roy Schestowitz
2008-09-20 00:41:44
Dan O'Brian
2008-09-20 01:18:13
2. Jose: I'm guessing what BITBW was referring to was that you write a bunch of tests that check the behavior of something in a bunch of different situations. From that, you can deduce how something works. You then go and implement something else with the same API, and you can very effectively mimick the behavior.
This is called reverse engineering.
Jose_X
2008-09-20 01:52:11
The people wanting a good standard would strive for a quality product capable of allowing perfect interop merely through the study of the standard, at least this would be true in the ideal case (eg, no implementation bugs, no spec ambiguities, etc).
I don't believe English can be made that precise in general. OASIS is working on testsuite specs for ODF (tests are useful if on top of a solid standard). OO.o, KOffice, ... source code are available to enable interop with those particular products.
Does MS reveal source code? Well, they should reveal some for $$, but even here there is no way to verify what they showed you is what they ship. You also don't have access to the source code of their toolchain. This means deviations in their compilers from the standards will lead the code they showed you not to work as you would expect. Finally, I am assuming good faith on their part since they can play many sorts of games even through revealing source.
Everything about OO.o is open source (all functions calls all the way straight into the heart of the kernel).
Everything about MSO carries a red flag, from the lack of source code all the way to the expected motivations of the monopolist vendor.
Jose_X
2008-09-20 02:14:02
And my answer was that you can only feel "good enough" comfortable about what you specifically tested. You can take your chances with everything else.
In practice, ie, among friends, you can get great coverage if you know what the behavior is supposed to be and you test boundary points and various key data in general.
With Microsoft software, the spec is not what their software is supposed to do. What is their software supposed to do if not the spec? What their software is supposed to do is something only Bill Gates and I know, but I'd have to shoot you if I told you ;-)
Let's talk a second about continuous well-defined (etc etc) math functions vs. a computer program. If you know you have a linear function in mathematics, you need only know two test points and then you know everything. That is because math defines a line perfectly that way. A discrete computer program OTOH can produce any arbitrary map from its inputs to its outputs. It's the math equiv of an arbitrary mapping from an infinite domain to the corresponding infinite range. This means that if you don't measure every output for every input, you could leave holes behind that don't conform to the model you are reverse-guessgeneering. In other words, a "line" function in the computer can plot all X's to the proper Y's except for 34.32. Why? Because that happened to have been the value the developers of the program decided to use for trap/secret bypassing backdoors or to execute a set of secret extensions... or to create rarely occurring misbehavior for the interfacing third party app... or because of a bug.. because they want voting tallies to reverse and start counting backwards when some point is reached.. why? I don't know, but the point is that anything like this can happen.
If Microsoft could be assumed to want to follow the spec at all costs, we would not be here. They would not be in court every day of the year, and they also would not have a monopoly. Bill Gates would have much less money. ETC.
Show me a single third party product you think works identically to any specific MS product in every single respect at all times. .. oh, time! I was just looking above at space mappings at a single point in time. You mean that the "tricks" and traps can change location and behavior over time, too? [BTW, list such an app for the record, but I won't make an attempt to use it to disprove you. Surely, you can find 10 or 20 such clones, right? Surely, reverse engineering is an art.. I mean, a science many practice, right? I don't think I can find or create such apps, but I think you have that magic reverse-engineering touch. I look forward to your submission. Surely, people would not keep trying unless several had succeeded before among the thousands that had tried.. unless of course there is money involved for continuing to try.]
Jose_X
2008-09-20 02:50:27
To be fair, I should ask, "once we find a mistake, can we fix it?"
With FOSS we also will find mistakes (in many cases anyway), but once the bug is diagnosed, we can fix it and usually very quickly. We have the source. This is important not just to find little bugs but to verify that very strange things or violations are not being attempted or lie in wait (eg, the closed source "time-bomb" that is not disclosed and maybe does something even more nasty).
That reverse-engineering sometimes does a good enough job (within a limited context), and many times this is not even true, is because developers don't usually spend time crafting tricks in their code or into the toolchain. Microsoft has a multi-billion dollar per month revenue set of monopolies to protect. They have also shown to have gotten into that position because of their willingness to stretch the law and the boundaries of ethics. Use your imagination to see what they might do with some of that money. Consider too that it only takes a few developers working at a high clearance level to adjust the code the others do (or perhaps automatically through the in-house tools).. "to foil reverse engineering of our IP."
On boycottnovell, I've seen a 1988 quote of Gates apparently wanting the OS to isolate third party apps for misbehavior. Back then computers, the Internet/networking, Microsoft's software, their revenues, their size, etc, were a small or even tiny fraction in magnitude of what it is now. I think this was still the large-floppies-in-a-bag world with sparse online connectivity and low bandwidth. Microsoft was very small.
Fast forward to today many years and experiences later. Much has changed, including what is at stake for Microsoft and the many times they have managed to have their way with the law. Even simply coding in bugs is enough to foil reverse-engineering if the bugs are well placed (not to mention that bugs, ambiguous specs, tired employees, etc, offer plausible deniability).
It's very easy to foil apps if you control the OS. I might eventually get to doing a distro that does just this (but with source code).. it tracks you, it collects data, it gives variable quality hooks to the apps isolating each app individually.. Then maybe have people use the distro and through online updates change the behavior based on some secret formula (ie, "which project forums treated me well"). ... :-P
The problem: (a) Do we know what the software is supposed to be doing? Yes for FOSS or honest closed apps. No for Microsoft sw. (b) Is there an active effort to foil spec'd behavior and reverse-engineering? No for FOSS or honest closed apps. Yes for Microsoft sw.
This is why testing and reverse engineering is likely to miss many problem areas. And Microsoft has lots of money to help build their "protections of IP."
Also, in practice simply by keeping secrets and using other levers, Microsoft can come out ahead. They likely reserve their greatest tricks when they target specific apps or groups. I can't stand competition where you are only safe so long as you don't pose a threat or aren't doing a very good app.
Jose_X
2008-09-20 03:38:12
Consider a company, Monowallow, that controls servers of a certain type, builds corresponding client apps that compete with third party client apps, and publishes the protocol specs to the server-client interactions.
A particular call/message accepts various parameters including a "quality" parameter that has a few values, eg, OPTIMIZE_FOR_SPEED, OPTIMIZE_FOR_FAIRNESS, OPTIMIZE_FOR_PAYLOAD_SIZE. There are also two private/undisclosed values used internally and a few repetitions of these but using older slightly buggy implementations within the server (for "backwards compat").
The OPTIMIZE_FOR_FAIRNESS is defined in the spec, but it's a bit ambiguous. Examples of use are given, but this doesn't solve the confusion. Most third party devs avoid this value.
Monowallow internal devs use the 2 undisclosed calls. For these, the semantics and range of values for the other parameters also change, perhaps subtly. Maybe a "size" value is actually a shifted and scaled value and maybe a few such values map even more strangely. Undisclosed values give performance boosts, new functionality, etc.
The internal devs also use a set of C macros that map to the integral values; however, there is a "typo" in the macro files used internally relative to the published spec. The internal developers always use the macro names so never know the actual numbers except in passing when they debug (or the tools they use hide the numbers). The various levels of macro indirection led to the bug/typo so that the OPTIMIZE_FOR_FAIRNESS is implemented as OPTIMIZE_FOR_SPEED and vice-versa. This means the calls will not do what the public api say, yet virtually no one, even internal devs, will realize this. Since these are optimization hints, it's not a big deal except for perhaps servers under pressure. Here using the wrong optimization will have some noticeable penalties. Those doing reverse-engineering along with profiling may catch this bug (and maybe keep it as a company secret for market advantage). Others will likely try to use OPTIMIZE_FOR_SPEED frequently but instead get the performance characteristics of the confusing OPTIMIZE_FOR_FAIRNESS and never realize it.
Also, you can use your imagination as to why there will be good and buggy versions of the same code in there. The buggy was simply bit rotted in some cases. Maybe a small boundary error occurs in the other (so some packets might be dropped unnecessarily). Maybe some of the shipped developer tools (Monowallow also sells devel tools) map to one set of quality implementations or another based on who is receiving the tools (eg, a tier 2 or tier 3 customer or the community vs the deluxe tools).
Maybe some of the values in the actual published spec map to buggy implementations, so that by default everyone uses a less than efficient/correct call for some values. Maybe the error is only noticeable in conditions that occur infrequently. Also, we have old API vs. the new and improved API. The old have problems to discourage use (bit rot might mean that only 16 bit sizes are used where nowadays you are likely to find a larger size). OTOH, the new API's might do DRM.
Also, the undocumented values used internally lead to superior performance but only for internal client/server interactions since these server calls make assumptions that only client apps made by the internal developers would also make (eg, info known already from the OS or from out of band from initialization). Others that try and use these calls (eg, they heard from a friend who.. or they were reverse-engineering and noticed better performance at some time) likely will get corrupted data at some point.
There is a ton that can be done, but this should give a flavor of how easily it is to naturally find ways to give handicaps to outsiders and benefits to insiders while partly hiding your tracks and even having plausible deniability should some of this ever get discovered.
Really, this are small items. Anything can be done when you have closed source and put decoys and errors in place.
"I dunno. We have sloppy devs."
Jose_X
2008-09-20 03:51:50
I haven't used it, but I don't see why it wouldn't be possible at least at some point.
I have also said that I personally would not tax my brain with MS protocol specifics. mono follows Microsoft and so helps grow the dotnet ecosystem where advantage goes to Microsoft in many ways. This is the main reason I would not use mono but would instead opt for a different set of specs if I ever wanted to use something like mono.
Let's hope someone tests Microsoft by forking mono and then diverging from dotnet. I would welcome such success since eventually that would mean I would have yet another FOSS tool at my disposal.
Roy Schestowitz
2008-09-20 08:53:38
To properly fragment and harm .NET, it would take quite some userbase. Either way, from my point of view, Mono developers willingly put themselves at Microsoft's mercy, enabling the tools to be restricted, pulled or sabotaged (remember what Microsoft did to Java and DR-DOS?) at any time. They need to keep "The Beast" satisfied.
For the Free Desktop to depend on Mono is a big gamble.