You need sound coding skills to create good software, but the success of an open source project can also depend on something much less glamorous: your choice of software license.
That's because the license under which you make your code available has a real impact on what you can do with your code, who will contribute to it, and ultimately whether it gets widely used or ignored.
"If you are hoping to get your code incorporated into a bigger system then some open source licenses may put people off," says Mark Johnson, development manager at OSS Watch, an organization that provides advice and guidance on the use, development, and licensing of free and open source software.
"If you use the Gnu General Public License (GPL), for example, some people won't touch it as they'll be worried about incorporating GPL code into their product. On the other hand, if you don't use the GPL then some developers simply won't be prepared to contribute, so picking the right license really depends on who you are targeting your software at."
As an independent developer you are under no obligation to use any license at all, but that may have unintended consequences. That's because many people believe that by providing no licensing terms they are releasing it into the public domain. In fact, the reverse turns out to be the case: If you release your code without any license then it is automatically copyrighted. That means that no-one can reproduce, distribute, or create derivative works from it.
If you really want to turn your code over to the public domain, the surest way is to offer it with an " unlicense" — a notice that combines a copyright waiver with a no-warranty statement, and which allows anyone to "copy, modify, publish, use, compile, sell, or distribute the software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means."
3 Types of Open Source Licenses
But if you want your project to be truly open source then you need an appropriate license, and the easiest way to understand the many licenses that are available is to divide them in to three broad categories:
" Strong copyleft
" Weak copyleft
The concept of copyleft is designed to be the opposite of copyright — it allows software to be freely copied and shared. Specifically, when a program is copylefted the copyright is asserted, and distribution terms are added which gives others the right to use, modify and redistribute the source code, or any program derived from that code, on condition that these distribution terms are left unchanged.
Sign up for Computerworld eNewsletters.