Microsoft's 'IsNot' Patent Continued...
An anonymous reader writes " According to the patent application--filed in mid-November by Paul Vick, lead architect for Visual Basic .Net at Microsoft; Amanda Silver, a program manager on the Visual Basic team; and an individual in Bellevue, Wash., named Costica Barsan--the IsNot operator is described as a single operator that allows a comparison of two variables to determine if the two point to the same location in memory." This article continues the tale started last november, and here is an eWeek story on the same subject.
No, they want to patent: if (ptr1 != ptr2) ...
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
I like how the submitter conveniently left out Paul's blog entry on the subject:
1 /2 0/2321.aspx
http://www.panopticoncentral.net/archive/2004/1
He says, among other things that software patents are a "bad idea" and that he did not "feel particularly proud of my involvement in the patent process in this case".
So there you have it, from the horse's mouth.
Natural != (nontoxic || beneficial)
> I remember our programming instructor in sixth grade teaching us about this logic operator is BASIC.
Actually, it's not the same operator.
They're talking about creating an operator that can say if two objects are the EXACT same object or not.
In C++ terms this is the equivalent of doing *ptr != *ptr (!=) vs. ptr != ptr (IsNot).
As you all know, int a = 1 and int b = 1 does mean that &a != &b whereas it does not mean that a != b.
So, basically they're trying to patent a new keyword with new functionality in all BASIC-related languages, effectively locking all companies that provide BASIC-interpreters out because they can't provide this functionality.
In the last month alone the software patent bastards also gained patents on:
Network drives and folder mapping
The Photo Album Software that came with your digital camera
The clickable progressbar found in all video and music playing software
The "recent" menu
From Lisp primer:
= (= x y) is true if and only x and y are numerically equal.
equal As a rule of thumb, (equal x y) is true if their printed representations are the same (i.e. if they look the same when printed). Strictly, x and y are equal if and only if they are structurally isomorphic, but for present purposes, the rule of thumb is sufficient.
eq (eq x y) is true if and only if they are the same object (in most cases, this means the same object in memory).
eql (eql x y) is true if and only if they are either eq or they are numbers of the same type and value.
So what Microsoft is trying to patent is known in LISP as (not (eq a b)) for a long time already :(
The IsNot operator described in the patent also differentiates between objects with the same address in different memory spaces. They mentioned running a cluster-aware program which could manage objects on multiple machines simultaneously.
So, it's equivalent to:
((&a != &b) && (a.host != b.host))
Which is yet more complex but still not worth patenting a simplification on.
I guess today is a passable day to die.
> But it is the same as "Not equal to" applied to the address of the variable [...] So, it's still a pretty trivial concept...
There's also single-operator prior art in the Scheme neq? operator.
(I don't know whether it's standard, but it is provided by some interpreters.)
Sheesh, evil *and* a jerk. -- Jade
The letter 'T' is already trademarked by the Deutsche Telekom. Sorry, MS.
The Tao of math: The numbers you can count are not the real numbers.
IsNot compares the addresses of the variables, not the value. The equivalent in C is &a != &b instead of just a != b.
It's just like the equivalent in Python: a is not b (or not a is b, I don't really understand the need for a separate operator). Only difference is that it's one word instead of two. And different capitalization (but isn't Basic case insensitive?)
This sig under construction. Please check back later.
Well, in C, if a and b are strings, structures, or arrays, then the variable name is the same as the address.
Therefore a != b when you're testing if the 'two variables point to the same location in memory' is covered by friggin' PDP-11 architechture. It's basically a comparison of two integers and a BNZ (branch non-zero) instruction.
They can make all the claims they want about how they've done all sorts of innovative stuff to make the link novel, it's still comparing a pointer reference in a programming language as far as I can seem.
What's next, start patenting the AND, NOT, OR family of operations? I hope not!
Lost at C:>. Found at C.
However, I think there is a closer parallel.
Consider the following java snippet:
Of course, underneath it is probably implemented with pointers, but the semantics of the != operator on reference types is defined to be object identity non-equality.
This prints out the following:
s1 is NOT s2
s1 EQUALS s2
The comparison operators in Java, when applied to reference variable types (which is everything other than built in primitive3 types) tell you whether the objects have the same identity (==) or different (!=).
Imagine, for example, instead of a conventional virtual memory architecture, we have an architecture where we have different kinds of memory with different speeds mapped to different address ranges; say that adresses under 1 million are fast memory and addresses 1 million or over are slow memory. This is not impossible to imagine for some kind of embedded device. Suppose, in addition, the runtime system understands this and caches copies of frequently used addresses in the below 1 million range to enhance performance.
In that case suppose we have the java expression:
if (objRef1 != objRef2)
In this case, a correct java implementation on this hypotethetical platform could not use a simple address comparision. If the addresses were unequal, it would have to do a further check to see if one of them were a cached version of the other.
Y'know, a news for nerds site really ought to make it possible to post code examples without resorting to stupid tricks like this: 2qy982uoiu 3o2iu4o23iuoi23u4 23o4uo23iu ou34oi 23oi4u o2i3u4o i234 lkasdfls llflawl fasdf ssdlllle asdf foo sdalkfl adlk;jlaskdf lsadf . as;ldkf
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Actually, the grandparent post was right...
...
...
...
a and b are references, which are pointers in the C sense:
So the C code would be:
int *a, *b;
if (a != b) {
}
The extension to C++ usage is obvious to a skilled practioner.
And the (new, patent pending or granted?) Microsoft BASIC approach is:
if a isNot b then
The equivalence is EXACT between != and isNot. I am a skilled at programming, and I find it obvious.
Microsoft will NEVER defend this patent. 'Cause they will lose.
PS. Object equality vs. Value equality is carefully delineated in "Smalltalk, The Language and Its Implementation" (just the reference I had at hand, there are HUNDREDS of other discussions -- usually for stuff a bit more interesting though).
Ratboy.
Just another "Cubible(sic) Joe" 2 17 3061
Unless the government specifically passes legislation allowing you to sue the government, then you can't sue the government. It's a legal concept called sovereign immunity and is derived from the ancient concept of "the divine right of kings."
Ha, ha! Nobody ever says Italy.
Need I go on? You can see some more here:
Enter The 'Stupid Patent Tricks' Contest
Disclaimer: This opinion was created without the use of any facts