As PJ pointed out over on Groklaw, MS are giving a "Promise" not to sue but this is very very far from a license
It's a legally enforceable promise. How is that different from a license? Both Sun and IBM, neither of which trust Microsoft, have released software critical to major products of theirs, that implements specifications that are covered by OSP, so evidently their lawyers don't have a problem with it.
Careful analysis suggests that any GPL'd software using these binaries could easily fall foul of the fury of MS lawyers
How? There's not a single thing in it that conflicts with any GPL provision or requirement. The only thing connected with OSP that has anything to do with GPL is the item in the OSP FAQ, where MS refuses to say affirmatively that there is no GPL problem. All that means is that Microsoft has competent lawyers who won't let them give general legal advice on their web site.
There are two kinds of Hungarian notation. One is the type that adds type info. For example, prefixing longs with l. As you note, that is pointless. In fact, it is worse than pointless--because if the type of the variable is changed, it might be too much of a hassle to change the name everywhere, and you end up with the notation actually misleading.
The second type doesn't add type information. It adds meaning information. For example, an index to a table row might be rowIndex. An index to a column might be colIndex.
This form of Hungarian is not pointless. When you see selectedRow = colIndex in code, it makes the error (some doofus used a column index where a row index was needed!) easy to see. In a sense, it is still adding type information, but it is type information at a level above what the compiler provides (for many languages, at least). This kind of Hungarian helps document the code, and is generally a good thing.
Wait a minute. Web services are a MAJOR part of both Sun and IBM's business and strategy. Are you suggesting that they did not scrutinize OSP carefully before accepting it, or that they ignored potential problems because they figured Microsoft would have no interest in harming or annoying either of them?
That anyone even remotely familiar with the history of GPL is ROFLing at the notion that it isn't ambiguous. Go read Rosen's book on open source licensing, and see how much text it takes for him to explain what parts of it mean. Go read the last few years of gnu.misc.discuss, and see the legions of open source developers who've needed help figuring out what it means.
The rules vary depending on the particular standards organization, but generally the patent owner (or owners) are required to make a license available for the necessary patents on reasonable and non-discriminatory terms. Most hardware standards are covered by patents, as are a significant chunk of non-hardware standards.
One thing you cannot say for the GPL is that it is ambiguous
You've never read gnu.misc.discuss, have you? Lot's of people in practice find it ambiguous, and when they come to ask about it, long flame wars break out, over the ambiguity.
The problem with patent trolls is that they add absolutely nothing to society; most don't even invent the patented idea, they just buy it from someone else
So let's say you invent something really cool. (You, personally). You put 10 years of effort into it, and sunk your life savings into the research and development. You get a patent, and approach a big company to license it. You hope to get rich, but would be happy to at least get back your life savings.
The big company laughs in your face, and rips off your invention. What do you do? You can't afford to sue (patent suits are expensive).
Answer: you sell an interest in your patent to someone who can afford to sue. They assume the risk that the patent may be found to be invalid, or the alleged infringers may not actually be practicing the patent, or that the courts will determine the damages are low. They put up the money to sue (if it gets to that--when they approach that big company and ask it to license the patent, the big company might not laugh, now that they know they are dealing with someone who has the resources to sue). Result: you might actually come out ahead after spending 10 years and all your money developing your invention.
What you call a "patent troll" is basically a patent dealer. The add value to society the same way dealers in any other item do--by allowing an efficient market in that item to exist. Every bad thing that has been attributed to "patent trolls" is in fact due to flaws in the patent system itself, such as the PTO's propensity for granting patents that should not have been granted due to prior art or obviousness, and has nothing to do with patent dealership.
Something like a "WP5 line formatting" tag isn't restricted to old documents. If you were writing a new word processor, you could add it. In ODF, you'd make up a tag, and in OOXML, you might be able to use the one they provided. But in neither case, ODF nor OOXML, would anyone else's word processor be required to support WP5 line formatting. For whatever reason, both ODF and OOXML decided not to cover all possible things from legacy documents, and so for both of them, people WILL be going beyond the standard. The difference is in OOXML, they've guessed at a dozen or so places they think this will happen, and tried to make it so different implementations extending the standard for those cases will do it in the same way.
There is a distinct difference: ODF doesn't "specify" AutoFormatLikeStarOffice5.2 or WrapLinesLikeStarWriter1.0.
Let's do a hypothetical situation, and see how you'd do it in ODF and OOXML. You've got a program that reads WordPerfect 5 files. Your job is to add ODF and OOXML support to it. While writing your WP5 to ODF and OOXML importers, you notice that WP 5 has some line spacing modes that you can't really capture in ODF or OOXML. You'd like to record somehow in the translated file that these modes were used in the original. That way, your program, which knows about those modes, can display files converted from WP 5 the same way they displayed before conversion, and if someone exports one of your ODF or OOXML files back to WP 5, you can use those modes in the exported file.
So how do you do that? In ODF, what you'd do is define your own tag or attribute, in a namespace you'd define, and use that to mark the parts of the document that originally had WP 5 line spacing. Now you can go back and forth between ODF and WP 5, and the spacing is right, as long as it is your application used to view the documents. If you send a converted WordPerfect document to someone using OpenOffice, it won't use WP5 spacing, but that is OK. That tag of yours was just there to let programs that DO understand WP5 spacing use it if they wish.
Meanwhile, across town, I'm ALSO changing my old application that handles WP 5 files so that it can translate to ODF and OOXML. I also come up with a tag or attribute, and a namespace. Someone gives me one of your ODF files, and I open it. Hey, guess what--no WP5 spacing. It only works on your applications, because I have no idea what your tags means.
Not being idiots, we realize that it would make a lot of sense if we were to agree to use the same tag or attribute or WP5 spacing. That way, if someone uses your program to translate a WP5 program, mine can use the resulting ODF document. If we are smart, we publish the tag we are using, so everyone (hopefully) who has a program that understands WP5 can use the same tag to mark places in ODF documents where the original document used WP5 modes that don't translate into ODF.
So, where should we publish that tag? The best place would be in the standard. That way, everyone who has reverse engineered WP5 will end up using the same tag, and can then have a much better chance of interoperating.
And that is just what they've done in OOXML. There are a set of compatibility flags, all of which are like what I describe above. They took about a dozen or so things that don't represent well in OOXML (or ODF) that would be common in legacy documents (not just from Microsoft software, BTW...they have some for WordPerfect settings), and basically said "if you have software that understands those old formats, and you are going to tag places in your documents where those old formats used features that aren't in OOXML, then use these tags, so you will interoperate with others who do the same".
There is no rational way to argue that this is bad.
Can we get some new anti-OOXML FUD, please? The same old, long refuted, FUD is getting boring. My god, he even cites Stéphane Rodriguez, who makes such amazing arguments as OOXML is defective because Microsoft doesn't have a 64-bit version of Office 2007!? Huh?
Take out his points that are wrong, and take out his points that are valid but would also apply as well to ODF, and there isn't much left.
If the submitter had written the exact same story on his blog, and then submitted the link to the blog entry, would that be any better? That's the level of external support that these kind of stories often have, so maybe skipping the blog is actually a good idea--at least the story won't get slashdotted!:-)
You seem very confused. If you don't trust people, you should love this technology. It will allow you to deal with those untrustworthy people without you having to give them your private information.
It was the EU, in 2004, along with some other governments, that asked Microsoft to submit their formats for standardization. So now they don't like this?
I've got at least two or three OpenIDs now. One I paid for (actually an i-name, but those work as OpenIDs in OpenID 2), and one for free from AOL because I have an AIM account. Yahoo will give me one because I have a Yahoo account.
OK, that's nice. But how do I get Yahoo to accept my i-name or my AIM OpenID? On Yahoo's OpenID setup page, I only see options for creating my Yahoo OpenID.
I'm not going to count the big players as embracing OpenID until I can tie any one of my existing OpenIDs to my account.
If you're thinking that the patent license for things in ODF 1.0 only cover them in ODF 1.0 and aren't valid for ODF 2.0, I'm afraid that's wrong. The licenses are for use in implementations of the ODF spec, current and all future versions
The license disagrees with you. If Sun doesn't participate in 2.0, the license explicitly says it is not covered.
Sun irrevocably covenants that, subject solely to the reciprocity requirement described below, it will not seek to enforce any of its enforceable U.S. or foreign patents against any implementation of the Open Document Format for Office Applications (OpenDocument) v1.0 Specification, or of any subsequent version thereof ("OpenDocument Implementation") in which development Sun participates to the point of incurring an obligation, as defined by the rules of OASIS, to grant (or commit to grant) patent licenses or make equivalent non-assertion covenants. Notwithstanding the commitment above, Sun's covenant shall not apply and Sun makes no assurance, covenant or commitment not to assert or enforce any or all of its patent rights against any individual, corporation or other entity that asserts, threatens or seeks at any time to enforce its own or another party's U.S. or foreign patents or patent rights against any OpenDocument Implementation.
This statement is not an assurance either (i) that any of Sun's issued patents cover an OpenDocument Implementation or are enforceable, or (ii) that an OpenDocument Implementation would not infringe patents or other intellectual property rights of any third party.
No other rights except those expressly stated in this Patent Statement shall be deemed granted, waived, or received by implication, or estoppel, or otherwise.
Similarly, nothing in this statement is intended to relieve Sun of its obligations, if any, under the applicable rules of OASIS.
I have two problems with calling this open. First, Sun leaves themselves an out. The grant only covers 1.0 of ODF right now. It only covers future versions if Sun participates significantly in their development. This means that Sun, not OASIS, has the final say in how future versions of ODF develop. For a standard to be open, it should be a standards body that has final say over how the standard develops, not a single company. If OASIS decides to do something in, say, ODF 2, that Sun is opposed to, all Sun has to do is walk away, and ODF 2 is dead in its tracks.
Second, this license does not allow for private forks of the standard. On of the hallmarks of something being "open" is that people can adapt it for their needs. If I need a document format for something that isn't quite ODF, I am not allowed to make my own internal format based on ODF.
For years, people arguing against software patents have said that because of numerous, ridiculous, patents held by companies such as Microsoft, it is almost impossible to do anything significant without infringing. We need to reform the patent law, or projects like Linux will be impossible, yadda yadda yadda.
So now when Microsoft says that they have patents and they think Linux infringes, suddenly we don't think they have any patents that cover parts of Linux? They are bluffing? It is just FUD to advance their agenda?
Does that mean before this, when it was free software people claiming there WERE such patents, THEY were FUDing? What is going on here?
A while back, I was musing how far we have come. Our ancestors feared the elements, but in my house, they are at my command. I want it colder--it become colder. I want it hotter, it become hotter. I can raise and lower the humidity. I want water to flow, it flows. I want wind, I have wind.
Then I realized that it isn't me doing any of those things. Someone else built my heating and cooling system, and my plumbing, and ventilation. I'm really no better than a caveman--I just found a much nicer cave to move into.
Well, regulators let Google and Doubleclick through. The increase in the Herfindahl-Hirschman Index due to that was huge. Regulators don't seem to be doing much regulation these days.
ODF does not meet your stated requirements. It (probably) will when ODF 1.2 is approved. Using your own thought experiment (clean room implementation without using existing code), ODF would fail on interoperability, because ODF 1.0 (the one that is the standard) does not specify how formulas work in spreadsheets. The way existing ODF implementations achieve interoperability here is that they look at OpenOffice's implementation, and copy it.
Promissory estoppel.
It's a legally enforceable promise. How is that different from a license? Both Sun and IBM, neither of which trust Microsoft, have released software critical to major products of theirs, that implements specifications that are covered by OSP, so evidently their lawyers don't have a problem with it.
How? There's not a single thing in it that conflicts with any GPL provision or requirement. The only thing connected with OSP that has anything to do with GPL is the item in the OSP FAQ, where MS refuses to say affirmatively that there is no GPL problem. All that means is that Microsoft has competent lawyers who won't let them give general legal advice on their web site.
The second type doesn't add type information. It adds meaning information. For example, an index to a table row might be rowIndex. An index to a column might be colIndex.
This form of Hungarian is not pointless. When you see selectedRow = colIndex in code, it makes the error (some doofus used a column index where a row index was needed!) easy to see. In a sense, it is still adding type information, but it is type information at a level above what the compiler provides (for many languages, at least). This kind of Hungarian helps document the code, and is generally a good thing.
Wait a minute. Web services are a MAJOR part of both Sun and IBM's business and strategy. Are you suggesting that they did not scrutinize OSP carefully before accepting it, or that they ignored potential problems because they figured Microsoft would have no interest in harming or annoying either of them?
That anyone even remotely familiar with the history of GPL is ROFLing at the notion that it isn't ambiguous. Go read Rosen's book on open source licensing, and see how much text it takes for him to explain what parts of it mean. Go read the last few years of gnu.misc.discuss, and see the legions of open source developers who've needed help figuring out what it means.
The rules vary depending on the particular standards organization, but generally the patent owner (or owners) are required to make a license available for the necessary patents on reasonable and non-discriminatory terms. Most hardware standards are covered by patents, as are a significant chunk of non-hardware standards.
So how come this hasn't been a problem for the numerous parts of SOAP that are covered by the OSP and for which there are GPL implementations?
You've never read gnu.misc.discuss, have you? Lot's of people in practice find it ambiguous, and when they come to ask about it, long flame wars break out, over the ambiguity.
Here's a paper on this, which goes into great detail on the role of patent dealers in the market from an economic and policy point of view.
So let's say you invent something really cool. (You, personally). You put 10 years of effort into it, and sunk your life savings into the research and development. You get a patent, and approach a big company to license it. You hope to get rich, but would be happy to at least get back your life savings.
The big company laughs in your face, and rips off your invention. What do you do? You can't afford to sue (patent suits are expensive).
Answer: you sell an interest in your patent to someone who can afford to sue. They assume the risk that the patent may be found to be invalid, or the alleged infringers may not actually be practicing the patent, or that the courts will determine the damages are low. They put up the money to sue (if it gets to that--when they approach that big company and ask it to license the patent, the big company might not laugh, now that they know they are dealing with someone who has the resources to sue). Result: you might actually come out ahead after spending 10 years and all your money developing your invention.
What you call a "patent troll" is basically a patent dealer. The add value to society the same way dealers in any other item do--by allowing an efficient market in that item to exist. Every bad thing that has been attributed to "patent trolls" is in fact due to flaws in the patent system itself, such as the PTO's propensity for granting patents that should not have been granted due to prior art or obviousness, and has nothing to do with patent dealership.
Something like a "WP5 line formatting" tag isn't restricted to old documents. If you were writing a new word processor, you could add it. In ODF, you'd make up a tag, and in OOXML, you might be able to use the one they provided. But in neither case, ODF nor OOXML, would anyone else's word processor be required to support WP5 line formatting. For whatever reason, both ODF and OOXML decided not to cover all possible things from legacy documents, and so for both of them, people WILL be going beyond the standard. The difference is in OOXML, they've guessed at a dozen or so places they think this will happen, and tried to make it so different implementations extending the standard for those cases will do it in the same way.
Let's do a hypothetical situation, and see how you'd do it in ODF and OOXML. You've got a program that reads WordPerfect 5 files. Your job is to add ODF and OOXML support to it. While writing your WP5 to ODF and OOXML importers, you notice that WP 5 has some line spacing modes that you can't really capture in ODF or OOXML. You'd like to record somehow in the translated file that these modes were used in the original. That way, your program, which knows about those modes, can display files converted from WP 5 the same way they displayed before conversion, and if someone exports one of your ODF or OOXML files back to WP 5, you can use those modes in the exported file.
So how do you do that? In ODF, what you'd do is define your own tag or attribute, in a namespace you'd define, and use that to mark the parts of the document that originally had WP 5 line spacing. Now you can go back and forth between ODF and WP 5, and the spacing is right, as long as it is your application used to view the documents. If you send a converted WordPerfect document to someone using OpenOffice, it won't use WP5 spacing, but that is OK. That tag of yours was just there to let programs that DO understand WP5 spacing use it if they wish.
Meanwhile, across town, I'm ALSO changing my old application that handles WP 5 files so that it can translate to ODF and OOXML. I also come up with a tag or attribute, and a namespace. Someone gives me one of your ODF files, and I open it. Hey, guess what--no WP5 spacing. It only works on your applications, because I have no idea what your tags means.
Not being idiots, we realize that it would make a lot of sense if we were to agree to use the same tag or attribute or WP5 spacing. That way, if someone uses your program to translate a WP5 program, mine can use the resulting ODF document. If we are smart, we publish the tag we are using, so everyone (hopefully) who has a program that understands WP5 can use the same tag to mark places in ODF documents where the original document used WP5 modes that don't translate into ODF.
So, where should we publish that tag? The best place would be in the standard. That way, everyone who has reverse engineered WP5 will end up using the same tag, and can then have a much better chance of interoperating.
And that is just what they've done in OOXML. There are a set of compatibility flags, all of which are like what I describe above. They took about a dozen or so things that don't represent well in OOXML (or ODF) that would be common in legacy documents (not just from Microsoft software, BTW...they have some for WordPerfect settings), and basically said "if you have software that understands those old formats, and you are going to tag places in your documents where those old formats used features that aren't in OOXML, then use these tags, so you will interoperate with others who do the same".
There is no rational way to argue that this is bad.
Take out his points that are wrong, and take out his points that are valid but would also apply as well to ODF, and there isn't much left.
If the submitter had written the exact same story on his blog, and then submitted the link to the blog entry, would that be any better? That's the level of external support that these kind of stories often have, so maybe skipping the blog is actually a good idea--at least the story won't get slashdotted! :-)
You seem very confused. If you don't trust people, you should love this technology. It will allow you to deal with those untrustworthy people without you having to give them your private information.
It was the EU, in 2004, along with some other governments, that asked Microsoft to submit their formats for standardization. So now they don't like this?
OK, that's nice. But how do I get Yahoo to accept my i-name or my AIM OpenID? On Yahoo's OpenID setup page, I only see options for creating my Yahoo OpenID.
I'm not going to count the big players as embracing OpenID until I can tie any one of my existing OpenIDs to my account.
And probably forsake a lot more, to make room to carry all that film!
NJice rant. Too bad it has nothing to do with the question at hand. The questioner specifically said the code was written for work.
The license disagrees with you. If Sun doesn't participate in 2.0, the license explicitly says it is not covered.
I have two problems with calling this open. First, Sun leaves themselves an out. The grant only covers 1.0 of ODF right now. It only covers future versions if Sun participates significantly in their development. This means that Sun, not OASIS, has the final say in how future versions of ODF develop. For a standard to be open, it should be a standards body that has final say over how the standard develops, not a single company. If OASIS decides to do something in, say, ODF 2, that Sun is opposed to, all Sun has to do is walk away, and ODF 2 is dead in its tracks.
Second, this license does not allow for private forks of the standard. On of the hallmarks of something being "open" is that people can adapt it for their needs. If I need a document format for something that isn't quite ODF, I am not allowed to make my own internal format based on ODF.
So now when Microsoft says that they have patents and they think Linux infringes, suddenly we don't think they have any patents that cover parts of Linux? They are bluffing? It is just FUD to advance their agenda?
Does that mean before this, when it was free software people claiming there WERE such patents, THEY were FUDing? What is going on here?
Then I realized that it isn't me doing any of those things. Someone else built my heating and cooling system, and my plumbing, and ventilation. I'm really no better than a caveman--I just found a much nicer cave to move into.
Well, regulators let Google and Doubleclick through. The increase in the Herfindahl-Hirschman Index due to that was huge. Regulators don't seem to be doing much regulation these days.
ODF does not meet your stated requirements. It (probably) will when ODF 1.2 is approved. Using your own thought experiment (clean room implementation without using existing code), ODF would fail on interoperability, because ODF 1.0 (the one that is the standard) does not specify how formulas work in spreadsheets. The way existing ODF implementations achieve interoperability here is that they look at OpenOffice's implementation, and copy it.