Twack @wackware: Thanks for your input, and a really good example of what one contributor’s expectations are!
Your policy (restrictive license?) is pretty clear (though, ummm, a bit contradictory: the term public domain means ZERO restrictions, but you then qualify that you really don’t mean your shared code is public domain…). Which is it really?
[ Please Reference: “No License (copyrighted” vs “Public Domain” at this link: http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html ]
Regardless, let’s assume that, until further notice, most of the code here on the Forums or shared through other means (IDE Shared Examples, GitHub, etc.) are “No License” and thus “copyrighted by default” (unless the code explicitly includes a release to Public Domain or a common Open Source license)…
Now as someone who personally is hoping to develop SmartApps, Device Handlers, Aruino Sketches, etc., and SELL some of the end products commercially, a copyrighted situation for example code and community discussion presents a potentially serious dilemma.
Since it may be difficult to get the various code sharer(s) (there may be several in a thread), to willingly release their work from restrictions (either transfer proprietary license or convert to a “GPL”), there theoretically will exist an ever growing codebase that can forever be stalled or prevented from migrating to commercial use. The motivations for commercial use may include the desire to use a significant code segment in a larger “package” of SmartApps & Devices. My off-the-cuff example is perhaps a package of IP-cam device handlers. Or even the sale of ONE specific IP-cam brand device handler that was based on a well written shared example.
This is, of course, the standard intellectual property conundrum. It both promotes and stifles innovation (with strong arguments on both sides). On a positive note, at least we have not breached the topic of Software Patents (yet) in this context!
So how is this a serious dilemma? I have many ideas under Development; some of which may be commercially for-profit viable, some only on a niche scale, or some as donation-ware. Under the GPL, I can share my ideas and code during Development and solicit feedback or ask questions, and use the entire net result as a commercial product, covered by and respecting the GPL rules.
BUT: If I even accidentally read and copy a non-trivial portion of someone’s example code (and, for many Apps there are only a few good ways to code something…)… I am now at risk of making a copyright violation; or, specifically to your stated policy; I am at risk of never being allowed to release my Project commercially or for-profit.
The net result is a chilling effect: The only way to be sure I do not violate copyright, is to never-ever-ever look at anyone’s copyrighted example code: Even if this prevents me from assisting others with their own education or projects that I have no current intention of commercializing. The same off-the-cuff example: I assist someone in getting their IP-Cam working by making some suggestions, but they have written all the code (even if that code was “obvious” to me). Now I want to commercialize a similar IP-Cam; the person I assisted can refuse to release copyright; and I am thus restricted from using “obvious” code that was in my head, but I had the misfortune of not publishing first.
Well… pardon the long-winded post, as always, but I think I’ve raised a legitimate concern, no?
Some say in an ideal world all source-code would be free of restrictions and/or all intellectual property would be automatically logically protected; but there clearly is a grey area. Some of us need to find ways to profit from the implementation and packaging of useful functionality, even while both serving and using developer community knowledge.
As far as I am aware (at this moment), I believe that a key way to resolve this grey area is to decide, as a community, if we generally lean towards a GPL-like sharing of code; true Public Domain upon posting/sharing; or pure copyright. If pure copyright, then persons like myself will have to take particular precautions in using this Forum (particularly any code Examples), and/or be very good at negotiating transfer of rights, and/or be very skilled at refactoring copyrighted segments sufficiently to avoid claims of derivation. (Using “copyright” as the default, does bring along with it some weakness in intellectual-property protection, such as fair-use; and, for software, a whole mess, as far as I am aware: That’s why commercial software developers keep their source private and/or use very explicit detailed licenses.)
Oh: Just as a convenient way to express my point in other words… the link I suggested above really does a good job of describing this potential “horror story” of a situation: http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html
I quote from that writer:
It's a minefield, people. All I'm saying is this: the next time you release code into the wild, do your fellow developers a favor and pick a license – any license.
Thanks,
…CP.