Let’s say I make a computer program that I think is novel and I don’t want MicroSquish or Norton or anyone else to steal the functionality and make money of my idea. I know I can patent it but what exactly gets patented. I know it is not the code itself; I believe that is copyrighted but correct me if I’m wrong. Do I patent the function? The look and feel?
You patent the functionality of your creation. It is similar to a process patent. Usually with software patents you have to defend yourself against claims of prior art. Since you’ve obtained a patent, any legitimate challengers are usually willing to cross license with you to gain the same level of protection. Even though it’s rare that software is novel, the courts are terrible at resolving such issues. There are businesses that consist of buying software patent rights and suing companies that are infringing. Considering the costs of fighting such suits and the potential loss, companies usually settle by paying a licensing fee since the patent rights are otherwise worthless to it’s owners.
You patent whatever is new and original. You could patent the look and feel if that is significantly original. Design patents are especially good for some of these things. If it’s the internal way the program works, you patent just like anything else. Figured out a new way to solve the Traveling Salesperson Problem? Patent it and make $.
Copyright can protect the “text” of the program, both source and executable. But if someone rewrites your code from scratch, then there is no protection even if the method is the same. (Which is how the original non-IBM PC BIOSes came about. One group figured out how the BIOS worked. A separate group wrote new code. No copying.) There are groups like the WINE project (Windows under Linux) and Samba (an implementation of MS’s network filesystem protocol) that do just this. So someone could reverse engineer how your code solves the Traveling Salesperson Problem and write entirely new code without violating copyright. Which is what patents are for. So MS has patented some stuff related to NTFS, for example, and occasionally goes after someone when the whim strikes them.