Matter at hand US Patent Application 20140196008.
What (seems to me like) MS wants to patent: * immutability by API:
Systems level programming is based upon tight and efficient management of access to and lifetime of resources (such as objects) throughout the system. One common way to provide this tight management is to use an Application Program Interface (API) to manage the lifetime and access of the resource.
* immutability by language extensions:
At least some embodiments described herein relate to a language extension that advances safety in system programming. In accordance with the language extension, an entire type may be declared to be immutable in the case in which all instances of that type are immutable. The immutable type declaration automatically causes any instances of that type to be treated as immutable, and automatically causes all directly or indirectly reachable members (e.g., fields, methods, properties) of the instance to also be treated as immutable.
If you have ideas on prior art, visit the patents.stackexchange.com entry.
(Score: 1) by DBCubix on Thursday August 28 2014, @01:12AM
I will just patent datatypes.
(Score: 2) by dyingtolive on Thursday August 28 2014, @01:17AM
I'll patent today for a hamburger tomorrow.
Don't blame me, I voted for moose wang!
(Score: 4, Insightful) by prospectacle on Thursday August 28 2014, @02:06AM
In some ways I think the more egregious abuses there are of the broken patent system, the closer we'll get to the point when the average voter realises it's broken.
If a plan isn't flexible it isn't realistic
(Score: 3, Interesting) by buswolley on Thursday August 28 2014, @02:08AM
From the stack exchange comments
Object immutability is nothing new. C and C++ have had the const qualifier for years, which achieves exactly what's mentioned in the excerpt you posted and can be imbued in a type by means of a typedef.
However, the abstract from the page you linked mentions:
... Furthermore, any construction time reference that allows for field assignment of the instance is not permitted to survive beyond the point at which the instance becomes accessible to its creator.
I didn't read the whole thing, but this might be where the novelty of the patent is: it somehow doesn't let modifiable references to an immutable object escape the object's constructor (which is something I don't believe the other examples posted here do, though I might be wrong.)
subicular junctures
(Score: 1, Interesting) by Anonymous Coward on Thursday August 28 2014, @02:20AM
it somehow doesn't let modifiable references to an immutable object escape the object's constructor
sorry for the dumb question, but how different is this from using encapsulation to limit the assignment to an object?
in another context (Java): how different is this from using the "final static" modifiers against a variable and instantiating it using a static constructor?
(Score: 4, Interesting) by forsythe on Thursday August 28 2014, @03:37AM
From what I read of the patent, I think they're proposing the following: that "superfinal" applied to a class automatically applies to the fields of that class, including the concept of ``immutablizing'' an object after it has been created and mutated. So writing (in Java-ish terms, to follow your context)
Would automatically make `bar' and `quux' final, and would also make the following code invalid:
That's based on
Because I think the intent is that b would count as a `construction time reference that allows for field assignment of the instance'. (Personally, I would argue that b.x isn't necessarily a field of the object f, since b could be and probably is simply a reference, but that would make the patent useless, so I doubt that's the intended interpretation.)
Corrections welcome, of course.
(Score: 1) by Zipf on Thursday August 28 2014, @12:19PM
A time-reversed theologic interpretation of the big-bang! Is there nothing MS can't do?
(Score: 2) by HiThere on Thursday August 28 2014, @07:43PM
I'm not sure I'm following what you're saying, but to me it sounds exactly like D's immutable.
http://dlang.org/attribute#immutable [dlang.org]
The reference is a bit obscure, as they intend that you've read before that point. D's const isn't quite the same as C++'s const.
My real reference for this kind of thing is "The D Programming Language" by Andrei Alexandrescu. He does a much better job of explaining, but it's not on-line.
Javascript is what you use to allow unknown third parties to run software you have no idea about on your computer.
(Score: 2, Informative) by Anonymous Coward on Thursday August 28 2014, @08:09AM
If this is the "novelty", then C++ prior art covers that as well:
(Score: 4, Funny) by NoMaster on Thursday August 28 2014, @07:28AM
Don't ever don't ever change...
Live free or fuck off and take your naïve Libertarian fantasies with you...
(Score: 0) by Anonymous Coward on Thursday August 28 2014, @11:58PM
M$ will be patenting the binary numbers 0 and 1. Therefore every OS and software is owned by M$.
(Score: 2) by DECbot on Friday August 29 2014, @02:19AM
If MS ever gets around to patenting binary, I start building my trinary computer, compiler, and os. It'll have some cool name like Triad OS, OS^3, or GNU/Trinux. Don't ask me how it works, its not even at the conceptual phase. But it'll be awesome, you should try it out.
cats~$ sudo chown -R us /home/base