Software may, under various circumstances and in various countries, be restricted by patent or copyright or both. Most commercial software is sold under some kind of software license.
A patent normally covers the design of something with a function such as a machine or process. Copyright restricts the right to make and distribute copies of something written or recorded, such as a song or a book of recipies. Software has both these aspects - it embodies functional design in the algorithms and data structures it uses and it could also be considered as a recording which can be copied and "performed" (run).
"Look and feel" lawsuits attempt to monopolize well-known command languages; some have succeeded. Copyrights on command languages enforce gratuitous incompatibility, close opportunities for competition, and stifle incremental improvements.
Software patents are even more dangerous; they make every design decision in the development of a program carry a risk of a lawsuit, with draconian pretrial seizure. It is difficult and expensive to find out whether the techniques you consider using are patented; it is impossible to find out whether they will be patented in the future.
The proper use of copyright is to prevent software piracy - unauthorised duplication of software. This is completely different from copying the idea behind the program in the same way that photocopying a book differs from writing another book on the same subject.
Usenet newsgroup: news:misc.legal.computing.
["The Software Developer's and Marketer's Legal Companion", Gene K. Landy, 1993, AW, 0-201-62276-9].