Out of 6 languages recommended by the NSA, 4 are patended bvy multibillion comanies who can pull the plug on them at any time (and Oracle already tried that).
C# - PATENTED by Microsoft,
Go - PATENTED by Google
Java - PATENTED by Oracle, NOT FREE
Python - not too shabby
Rust - not too shabby
Swift - PATENTED by Apple
@sos Interesting, would you mind sharing the patent numbers or linking to somewhere they are listed?
@diazona With all due respect, I believe you're able to look this up yourself.
It's not like it's hidden knowledge, there's a PATENT file in C# (Mono) and Go codebase with a patent exceptions, Java is not really news, and Apple patent seems the shadiest as I coudn't find any info about a patent exception/grant for Swift except for the fact that they did quietly patented it.
The separate PATENTS file in go.git is no different than the Apache License 2.0 §3 or the GPLv3 §11. If Go were under the GPL or Apache, you wouldn't say "It's clearly there in the COPYING file".
Furthermore, the grant in the PATENTS file (same as GPLv3 or Apache) means that they *can't* use patents to pull the plug on you, as your original post asserts.
The same is probably true of PATENTS.txt in mono.git, but I'm not familiar with it and it's long enough I'm not going read it.
- They probably don't even know if they have patents that apply to Go/Swift/C#. If they did, they'd list them. They know that they have many many patents, and so it's easier (cheaper!) for them to just say "whichever of our patents are relevant to Go/Swift/C# -- you have a license to use those".
- Defensive purposes. The Apache License 2.0, the Go PATENTS, and Mono PATENTS.txt terminate if you try to sue the grantor for patent infringement.
@lukeshu @diazona But it's not impossible for them to start enforcing them. Is it?
Two things I've learned in my time as a developer are:
- You don't trust corporations, even if you have stuff in writing, they'll pay damages and roll all over you
- Software patents are the worst thing in software development and you don't want to be anywhere near anything patented.
- It's impossible for them to renege: just as the copyright license is a legally binding "we won't use the copyright against you", the patent grant is a legally binding "we won't use the patents against you".
- Software patents *are* the worst. Which is why the community demands that modern FOSS licenses include a patent grant, to neutralize the threat of patents. You should be concerned that Python doesn't have a patent grant, not that Go does.
@planettimmy @lukeshu @sos This all touches on one of the things that bothered me about the original toot, too (but I didn't want to mention it without taking some time to consider): technically it's not right (or at least not very useful) to say that "Python is patented" or "Go is patented" or so on. There will be patents covering specific algorithms and features that are incorporated into those languages and/or their standard libraries, but that doesn't mean the language as a whole is patented. (A programming language could probably be patented, I've seen something along those lines, but it's unusual for any language that intends itself to be widely adopted)
When comparing different languages in this axis, it's important to consider how much of what makes up "the language" is actually subject to patent protection and what restrictions that really entails in practice. It's not a binary decision, patented or not.
Yes, it does cost a lot of money to file a patent. But it's mostly chicken feed to these multi-billion dollar companies.
And as for giving up patent IP for humanity. I know they *sometimes* do as they have done it for at least one of my patents. The main rationale is that the idea behind the patent only works with widespread adoption and protected IP usually kills that. c/f programming languages and protocols.