<< >>
justin = { main feed , music , code , askjf , pubkey };
[ <<< last (older) article | view in index | next (newer) article >>> ]

October 6, 2005
(Perhaps Obvious) Thoughts On Being an Individual Software Developer

Part I - Choosing a License

Disclaimer: I am not a lawyer, these are my thoughts as a software developer.

For me, there are three basic licenses I consider when I'm releasing a piece of software.

1. A Proprietary License

This often seems like a safe first step--keep the source code to yourself, let people use binaries, etc. I'm not aware of any "standard" closed-source licenses one can use (are there any?). So it seems a lot of people end up copying other peoples (expensively crufted) legal text, which may or may not be that good, and raises copyright questions for the license itself.

At any rate, releasing software with a proprietary license has benefits, especially since you can completely monopolize the software, giving you potentially more opportunities. You can always open source it later, too.

The drawbacks to keeping source private are obvious, though. You can't get people to work for you for free! (See Part II, below)

2. General Public License (GPL)

When I want to open source my software, and also want to ensure that any derived versions of my software remain open source, I'll usually choose to use the GPL.

Contrary to what many people seem to mistakenly believe, by releasing your software GPL licensed, you do not give up any ownership or other rights. While you grant other people limited permission to your code, you still have rights including the right to license your code under other (potentially lucrative) licenses as well.

Licensing the software under other licenses does get more complicated once other peoples contributions find their way into your codebase, though. If you intend to license your GPL software under other licenses, you will want to control who can contribute to the codebase (See Part II, coming soon), and work out agreements with them.

3. BSD-like license

Using a BSD-like license on code makes it available for everybody to use, with very little restriction on what they can do with it or how (usually the main stipulation is how credit is attributed). It's really not too far from making the code public domain.

The upshot of a BSD-like license is that you (and everybody else) can do just about anything you want with the software. When other people contribute code, they're giving you that permission as well.

The downside of a BSD-like license is that someone else can take your software, and go make it (via big modification, or slight modification and promotion) into something huge-- and all you will be entitled to is a small credit. Now, the reality is that this could happen if the software was GPL licensed as well, but at least then you'd get access to the modified source code.

Conclusions

Ultimately whatever license you choose someone can always go and (rewriting if necessary) make something big out of your software, so (I keep telling myself to) worry more about the upsides and less about the down.

Proprietary licenses are really good for software where you feel you (or your close associates) will be working on the software a LOT, and want to maintain complete monopolistic ownership and control. This is very attractive to many people (myself included) for a lot of projects. It is completely respectable in my opinion, as long as you feel it is justified.

If however, you feel like a project would benefit greatly from having other people contribute, and the project has potential to be bigger than you've made it already, using the GPL can be a good choice.

I find BSD-like licenses to be good for licensing of libraries (or any other software that you generally want to be used as widely as possible), since people can link (and optionally compile) them with their projects, and not worry about the terms. Take zlib, which is used everywhere, or jnetlib, which isn't used as much but I'll mention for selfish reasons.


Coming soon: Part II (or: how to get other people to work on your open source project)








4 Comments:
Posted by BjornW on Fri 07 Oct 2005 at 10:16 from 80.126.0.x
Thanks for your insights!

I'm just in the phase of open sourcing a websystem that hopefull gives musicians more possibilities to bypass the music industry. Overthinking our goals we felt that we need to open source our stuff so that it can become a movement instead of just software. Like you said if you feel that a lot of contribution can benefit your project you should look at one of the many open source or free software licenses.

BTW I was wondering would you have changed anything in the way you handled the Winamp code after all that has happened?


Posted by Justin on Fri 07 Oct 2005 at 13:26 from 64.81.54.x
Winamp was such a mess, I would have been embarassed to open it, haha


Posted by Jason on Fri 07 Oct 2005 at 13:45 from 12.161.18.x
I remember seeing Winamp for the first time my freshman year in college (98 or 99). Compared to what I had been using, it looked like THE SHIT =)


Posted by - on Sat 08 Oct 2005 at 00:42 from 80.126.0.x
Justin,

I just stepped over my embarresment and now I hope to learn a thing or two from people that will probably burst into laughter as they view my code ;)


Add comment:
Name:
Human?: (no or yes, patented anti crap stuff here)
Comment:
search : rss : recent comments : Copyright © 2021 Justin Frankel