
Microsoft filed patent applications for scoped and immutable types - chx
http://forum.dlang.org/thread/ltinlp$79s$1@digitalmars.com
======
c0lo
Drop your prior art suggestions on:

[http://patents.stackexchange.com/questions/10128/prior-
art-f...](http://patents.stackexchange.com/questions/10128/prior-art-for-us-
patent-application-20140196008-immutable-object-types)

[http://patents.stackexchange.com/questions/10122/looking-
for...](http://patents.stackexchange.com/questions/10122/looking-for-prior-
art-for-patent-application-us20140196015-declaration-of-lifet)

------
tiffanyh
For those who are claiming prior art, I suggest you open a question up at "Ask
Patents" (StackExchange site).

"Ask Patents" has been used by the USPTO to overturn patent requests.

[http://patents.stackexchange.com/](http://patents.stackexchange.com/)

~~~
Alupis
Source? (Seems unlikely the USPTO would use a end-user forums to make a
decision)

~~~
gavinpc
> The America Invents Act changed the law to allow the public to submit
> examples of prior art while a patent application is being examined. And
> that’s why the USPTO asked us to set up Ask Patents, a Stack Exchange site
> where software developers like you can submit examples of prior art to stop
> crappy software patents even before they’re issued.

[http://www.joelonsoftware.com/items/2013/07/22.html](http://www.joelonsoftware.com/items/2013/07/22.html)

~~~
omglol
People really need to stop always quoting Joel - he is not a definitive go-to
software spokesperson, and has some very strong (and often wrong) opinions
about things -- shaped by years at Microsoft doing things only the Microsoft
way.

~~

He is puffing his product in this blog post -- nothing more.

~~~
logn
He's stating facts about his startup. It's not like he's giving some opinion
on something he's not qualified for. It's like saying we shouldn't ask Woz we
he made Apple Basic.

~~~
Alupis
Well, StackExchange is hardly a "startup" anymore.

And, this particular blog post is Joel up-talking the new "ask patents"
exchange and describing why he feels it's needed.... so... it is a puff piece.

------
more_original
I haven't read the immutability patent in detail, but it seems like the
problem they are considering is not completely trivial. I've seen research
papers on similar topics. Example:
[http://www.cs.ru.nl/E.Poll/papers/esop07.pdf](http://www.cs.ru.nl/E.Poll/papers/esop07.pdf)

I think one should have a careful look at it to check if there is anything new
here. Maybe there is.

Edit: Found a recent paper by some of the patent authors that looks related:
[https://homes.cs.washington.edu/~csgordon/papers/oopsla12.pd...](https://homes.cs.washington.edu/~csgordon/papers/oopsla12.pdf)

That being said, it clearly shouldn't be possible to patent such ideas.

~~~
bunderbunder
It shouldn't be possible to patent such ideas.

But in the current legal environment, it would be crazy of a company like
Microsoft not to try and get a patent on anything they can get away with.
Especially so now that the the America Invents Act is in effect. Being first
to file means that they no long have the option of being altruistic and just
letting their inventions sit around unpatented. That leaves an opening for
someone else to swoop in, get the patent, and try to sue them for "infringing"
on something they invented first.

Which is admittedly an awful situation. It really shouldn't be possible to
patent such ideas.

~~~
rayiner
Anyone who gives you that story is trying to mislead you, using the rule
change as cover. What first to file does is change the rule for who gets
priority when multiple parties file overlapping patents. Before priority went
to the "first to invent" now it goes to the "first to file" (avoiding the
expensive process of figuring out which applicant invented first). It has no
effect on a party that publishes an invention with no intention of patenting
it.

------
hyperliner
It easy to see how this patent application can actually come to life:

At the end of every sprint or dev milestone, an email goes out from some PM or
dev manager, asking people for "ideas to be patented." Somebody then collects
all of these ideas. Because applications cost money and units have budgets,
then there is a preliminary amount of "filtering": ideas that are "cool," the
latest shiny feature (who cares if it has been developed elsewhere for ages),
etc. This goes from things like tiles for UI to really deep advancements in
cloud computing. The specs are a source of leads. Obviously in many cases the
list includes a bunch of relatively minor advances (since a lot of development
at MS is mostly incremental) that may be prior art except to the junior dev
and PM who think they just discovered how to square the circle. There may be
some preferential treatment here for patents to special people, given that
there is a little bit of money that, if approved, goes back to the employees
too. There is a column in some spreadsheet that classifies the patent ideas
based on their perceived awesomeness.

At some point the list of patents has to be sent to some IP lawyer. The IP
lawyer does real work here, but is also looking at thing like competitive
aspects the team might have missed: i.e. if it is in an important business
area, then it gets an extra boost to become an application. An exec probably
approves the list too.

When the list is approved for applications, the job is then to make sure the
application is written by the members of the team and the lawyers. This takes
a lot of time and a lot of work, but since the specs already exist, people use
that as the basis.

When you get a patent application granted, you get a little plaque which you
hang on your wall and/or a little cube you stack on your desk. The higher the
stack the more your patent prowess. Given how some people have been at the
company for long, they can accumulate 20+ of these cubes. You get an aura of
inventor.

Obviously, people find that it is beneficial to get a patent (the plaque, the
cube, the little cash), and would lobby for these ideas to be in the approved
set, or at least to participate in the shiny specs because the rule is that
everybody who was even remotely involved in the patent gets to be listed in it
(therefore, managers get a lot of patents because they were in meetings where
the idea was discussed and maybe contributed to it).

------
readerrrr
Prior art: _typedef const int cint ;_

How wrong am I and what is Microsoft smoking?

~~~
asuffield
People tend to over-summarise patents; while the subject of the patent is
immutable types, the patent is on a specific method for implementing immutable
types. It works a little differently to that method, as it's a type-inference
and permissions-checking system.

As with every trivial patent, the valid objection is not that this has already
been done, because every trivial patent is somehow a bit different to things
which have been done before. This particular formulation allows structures to
be changed while they are being constructed, but makes them immutable once
construction is complete.

The objection to this patent is that the differences to prior art are all
trivial and obvious to somebody skilled in the art: if you tried to make an
immutable type for C# then you would get something that looked pretty much
like this patent. On that basis, the patent should not have been granted.

~~~
gioele
> This particular formulation allows structures to be changed while they are
> being constructed, but makes them immutable once construction is complete.

Equivalent to the following Ruby?

    
    
        a = "abc"
        a.upcase!
        a.freeze
        a.downcase! # => RuntimeError: can't modify frozen String

~~~
ufo
Kind of but the important difference is that Ruby checks that at runtime
instead of giving a compile time error.

~~~
okasaki
so like this?

    
    
      import Control.Monad.ST
      import Data.STRef
    
      main = do
              let n = runST $ do n <- newSTRef 5
                                 modifySTRef n (+ 10)
                                 readSTRef n
    
              modifySTRef n (+ 10) 
              {-
                ^^^^^^
                Couldn't match expected type IO t0 with actual type ST s0 ()
                In the expression: main
                When checking the type of the IO action main
              -}
    
              print n

~~~
ufo
Yes, more like that. There are some extra wrinkles they could add with
subtyping, record types, etc but its still going to be a silly thing to
patent.

------
webXL
The first thing that came to mind in terms of prior art for the immutable
object type was JavaScript's Object.freeze(obj) which was released in ES 5.1
(2011):

[http://www.ecma-
international.org/ecma-262/5.1/#sec-15.2.3.8](http://www.ecma-
international.org/ecma-262/5.1/#sec-15.2.3.8)

Edit: replaced Object.seal with Object.freeze

------
WalterBright
The D programming language introduced transitive immutable types in 2007 with
version 2.000.

[https://dlang.org/changelog.html](https://dlang.org/changelog.html)

------
jskonhovd
Jared Parsons is the VsVim guy. I heard they are working on a systems
programing language for Microsoft.

[http://joeduffyblog.com/2013/12/27/csharp-for-systems-
progra...](http://joeduffyblog.com/2013/12/27/csharp-for-systems-programming/)

------
polskibus
Does anyone know how do companies incentivize employees to come up with such
patents? Does the patenting initiative come from the employee that "invents"
or is this decision made by someone else?

~~~
edent
I can't speak for MS, but in most companies where I've worked the process is
something like this.

\- Fill in an internal form

\- Have a chat with an internal lawyer / patent expert

\- Receive a (small) payment if it is submitted to the patent office.

\- Receive a (bigger) payment if the patent is granted.

\- Receive a (huge) payment if the patent is used / sold / cross-licenced.

The exact process and payments will depend on country and company.

And, yes, it is possible to game this system. For a good study, read "Surely
you're joking, Mr Feynman"
[http://books.google.co.uk/books?id=Z7g-BAAAQBAJ&pg=PT170&lpg...](http://books.google.co.uk/books?id=Z7g-BAAAQBAJ&pg=PT170&lpg=PT170&dq=feynman+patent+dollar&source=bl&ots=WQXmJch_oO&sig=wAM2g81XXLukYdwq4AtYMmPGxqw&hl=en&sa=X&ei=X8_9U7HgCcjaaqjagcgJ&redir_esc=y#v=onepage&q=feynman%20patent%20dollar&f=false)

~~~
thaumasiotes
I was sort of darkly amused by the messaging eBay sends out to solicit patent
ideas from employees. One of the primary themes is "don't worry if it's
obvious; obvious ideas are still patentable".

~~~
nkozyra
Well, money is money and capitalism is capitalism. I have a pretty big
internal debate about the morality of our patent system, but probably wouldn't
bat an eye about proposing/provisioning/filing one for a nice bonus.

~~~
k__
Also, the lawyers are expensive and have to be worth their money.

------
duncan_bayne
A while back, someone was on HN asking why trust levels were so low when it
came to MS. If that person is still reading HN, the answer is "behaviour like
this".

------
shmerl
What are they smoking? It could be hilariously funny (like this
[http://www.theonion.com/articles/microsoft-patents-ones-
zero...](http://www.theonion.com/articles/microsoft-patents-ones-zeroes,599/)
) if it wasn't so crazy but true.

------
jokoon
I still need to understand how the patent office can still validate such
patent.

I've read over and over that the patent system is bad, but isn't it just the
patent office being incompetent instead ? Isn't that rather an expertise
problem ? Or are experts not even asked at all on those subjects ?

Can't anybody sue the patent office for abusive patents ? Or is it just that
the people at the patent office just depends on congress, thus making it
biased ?

~~~
wfjackson
It says right in the title, "filed", not "granted" or "validated".

~~~
jokoon
not talking about this one in particular. what about other creepy patents ?

