Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Reading answers to this question - and many other discussions of software patents - it seems that most of us as programmers feel that software patents are a bad idea. At the same time we are in the group most likely to lose out if our work is copied or stolen.

So what level of Intellectual Property Protection does code and software need? Is copyright sufficient? Are patents necessary? As software is neither a physical object nor simple text, should we be thinking of a third path that falls somewhere between the two? Do we need any protection at all? If you had the facility to set up the law for this, what would you choose?

share|improve this question

closed as primarily opinion-based by MichaelT, Kilian Foth, GlenH7, Dan Pichelman, gnat Oct 21 '14 at 13:50

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

8 Answers 8

up vote 10 down vote accepted

My general feeling about software patents is that they don't make sense.

First off, contrary to popular belief, you can not patent an idea. You can patent the execution of an idea, but no the idea itself. Ideas are cheap and often times if there is a need for something, multiple people will come up with the same idea for a solution.

If you have two developers that have a similar idea and sit down and design a solution, at the very core, if they are following best practices and such, the solution design will be similar. They may differ in languages, database choice, and all that, but fundamentally and from a non-technical person's point of view they will look similar or even the same.

Software patents assume that there is only one way to implement a solution and that if that first person hadn't of figured it out, then no one would have. That is complete nonsense.

Software development is a field that is made up of very smart problem solvers who enjoy creating nice code. We all have the basic building blocks to do this too.

The main purpose of patents (again, contrary to popular belief) is to promote the development of new innovations by granting inventors a government granted monopoly for a set period of time.

Does our field really need this incentive to innovate and create? IMHO, no. Even if some people think so, it is false to assume that just because someone came up with an algorithm to solve a problem that no one else could/would have.

share|improve this answer
"...often times if there is a need for something, multiple people will come up with the same idea for a solution.": I would add, that the same idea is developed by multiple people in a given context: noone would have invented Email 100 years ago. And this context (all the inventions, ideas, ...), which makes the new idea possible, we got for free. So why should we charge money because we made the last step of a long and complex chain while all the people who made the remaining 99% of the work get nothing? – Giorgio Oct 21 '14 at 5:32

IMO, copyright is enough. There is just too much abuse with patents to justify its applicability to software. Patents are useful and necessary in domains where making the invention is extremely costly, but using the invention is cheap; e.g. drugs that cost billions to develop. But that's not the case with software.

Too many software patents cover simple, cheap ideas. Many people can have the same idea, which is in too many cases just a straightforward solution to a common problem. Only large companies have the necessary money to aquire and defend patents, but I don't think those companies need software patents. Many companies just get them to be able to defend against patent ligitation.

share|improve this answer
+1: From what I've read, the software patent arsenals have two purposes: income through cross-licensing, and exclusion of those who won't cross-license or have no patents of their own to trade. None of this increases the amount of creative work, which in the U.S. was the explicitly stated purpose of creating patent and copyright laws. – Larry Coleman Dec 30 '10 at 14:24

Copyright is enough. Programmers that want patent - laws to be enforced are shooting themselves in the feet, and in my personal opinion - are just hypocritic IDIOTS. As everyone else we have learned everything from books and how other people did things. Every website or app is a copy or prooven solutions from thousands of apps / websites (menus, shopping carts, account login, etc.). There is no way to do a compatible login differently that by asking login and password information.

With so many stupid "ideas" already patented it'd be impossible to develop anything without paying royalties to thousands maybe tens of thousands of companies or becoming a slave of some corporation, that could protect you from patent litigation by using counter-trials and massive "legal" resources.

Shopping cart, presenting image of merchandise on webshop, even displaying logo of mastercard as a payment option is patented.

And the bad thing is every patent is a monopoly. Someone patents displaying mastercard logo on the website as a way to "quick display of payment options", and you can't display it without him allowing you to. Even worse, you can't ask other company because there is always only one patent holder.

So scums like some patent troll companies can patent displaying your logo on the website. That means ruin your company, and website owners. Because they'll be telling others what to do with your own (!!) logo! Even worse - they can patent usage of your technology, like more and more companies are patenting "technologies" (read bullshit) related to WWW and literally ROB YOU of your clients and money.

There is a lot of bullshit going on in IT, because most people won't get it. If someone would came with an idea to patent shop shelve, book index or shopping basket people would think he's out of his mind. But if you want to patent internet shopping cart or displaying a photo on the website - it's patented already! Because that's "sophisticated technology" (that any high-school kid could "invent" and then implement).

There's no such thing as "intellectual property", it's just bullshit, you can't "own" ideas or have exclusive right to think about something. When you took one year to implement something you have exclusive right to use/sell it and that's copyright.

share|improve this answer

As I'm mostly working within the scientific community, I'm mostly used to implementations of algorithms and techniques that are published in peer-reviewed journals. These are part of the public domain. The gain for the developer of the technique/algorithm lies within the citations to his or her original paper. These are what matters when going for another position.

This said, I think it's pretty hard to patent software for a number of reasons. First of all, the patent has to be very well outlined. A patent for a social network is just not enough, it has to be about a specific implementation. But that specificity is a drawback as well: Anything that is not fitting within the specification, is strictly speaking no violation of the patent. So something that looks like it but isn't the same, will pass. And that's not too difficult to do, as has been proven in many, many cases.

Copyright on code is perfectly sound and an automatic right. Nobody should copy your code and get rich with it. But then again, refactoring code isn't too hard either, so again you have only little protection. It gets a bit better when talking about a specific smart database design, but then again you'll have to prove you're the first one who tought about that. Given the literally billions of lines of code written every year, that's going to be hard as well.

You can try to protect your code, but the only people that are sure to get rich from patenting and copyright cases are the lawyers. At one point, somebody will find a way to copy your idea within the bounds of either patent law or copyright law. So better just leave it at that and make sure you make the back-engineering of your application pretty hard for any copy-cat. Today, customers are more bound by the support given than by the original application anyway, so that's where a company should put their money in my humble view.

Maybe one good illustration is the hybrid car: It's patented allright, but that didn't stop other car builders from coming up with a similar idea. And as long as it is not an exact copy, there's little that can be done about it. So rather than fighting big legal wars, they just put that money in new developments, trying to stay one step before the rest.

share|improve this answer

If an algorithm is named after you, let that be your legacy

Speaking frankly, although software can be "secured" legally, in actual practical terms it can never be fully protected.

If you happen to create or discover a real worthwhile algorithm, then the world will come to know it, you will automatically get that recognition (if its useful).

In short, your legacy is your "protection"

That's my view any way.

share|improve this answer

Copyright is not enough since you can have multiple different implementations of the same algorithm.

Copyright is automatic, you have to prove your legacy. Patents are not automatic, you must apply for one before talking about it in public.

Patent has a huge disadvantage: you have to describe your algorithm in details, and publish it!

Many companies choose not to protect their software for that reason. Especially when they don't have to ship any binaries, for example SaaS. Nobody will be able to use it outside the your environment. Nobody will be able to use existing findings to improve it.

share|improve this answer
When you say "Not protecting it at all" I assume you are referring to the fact that a patent includes a requirement for publication and by not protecting it you are also not publishing it? – glenatron Dec 30 '10 at 12:27
Yes I just inversed the two sentences because it was confusing. Protection is there, but by the fact you don't ship your binaries/source code. – user2567 Dec 30 '10 at 12:28
That's not a huge disadvantage. Patent trolls aren't preventing people from using difficult algorithms, they are using overly broad patents to prevent people from, e.g., linking users to the full version of the app. The explanation of that method helps exactly nobody (because it's obvious) but the patent has already harmed many. – John Cartwright Mar 13 '13 at 4:15

To give my own view- I know I'm answering my own question, bad form etc - I am of the opinion that if there is a need for IP protection on software or algorithms that the existing patent system is absolutely unsuited to it.

I think the real problem is one of duration in addition to those raised of poor quality patents being passed. Software moves much faster than regular engineering.

If there is to be any facility for patents on software ( and I don't see this as necessarily bad - particularly if you had a situation where you have a device with embedded code and the software provides the innovative step ) then it seems to me they should be in their own class- perhaps offering more protection than straight copyright but with a strict time limit of, for example, 18 months. That is plenty of time to exploit a design and get a significant advantage in the market but not long enough to prove chilling to future developments in the field. I would want to see them made available to completely open online peer review in addition to a regular patent process, so other interested parties could highlight prior art or problems with the patent before it was granted. I would expect this to result in fewer higher quality patents in the field and hopefully a relatively cheap patent process.

Ideally once this was implemented I would want to see all existing software patents switched over to this format, which would mean that the vast majority would instantly expire.

I'm sure there are too many entrenched interests to permit any such reform happening, but if I had the choice to design the system from the ground up, this is the kind of thing I would want to see.

share|improve this answer

Software or computer program can be protected by copyright, trade secret or patent.

Trade secret: In trade secret the scope of protection is narrow. Since it only applies to the group of people that have confidential access to this information and are obliged to not disclose it. Once the trade secret becomes public it no longer enjoys the protection. Furthermore, there is no protection from independent invention and the secret might still be lost or exposed when it is obtained by reverse engineering the software.

Copyright: Under copyright law, software or the computer program is usually regarded as a "literary work". The unique characteristic of computer programs that differentiate them from other literary works is their dynamic essence, which usually includes algorithms or mathematical formulae's or logical condition etc, which manipulate symbols producing certain virtual or physical effects,etc. Copyright law provides protection to the software or the computer program´s expression and not the functional aspects of the software. Hence, computer programs differ from other copyright-able subject matter, in the sense that the text is not the most important aspect; rather the importance lies in the functions established by the program code.

Patent: Patent is becoming the method of protection of computer program's or software. Patent is an exclusive right granted for an invention, which comprises a product or process. In order to meet patent-ability criteria, an invention must be novel or confers a new solution to a technical problem, useful and non- obvious to one of "ordinary skill" in the field of invention. The protection conferred by the patent is limited in time, generally 20 years since the granting of the patent.

So one might say that a computer program or software protected under copyright law protects an original work in the tangible fixed form in which it has been set down, whereas a computer program or software protected under the patent law protects the creation of inventive concepts as well as their practice.


share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.