98 karma · joined May 16, 2012
http://michaelochurch.wordpress.com/2012/11/18/programmers-d...
Comments may mislead yes, but that's a problem with any sufficiently expressive language, and code is one such language: code can mislead. The functionality required of the code may be only half-implemented, then that code is misleading. That code may work for certain easy cases, but it may be harmful to your understanding of what functionality is actually required.
It's easy to see why we prioritize code over comments, why we prioritize the mechanisms over the specifications. It's because code can have some manner of automatic verification, and we're too harried to look into the comments, to do code review. Deadlines abound. We can't stop work and say, no, we can't do this under these time constraints without sacrificing a minimum level of quality, specifically because we're not treated like an actual profession with the clout or the responsibility that comes with such a thing.
AND that's one reason why we're not an actual profession, people.
If someone contributes code and licenses their copyright to LightTable, knowing full well that the product they support and invested time in may acquire some funds because of it, gosh, I just don't see how that's a bad thing. And if they believe that their patch is significant enough to demand reimbursement, that they would like to charge LightTable for a copyright license, they are free to negotiate such a trade. And if LightTable actually makes money from relicensing, they'll probably be happy to pay for such things.
I do, however, hope that they ask for copyright licenses rather than copyright assignment. Copyright assignment turns the author into a person powerless to use their own work. See harmonyagreements.org.
Also, they're doing something called instant pay, which could help normalize expectations of what happens when you buy BTC. I wonder how that works with credit card charge back problems?
I think the phase of "what should I work on?" is a fledging phase of developer development that one quickly overcomes and then becomes burdened by the vast opportunities that exist. I think erecting a sign/button/webpage that says, WORK ON $THIS, will do nothing to help it because the would-be contributor may have no interest in the project. Also, it may inhibit the formation of their taste. One must develop enough of an interest in and taste for software that they want to change some aspect of it; that's when an opportunity to contribute something valuable presents itself: "This would be better if..."
Wrong. Your users who don't have the same power to make changes as you do are the slaves in the analogy, not the source code.
I sum it up thusly: BSD is about freedom for the developers; GPL is about freedom for the users. I work professionally as a software developer, but I use far more software than I develop.
Yes, it does seriously limit the amount of people that can use your library--without giving anything back.
> hopefully you are open sourcing a library because you want to help as many people as possible.
Help as many people as possible do what? Get rich by composing together a bunch of liberally licensed software to do a task and then close sourcing it. No, thank you.
I see licensing as a Hawk-Dove-Retaliator game[1] for modeling resource competition. Each kind behaves differently: The Dove never fights and always flees. The Hawk always attacks and never flees. The Retaliator only attacks if attacked. Pay off matrices describe in detail how well each kind does against the other. Dove vs. Dove both do well; they share. Hawk vs. Dove, the Hawk wins everything. Hawk vs. Hawk, the beat each other up; both lose. Retaliator vs. Dove, just like Dove vs. Dove. Retaliator vs. Hawk, like Hawk vs. Hawk.
My analogy is this: The BSD licensor is a Dove, the proprietary licensor is a Hawk, and the GPL licensor is a Retaliator. If you want to be nice but make yourself vulnerable to exploitation, be a Dove; Doves like Doves, and Hawks love Doves--it's popular. If you want to get rich, then exploit all the Doves and be a Hawk; Doves worked hard, so you don't have to. If you want to have your work respected rather than exploited, be a Retaliator: happy to cooperate with those who cooperate, but willing to punish those who defect and refuse to cooperate. Which of these strategies is stable in the long-term? See the links below for a more detailed answer, but Doves certainly aren't.
Doves may enjoy a wonderful period of peace and cooperation, but they're so easily exploited that it makes one wonder how long it will last. In a population of Doves, it's best to be a Hawk. However, a population of pure Hawks does terribly. A population of Retaliators though is nearly immune from invasion.
Note: There are many salient differences between licensing and this animal behavior model. I don't contend that it is a perfect analogy, but I think it is worthwhile for considering long term trends.
[1]: http://en.wikipedia.org/wiki/Chicken_(game)#Hawk-Dove [1]: http://www.oocities.org/hawkdovegame/strategies.htm
Isn't it the case that anyone who has purchased this template and uses it on their site that someone can then scrape the template? The source code is already out there. You're fighting the medium not the man.