Microsoft Patents 'IsNot', Enlists WTO 720
Milhouse102 writes "I was just reading an article on The Register about Microsoft's offshore patent war following Ballmer's recent outburst in Asia. I came across this little nugget, it seems MS has patented BASIC's IsNot operator."
Patents should be denied to convicted monopolists (Score:4, Interesting)
I think it is a travesty that MS is allowed to aquire IP though the goverment that is sanctioning them. How does that restore competition? It is blatantly counter productive.
GNU is_not Unix (Score:1, Interesting)
RTFA - Not that bad, but still bad. (Score:5, Interesting)
The patent isn't easy reading, but if you plow through enough of it you get to an example in code
It looks like their patenting using the Basic IsNot operator on object comparisons in Basic. It's a pretty limited patent.
On the other hand, I'm baffled that you can patent overriding a specific operator in a specific language. There's considerable prior art in overrding operatorsin general.
Of course, the problem with patent abuse by a few people is that it prompts others to do the same. Don't want someone to patent a piece of technology out from under you? Patent it first!
Re:Prior art (Score:4, Interesting)
"evaluating to true when the first operand and the second operand point to different memory locations"
The patent appears to cover a single operator (in BASIC, but that is an aside) which does JUST a comparison of whether the 2 operands in fact reside at the same memory address. (e.g. if they were 2 references to instances of the same class, it will tell you if they are in fact references to the same instance of that class)
The C operator != in fact tells you if 2 operands share the same VALUE. This is a different concept, though in the case of pointers you could use it to perform the same test as above. != is NOT an operator with that use as its sole purpose.
Point 2:
"When I compare the value of pointers, I'm comparing what memory address they point to... got that? Ok, so when I compare two pointers using != I'm testing that they don't point to the same memory adddress... ok?"
When you declare a pointer (to anything) in C, you in fact declare some form of integer; the exact type varies with your compiler and OS, but its just a NUMBER. When you use the != (or any other logical conparison operator) with that variable, you are in fact just comparing 2 numbers to each other. If you have written your program well, you may in fact be comparing 2 memory addresses, but consider that this is valid C code, and is using the != comparator on two "pointers":
int x = 3000;
void *a =
void *b = x;
int r = (a != b);
Depending on your choice of number to put in x, you might even manage to get a "true" result from that.
Your knowledge of how pointers actually work seems a tad lacking. You probably think there are no pointers in Java too...
Re:Attention Europe (Score:1, Interesting)
Re:Attention Europe (Score:5, Interesting)
Kinda ironic that Microsoft should provide the anti-IP patent lobby with one of their strongest arguments to date, but it just goes to show that Microsoft doesn't understand *NIX. Certainly not the parts about *NIX making it really easy to shoot yourself in the foot at any rate... :)
Re:Only pertains to BASIC (Score:5, Interesting)
On the other hand, this patent does not apply only to the BASIC language. Each claim of a patent is treated as a seperate patent. Thus claim one covers any system that does the particular operation. Claim two covers a system where the compiler is a BASIC compiler. Claim three covers any system where the operator used is "IsNot" regardless of whether or nor the language is BASIC. Claim four covers any system wherein the compiler comprises a scanner, parser, analyzer, and executable generator (regardless of language).
Re:Prior art (Score:5, Interesting)
Now, some claims refer to other claims... so, you can kill multiple claims by killing the underlying claim.
But, claim #1 says absolutely nothing about BASIC.
Also, when I read it, I get the impression that BASIC is mentions for demonstration purposes only, that the claim is for everything like BASIC.
For example, I see this: Which mentions derivitaves of BASIC and BASIC like languages. And, it mentions in one embodiment of the invention, the memory locations represent objects.. (Can you say dot net?)
Here is another part that makes me think it isn't just BASIC: Again, the mention of a browser and the web make me think of dot net.
Then, in paragraph [0041] we see this sentence: Which tags two non-BASIC languages (.net and delphi/pascal)
I think that if you read it closely you start getting the impression that they are trying to patent an idea that is expressed in many programming languages.
Not just an implementation in one language.
There is no WTO issue here. (Score:5, Interesting)
It so happens that IAMAITL (I am an international trade lawyer). I can assure you that the article, in that regard, is utter bullshit on various levels:
Re:Attention Europe (Score:2, Interesting)
I think that a big reason that people in governments in europe are choosing FOSS over proprietary is as a way of giving more jobs to local companies and workers instead of typically US owned software companies.
claim 1 is so broad is even .. (Score:3, Interesting)
#define TRUE -1
#define FALSE 0
if ( TRUE ) {} fals under this, as well as Java code.
Its time to start writing the patent office and challenge this patent.
Re:So am I infringing if... (Score:3, Interesting)
public boolean isNot(Object a, Object b) {
return a!=b;
}
Which is even more absurd.
Re:Am too. (Score:4, Interesting)
Patent IsNot SoStrange (Score:1, Interesting)
http://msdn.microsoft.com/vbasic/default.aspx?p
Frivilous patents (Score:3, Interesting)
To get the USPTO back in working order, congress should institude a fine for frivilous patent applications. They should increase their staff and review each patent carefully and be able to throw them out. I recommend a tiered system. Your first frivilous patent application is just the cost of a normal patent application, but it doubles for each frivilous application after the first. If patents cost $1000 to apply for, the 10th frivilous application would cost $1 million. The 16th would cost you $65 million, and the 24nd would cost you $16 billion.
Re:Prior art: the D Programming Language (Score:3, Interesting)
That may limit the patent, but not knock it out. After all, the patent is on the implementation of IsNot in BASIC. This is obviously intended to prevent work-alike BASIC languages from being compatible. They really don't care if you create a macro in C to #define IsNot to !=.
Java by itself is prior art for almost all of the claims, except for naming an operator "IsNot", being BASIC, and having an operator that gives an error unless both operands are pointers. An object method probably doesn't qualify as an "operator", and I can't think offhand of a language where there's a pointer-specific not-equal operator, different from any other not-equal operator. So a few of the claims might not have clear prior art. They should still fail on obviousness. For example, there's an obvious parallel to "isa" and "isnota". Smalltalk has == and ~~ (vs. = and ~=) (Smalltalk might have difficulties with the "generate an error" claims, since everything in Smalltalk is a pointer reference).
Looking for the discussion of "isnot" in D, it looks like that was discussed earlier this year. It needs to be about two years earlier to be clear prior art for this one (filed May 2003).
I note that this is a standard Microsoft patent, wherein they patent the software method, then patent putting software that implements the method on a "computer readable medium".