By Bill Hollins
Unless released into the public domain, all software is copyrighted by default, and it’s important to follow copyright law in order to avoid legal trouble. If you’re just writing some code for yourself, you can ignore copyright issues, but if you use software written by someone else or want to distribute your program to other people, it’s important to understand the law. While only a lawyer can give legal advice, there are some general tips that it may be helpful to understand.
There are some general classes of software licenses. The first one is a proprietary license. You generally cannot do anything with the code besides use it. Modifying it, giving it to other people, and reverse engineering the program are all generally banned. This is common for commercial software, such as operating systems and popular programs. This means that you can’t include proprietary software in code that you write without getting permission for the copyright holder. There are some exceptions, for example operating system libraries. These are generally distributed under a proprietary license that lets you link to them in your code but not distribute them. So as long as the user has a copy of that operating system, you can just give them your code, and it will use the copy of the library that is on the user’s computer.
The other major class of licenses is free software and open source licenses. These often let you use their code in your own programs, but they can have widely varying restrictions.
The most widely used license of this type is the GNU General Public License (GPL). It currently exists in version 2 and 3, but they are substantially the same for most applications. This license requires the software developer to give you access to the source code of any program that they distribute. You can use this code in your own applications, but you also have to distribute the code under the GPL. So if you wanted to distribute a program that used GPL code, you would have to make the source code available and redistributable.
Another important license is the GNU Lesser General Public License (LGPL). It’s mostly the same as the GPL, but you can have your code link to LGPL libraries and license your code however you want. There are some restrictions. For example, you can’t forbid users from modifying the LGPL library as they please, but you can license your original code in any way you wish.
The other major class is what is called permissive licenses. There are many of these, but the two major ones are the BSD license and the MIT license, which are very similar. Both licenses allow you to redistribute the code and include it in your programs while choosing whatever license you like. The only restriction is that you must distribute the license info for the included software with your application, giving attribution to the original developer of the software.
Software licenses can be confusing, but understanding them is important in order to stay out of legal trouble. There are many different licenses, each with their own unique terms, and you should understand that you are allowed to do something with a piece of software before doing it.
Thanks for reading my article. There’s lots more great information written by me about programming languages at http://programminglanguagehelp.com
Article Source: http://EzineArticles.com/?expert=Bill_Hollins