Hacker News new | ask | show | jobs
by jandrewrogers 954 days ago
The application of patents and copyrights to software are identical to how they are applied in chemistry and other physical engineering disciplines -- I've worked with both. A patent covers the physical algorithm, a copyright covers the design of an implementation of the algorithm. In chemical engineering, these are licensed separately, but the patent is more important and the copyright is worth little in practice.

The algorithm is the expensive step, design of a novel implementation (a copyright) is purely mechanical and any engineer can produce this part. If there was no patent, everyone would just pay an engineer to produce a new implementation of the chemistry algorithm. This would put the inventor of the chemistry at a huge disadvantage, since the costs of producing a new copyright is the same for everyone but only the inventor would have to amortize the cost of the invention. It would be more economical to never license the copyright from the inventor in many cases.

Regardless of the mechanism, the question ultimately comes down to who is going to pay for the cost of R&D. Copyright does not answer this question either in theory or in practice.

The alternative to patents is trade secrets, which have their own issues. In areas of software that use trade secrets almost exclusively, the state-of-the-art in software is often decades ahead of academic literature and open source. The cloud has been a huge boon for software trade secrets in that it makes reverse engineering difficult. Trade secrets makes it difficult for outside people to advance the state-of-the-art because the know-how is not public and creates negative externalities in terms of employment contracts.

To address another notion, virtually no R&D is done in open source. This is an empirical observation made by many. The incentives for doing R&D in open source are very poor. There are already large gaps in technology between what is available in open source and what exists in closed source software. Again, it all comes down to who is going to pay the significant costs of R&D.

1 comments

Your wording is a bit confusing I think. Algorithms are not physical as far as I'm aware. Since (pure) algorithms and formulas are different ways to express mathematics, my impression was also that they were not patentable as such. Maybe you meant something slightly different?

Also, do you have sources for the statement "virtually no R&D is done in open source"?

Algorithms are not physical either in software or chemistry. Patents in chemical engineering are essentially a set of differential equations that can be applied to a real system, no different than software algorithms. If you replace “molecules” with “bits”, it is identical to software. Patents in chemistry have no connection to specific physical machinery, they are abstract concepts. The reason software algorithms are patentable everywhere is that they can be manifested as concrete logic circuits and electronic circuits are patentable.

I have no source for the lack of R&D in open source. It is a widely held view even within parts of open source, often commented on, and generally not considered controversial. As an example I am personally familiar with, database technology is virtually all developed privately and is far ahead of what is available in open source. Open source tends to copy whatever bits leak out, is decades behind the state-of-the-art, and the gap has been getting worse over time.

Software that requires man-years of extremely specialized expertise to produce tends to be a poor fit for open source. The people with these skills are well-paid and in high demand, often with contractual clauses that do not allow them to work on open source. They have families and other interests. There are few incentives to spend years of their lives building this software for free.

If this kind of software is to become open source, it will require incentives that are not a pure loss for those that know how to build it. This is the current situation. Someone has to pay for it.

So, algorithms are not automatically (supposed to be) patentable like you suggest, quite the opposite. Although on both sides of the Atlantic people have been bending the rules one way or the other for quite some time.

US: https://en.wikipedia.org/wiki/Alice_Corp._v._CLS_Bank_Intern...

EU: https://en.wikipedia.org/wiki/Software_patents_under_the_Eur...

Nevertheless, Software Patents do not appear to be suitable for purpose.

> "[open source, and thus public information!] is decades behind the state of the art"

It would appear that software patents are not actually actually incentivizing the disclosure of workable methods-of-the-art to society. In fact, I don't hear of people using software patent documents to make something, like mechanical people sometimes do. I would love to be shown to be wrong on this. AFAIK, a practitioner of the art cannot take a software patent and trivially implement it.

Unlike a patent, a practitioner of the art can take a unit of FLOSS code and implement and/or improve it. So, based on your view of the world, open source seems to be taking the niche that software patents should have been creating.

On the one hand, fortunately the situation isn't quite as horrible as you suggest, and there are in fact innovative FLOSS projects. In part because some companies are incentivized to release their work as FLOSS to begin with, or work with a central FLOSS pool. On the other hand, this is all voluntary. There are often good incentives to defect from many different voluntary IP arrangements, even those that do include use of patents (see the case of H.265 ).

I think -with regards to software- that we are going to need a very different way of approaching IP. The current patent system is quite clearly useless at getting people to actually disclose their secrets, so we'll need a different method.

To be clear, I am entirely in the camp of algorithm patents being largely ineffective in software. I am not advocating for them, just recognizing the reality today.

In my view, the default outcome will be trade secrets, and it is already the case in many software areas. This has limits in practice as software trade secrets do have a tendency to leak out. I know a few clever database algorithms that are almost certainly trade secrets somewhere (origin is unclear), passed down but not in any public literature. On the other hand, I am aware of major (qualitative) tech advancements in e.g. graph algorithms that have not leaked after 15 years.

I think we need to be clear about the objective with IP law.