ESP Wiki is looking for moderators and active contributors!

Difference between revisions of "Why software is different"

(for a software video player to be functional, it must read videos in precisely the format in which videos exist. That is to say, software video players have to read MPEG video formats, for exampl)
(Related pages on {{SITENAME}}: * How other domains are excluded from patentability)
(37 intermediate revisions by 9 users not shown)
Line 1: Line 1:
Software is different to traditional fields of engineering in many ways.
+
This page documents why software is not like pharmaceuticals, hardware, or other domains where ideas can be patented.
 +
 
 +
Some people think that patents are good for these other domains ([[Harm caused by all types of patents|others disagree]]), and that patents must then also be good for software.  This page documents why each domain is different and why positive effects in each domain don't necessarily translate to software.
 +
 
 +
Conversely, software is similar to innovative, patent-free fields such as [[Storyline and fashion patents|literature, film and fashion]].
  
 
==Studies on usage patterns==
 
==Studies on usage patterns==
Line 7: Line 11:
 
"''[s]oftware patents are more than twice as likely to be litigated as other patents''" - Bessen & Meurer, at 22.
 
"''[s]oftware patents are more than twice as likely to be litigated as other patents''" - Bessen & Meurer, at 22.
  
==Mathematical nature==
+
This was confirmed in the 2010 study [[Patent Quality and Settlement Among Repeat Patent Litigants]], page 27 (pdf page 28):
  
:''(see also: [[Software is math]])''
+
<blockquote>
 +
The overrepresentation of software patents in the most‐litigated set is quite remarkable.  Software patents constituted 20.8% of the once‐litigated patents but 74.1% of the most‐litigated patents.  And again, these differences are even more dramatic if we measure  not patents but assertions of those patents in litigation.  Software patents accounted for 93.7% of the assertions of the most‐litigated patents.
 +
</blockquote>
  
The rules that exclude software from patentability do so on the grounds of similarity with mathematics: you should not be able to patent a mathematical formula, and an algorithm is essentially the same as a mathematical formula. A mathematical formula is not patentable because it is like a law of nature: it is a discovery, not an invention.
+
==Practitioner profile==
  
==Abstraction==
+
In hardware domains, all producers with a significant commercial impact are medium to large companies.  There are hobbyists who produce cars, but they produce so few that their work will probably never attract the attention of patent holders.  In software it's very different, entire operating systems (such as GNU/Linux) have been written by primarily people whose activities were not backed by any entity with large financial and legal resources.
 
 
Software is highly abstract: you can't look at two pieces of software from the outside to see whether they look the same. Two engineers will describe the same piece of software in very different terms. It's therefore highly subjective whether the ideas embodied by one piece of software are essentially equivalent to the ideas in another. In short, there is no objective test for infringement.
 
  
 
==Problems and solutions are tied==
 
==Problems and solutions are tied==
Line 22: Line 26:
  
 
In contrast, for a software video player to be functional, it must read videos in precisely the format in which videos exist.  That is to say, software video players have to read [[MPEG video formats]], for example, in order to be useful.  So a patent excludes developers from the whole field rather than excluding them just from one method of doing that field of activity.
 
In contrast, for a software video player to be functional, it must read videos in precisely the format in which videos exist.  That is to say, software video players have to read [[MPEG video formats]], for example, in order to be useful.  So a patent excludes developers from the whole field rather than excluding them just from one method of doing that field of activity.
 
 
==The test of obviousness==
 
 
Because software is abstract, the test for whether an idea is obvious "to one skilled in the art" is very difficult to apply. The test cannot be based on the amount of effort expended in working out the idea, because the least obvious ideas are often the simplest. Nor is it clear what it means: what if an idea is obvious to a thousand of the best programmers in the world, but not obvious to a million others? Simultaneous and independent invention is not unique to the software field, but it is certainly a characteristic feature of software that good programmers will tend to come to the same solution independently.
 
 
==Prior art==
 
 
Because software is invisible, determining prior art is notoriously difficult. Many software patents appear to be granted despite the ideas being well known to practitioners, but it can be very difficult to find acceptable documentary evidence that the ideas were already in widespread use. Most programmers do not publish written papers about their work, for a variety of reasons: they are too busy, they don't consider the idea significant, or they don't want their competitors to know what they are doing.
 
  
 
==Continuous innovation==
 
==Continuous innovation==
 +
{{main|Software relies on incremental development}}
  
Programming is by its nature innovative. Programmers have new ideas every day, in a way that is not true of engineers in other fields. If every new idea were patented we would have billions of patents rather than merely tens of thousands. Many of these new ideas have little significance, but there is no meaningful way of distinguishing those that deserve a patent monopoly from those that do not.
+
Programmers have new ideas while developing software.  That is, while implementing the ideas they planned to implement, they will naturally need to think of other ideas.
 
 
By the same token, it is impossible for programmers to check every time they write a line of code whether it infringes a patent. Programmers take the risk of patent infringement every day, because they have no realistic alternative. It is unfair that society should penalise them for this.
 
  
 
==How patents on different domains affect society==
 
==How patents on different domains affect society==
Line 53: Line 47:
 
This question isn't pertinent to car manufacturing because individuals and communities don't manufacture cars in significant quantities - or at all.
 
This question isn't pertinent to car manufacturing because individuals and communities don't manufacture cars in significant quantities - or at all.
  
If someone patents a method for making a car, that doesn't reduce people's liberty.  Making cars requires a lot of cash and materials, and there are already many laws that places regulations and restrictions on making cars.  So people already excluded.  Adding a patent problem doesn't change anything.
+
If someone patents a method for making a car, that doesn't reduce people's liberty.  Making cars requires a lot of cash and materials, and there are already many laws that places regulations and restrictions on making cars.  So people are already excluded.  Adding a patent problem doesn't change anything.
  
 
For one thing, software is mass produced by individuals and groups who don't get paid directly for that work (or do it for non-commercial reasons).  Adding the cost of the patent system is unfair to these people.
 
For one thing, software is mass produced by individuals and groups who don't get paid directly for that work (or do it for non-commercial reasons).  Adding the cost of the patent system is unfair to these people.
  
 
Communities write great software (a community wrote most of [[GNU/Linux]]).  People should continue to have their right to participate in the development and distribution of software, and to continue to benefit from the work of the vast community that develops the software that people use.  Patents would create problems for individuals' liberty, and for the general software development which society as a whole benefits.
 
Communities write great software (a community wrote most of [[GNU/Linux]]).  People should continue to have their right to participate in the development and distribution of software, and to continue to benefit from the work of the vast community that develops the software that people use.  Patents would create problems for individuals' liberty, and for the general software development which society as a whole benefits.
 +
 +
{{rewrite}}
 +
 +
 +
==Mathematical nature==
 +
 +
{{also|Software is math|#Intangible}}
 +
 +
The rules that exclude software from patentability do so on the grounds of similarity with mathematics: you should not be able to patent pure expressions of mathematics and logic or their use by [[Software does not make a computer a new machine|an existing machine]] leading to [[#Software is unlike applied science|no novel invention in the physical sciences]]. This is exactly what we have, either when we consider software as text, or when looked at as a set of steps (algorithms) being carried out by a machine purely to determine a new answer to something, changing saved information, and communicating the results (acts that require just a "mind" and trivial uses of existing physical parts used in their ordinary ways, much as a human uses a mind while using eyes and ears to acquire extra information and finally a mouth and hands with basic utensils to communicate and record what was processed in the mind -- no novel invention in the physical sciences got created).
 +
 +
==Abstraction==
 +
Software is highly abstract: You can't look at two pieces of software from the outside to see whether they look the same. Two engineers will describe the same piece of software in very different terms. It's therefore highly subjective whether the ideas embodied by one piece of software are essentially equivalent to the ideas in another. In short, there is no objective test for infringement.
 +
 +
==Complexity abstraction==
 +
Software is very complex so can be abstracted (described) in many different ways by a patent. This means a collaborative work from geniuses is summarily blocked off as easily as is a very low "kindergarten quality" work since each can be abstractly described with the same brief patent claim words regardless of their complexity and quality.
 +
 +
[[Analogies#Literature|The literature analogy]] begins to describe the problem to society of allowing complex and high quality works to be inhibited based on abstracted descriptions.
 +
 +
==Intangible==
 +
Like [[#Mathematical nature|mathematics]], [[http://www.gnu.org/philosophy/software-literary-patents.html fiction]], [[Analogies#Music|music]], and law, software (thanks to digitalization) is purely a product of the mind with no inherent tie to the physical.
 +
 +
Some properties of note.
 +
 +
*Intangible products do not involve shaping physical bodies to cover each intellectual idea.
 +
 +
*This lack of a heavy material anchor leads to rapid evolution of intellectual products as compared to physical inventions.
 +
 +
*No natural scarcity: Everyone can write as much software as they want and can make as many copies as they want. A patent can thus destroy an unlimited amount of even largely original contributions (and pre-empting copyright law).
 +
 +
*Many participants affected.  The [[#Low Risk|costs]] to contribute to shaping an intangible product are one's own time and existing relatively inexpensive materials. [[Software is too abstract, patent quality is bad|Broad patenting]] means even more people are affected. A patent can thus stifle many individuals.
 +
 +
*It is speech (as source code) and [[http://www.philsalin.com/patents.html free expression]].
 +
 +
*The synergies and access enhanced by the Internet apply. Patents place these gains in jeopardy.
 +
 +
*It is an abstract system [[http://www.groklaw.net/article.php?story=20101007030644178 distinct]] from reality.
 +
 +
Introducing patents to this domain is a radical change.
 +
 +
==The test of obviousness==
 +
 +
Because software is abstract, the test for whether an idea is obvious "to one skilled in the art" is very difficult to apply. The test cannot be based on the amount of effort expended in working out the idea, because the least obvious ideas are often the simplest. Nor is it clear what it means: what if an idea is obvious to a thousand of the best programmers in the world, but not obvious to a million others? Simultaneous and independent invention is not unique to the software field, but it is certainly a characteristic feature of software that good programmers will tend to come to the same solution independently.
 +
 +
==Prior art==
 +
 +
Because software is invisible, determining prior art is notoriously difficult. Many software patents appear to be granted despite the ideas being well known to practitioners, but it can be very difficult to find acceptable documentary evidence that the ideas were already in widespread use. Most programmers do not publish written papers about their work, for a variety of reasons: they are too busy, they don't consider the idea significant, or they don't want their competitors to know what they are doing.
 +
 +
Patent examiners miss lots of prior art because they are not required by law or regulation to review the vast quantity of public source code available. In fact, as covered in [[http://www.philsalin.com/patents.html point two of this rebuttal to the State Street decision]] (before State Street's "new and useful" test was invalidated by Bilski) no one can tame all of the existing art.
 +
 +
This [[Invalid patents remain unchallenged|sizable]] imperfection being an [[Infringement is unavoidable|inherent and unavoidable part of the system]] means that, without a [[The failing solutions are expensive|very inexpensive method]] to legally refute a legal claim of infringement and/or without serious penalties to those that make claims that don't hold up later on in court, the patent system will continue to be [[Examples of use for sabotage|(ab)used]] readily as a tool to [[Patent ambush|shake down]] [[Costs are astronomically disproportionate for SMEs and individuals|individuals]] and [[Software patents harm SMEs|SMEs]] and to [[Cost barrier to market entry|stifle competition]].
 +
 +
==Low risk==
 +
 +
{{also|Low risk}}
 +
 +
The devil's bargain can be called a bargain only if it benefits someone besides the devil. A major justification for the bargain, the encouragement of entry by new people with new ideas into industries with high cost of entry, i.e. high risk, does not apply to software development. Software development is exceptionally cheap, thus [[low risk]].
 +
 +
==Software is unlike applied science==
 +
 +
Software has one fundamental difference as compared to other sciences, and that's of predictability.  Other industries, such as the pharmaceutical industry and manufacturing, require a significant amount of research into nature and a sort of alchemy in order to learn the secrets held by nature alone necessary for progress.  Patents protect the investment that go into such research, in exchange for sharing the acquired knowledge with the world so it will not be lost.
 +
 +
With software, it's different.  By its very definition, the outcome of software is always deterministic and predictable.  It is fairly predictable that combining disk compression with an operating system will yield an operating system that can squeeze more files onto a disk.  It is fairly predictable that one-click ordering will be faster and more convenient than two- or three- click ordering.  Neither of these require any significant amount of research.  A main purpose of a patent is to incentivize disclosure of nature's relevant secrets for the public good, with exclusivity that comes at public expense.
 +
 +
Unlike the recipe for penicillin, the "disclosure" that one-click ordering is convenient did not come after a billion dollars of research.  There is no good reason it should be rewarded at the public's expense the same way.
  
 
==Related pages on {{SITENAME}}==
 
==Related pages on {{SITENAME}}==
 +
 
* [[Why focus only on software]]?
 
* [[Why focus only on software]]?
 +
* [[Software is too abstract, patent quality is bad]]
 +
* [[Software patents are unreadable]]
 +
* [[2008 Berkeley Patent Survey]] - showing differences between patenting of software and biotech
 +
* [[Breaks common software distribution models]] - a patent problem unique to software
 +
* [[Cost of defending yourself against patent litigation]]
 +
* [[How other domains are excluded from patentability]]
  
 
==External links==
 
==External links==
Line 68: Line 133:
  
  
{{page footer}}
+
{{footer}}
[[Category:Arguments]]
 
 
[[Category:Software]]
 
[[Category:Software]]

Revision as of 16:50, 1 September 2013

This page documents why software is not like pharmaceuticals, hardware, or other domains where ideas can be patented.

Some people think that patents are good for these other domains (others disagree), and that patents must then also be good for software. This page documents why each domain is different and why positive effects in each domain don't necessarily translate to software.

Conversely, software is similar to innovative, patent-free fields such as literature, film and fashion.

Studies on usage patterns

The 2008 Berkeley Patent Survey revealed big differences between software companies and biotechnology companies in their use of patents.

"[s]oftware patents are more than twice as likely to be litigated as other patents" - Bessen & Meurer, at 22.

This was confirmed in the 2010 study Patent Quality and Settlement Among Repeat Patent Litigants, page 27 (pdf page 28):

The overrepresentation of software patents in the most‐litigated set is quite remarkable. Software patents constituted 20.8% of the once‐litigated patents but 74.1% of the most‐litigated patents. And again, these differences are even more dramatic if we measure not patents but assertions of those patents in litigation. Software patents accounted for 93.7% of the assertions of the most‐litigated patents.

Practitioner profile

In hardware domains, all producers with a significant commercial impact are medium to large companies. There are hobbyists who produce cars, but they produce so few that their work will probably never attract the attention of patent holders. In software it's very different, entire operating systems (such as GNU/Linux) have been written by primarily people whose activities were not backed by any entity with large financial and legal resources.

Problems and solutions are tied

There are many ways to cure rubber. These methods can be used to cure various types of rubber and the output will be usable for any product that requires cured rubber. The inputs and outputs don't define what method of rubber curing must be used - the curer is not required to use a specific method.

In contrast, for a software video player to be functional, it must read videos in precisely the format in which videos exist. That is to say, software video players have to read MPEG video formats, for example, in order to be useful. So a patent excludes developers from the whole field rather than excluding them just from one method of doing that field of activity.

Continuous innovation

Main article: Software relies on incremental development

Programmers have new ideas while developing software. That is, while implementing the ideas they planned to implement, they will naturally need to think of other ideas.

How patents on different domains affect society

One thing to keep in mind is that plenty of things are excluded from patentability. Being excluded doesn't mean that software is special.

For the manufacturing of cars, you have to consider how patents will affect:

  1. the cost of mass production
  2. the impact on quality/safety of what's offered to citizens
  3. the impact on the economy overall

Campaigners against software patents are usually not general experts on those topics, so we might not know if innovations in car manufacturing should be patentable or not.

For software, there are similar questions to the three above, plus there is the fourth question of individual liberty and the effectiveness of communities.

This question isn't pertinent to car manufacturing because individuals and communities don't manufacture cars in significant quantities - or at all.

If someone patents a method for making a car, that doesn't reduce people's liberty. Making cars requires a lot of cash and materials, and there are already many laws that places regulations and restrictions on making cars. So people are already excluded. Adding a patent problem doesn't change anything.

For one thing, software is mass produced by individuals and groups who don't get paid directly for that work (or do it for non-commercial reasons). Adding the cost of the patent system is unfair to these people.

Communities write great software (a community wrote most of GNU/Linux). People should continue to have their right to participate in the development and distribution of software, and to continue to benefit from the work of the vast community that develops the software that people use. Patents would create problems for individuals' liberty, and for the general software development which society as a whole benefits.


Red alert.png This entry is not reader-friendly.
You can help us rewrite it in a more readable and concise way using our style guide.


Mathematical nature

See also: Software is math and #Intangible

The rules that exclude software from patentability do so on the grounds of similarity with mathematics: you should not be able to patent pure expressions of mathematics and logic or their use by an existing machine leading to no novel invention in the physical sciences. This is exactly what we have, either when we consider software as text, or when looked at as a set of steps (algorithms) being carried out by a machine purely to determine a new answer to something, changing saved information, and communicating the results (acts that require just a "mind" and trivial uses of existing physical parts used in their ordinary ways, much as a human uses a mind while using eyes and ears to acquire extra information and finally a mouth and hands with basic utensils to communicate and record what was processed in the mind -- no novel invention in the physical sciences got created).

Abstraction

Software is highly abstract: You can't look at two pieces of software from the outside to see whether they look the same. Two engineers will describe the same piece of software in very different terms. It's therefore highly subjective whether the ideas embodied by one piece of software are essentially equivalent to the ideas in another. In short, there is no objective test for infringement.

Complexity abstraction

Software is very complex so can be abstracted (described) in many different ways by a patent. This means a collaborative work from geniuses is summarily blocked off as easily as is a very low "kindergarten quality" work since each can be abstractly described with the same brief patent claim words regardless of their complexity and quality.

The literature analogy begins to describe the problem to society of allowing complex and high quality works to be inhibited based on abstracted descriptions.

Intangible

Like mathematics, [fiction], music, and law, software (thanks to digitalization) is purely a product of the mind with no inherent tie to the physical.

Some properties of note.

  • Intangible products do not involve shaping physical bodies to cover each intellectual idea.
  • This lack of a heavy material anchor leads to rapid evolution of intellectual products as compared to physical inventions.
  • No natural scarcity: Everyone can write as much software as they want and can make as many copies as they want. A patent can thus destroy an unlimited amount of even largely original contributions (and pre-empting copyright law).
  • Many participants affected. The costs to contribute to shaping an intangible product are one's own time and existing relatively inexpensive materials. Broad patenting means even more people are affected. A patent can thus stifle many individuals.
  • The synergies and access enhanced by the Internet apply. Patents place these gains in jeopardy.
  • It is an abstract system [distinct] from reality.

Introducing patents to this domain is a radical change.

The test of obviousness

Because software is abstract, the test for whether an idea is obvious "to one skilled in the art" is very difficult to apply. The test cannot be based on the amount of effort expended in working out the idea, because the least obvious ideas are often the simplest. Nor is it clear what it means: what if an idea is obvious to a thousand of the best programmers in the world, but not obvious to a million others? Simultaneous and independent invention is not unique to the software field, but it is certainly a characteristic feature of software that good programmers will tend to come to the same solution independently.

Prior art

Because software is invisible, determining prior art is notoriously difficult. Many software patents appear to be granted despite the ideas being well known to practitioners, but it can be very difficult to find acceptable documentary evidence that the ideas were already in widespread use. Most programmers do not publish written papers about their work, for a variety of reasons: they are too busy, they don't consider the idea significant, or they don't want their competitors to know what they are doing.

Patent examiners miss lots of prior art because they are not required by law or regulation to review the vast quantity of public source code available. In fact, as covered in [point two of this rebuttal to the State Street decision] (before State Street's "new and useful" test was invalidated by Bilski) no one can tame all of the existing art.

This sizable imperfection being an inherent and unavoidable part of the system means that, without a very inexpensive method to legally refute a legal claim of infringement and/or without serious penalties to those that make claims that don't hold up later on in court, the patent system will continue to be (ab)used readily as a tool to shake down individuals and SMEs and to stifle competition.

Low risk

See also: Low risk

The devil's bargain can be called a bargain only if it benefits someone besides the devil. A major justification for the bargain, the encouragement of entry by new people with new ideas into industries with high cost of entry, i.e. high risk, does not apply to software development. Software development is exceptionally cheap, thus low risk.

Software is unlike applied science

Software has one fundamental difference as compared to other sciences, and that's of predictability. Other industries, such as the pharmaceutical industry and manufacturing, require a significant amount of research into nature and a sort of alchemy in order to learn the secrets held by nature alone necessary for progress. Patents protect the investment that go into such research, in exchange for sharing the acquired knowledge with the world so it will not be lost.

With software, it's different. By its very definition, the outcome of software is always deterministic and predictable. It is fairly predictable that combining disk compression with an operating system will yield an operating system that can squeeze more files onto a disk. It is fairly predictable that one-click ordering will be faster and more convenient than two- or three- click ordering. Neither of these require any significant amount of research. A main purpose of a patent is to incentivize disclosure of nature's relevant secrets for the public good, with exclusivity that comes at public expense.

Unlike the recipe for penicillin, the "disclosure" that one-click ordering is convenient did not come after a billion dollars of research. There is no good reason it should be rewarded at the public's expense the same way.

Related pages on ESP Wiki

External links

Counter articles