2020-05-22-thoughts-on-licences.md (5285B)
1 +++ 2 title = "Thoughts on Licences" 3 date = "2020-05-22T14:55:23-07:00" 4 slug = "thoughts-on-licences" 5 tags = ["Meta", "Software"] 6 +++ 7 8 Software licences are probably the single most boring aspect of software 9 development, but it's important to carefully consider the terms under which the 10 stuff I hack on is shared to ensure they're consistent with my values. Despite 11 my general dislike for all things legalistic, the most unambiguous way to state 12 those terms is through a licence. So a couple days ago, I tossed LICENSE files 13 into any of my public [repos](/code) that didn't already have one. 14 15 So how did I settle on which licences to apply? Jump on into the DeLorean and 16 let's set the dial back to the late 1980s. 17 18 It's 1986 and I've got a 1200 baud modem wired up to a beat-up 286 with a steel 19 case that would easily allow it to double as a boat anchor if needed. Armed 20 with a dot-matrix printout of local BBSes with names like Camelot, Tommy's 21 Holiday Camp, and Forbidden Night Castle, I fire up PC-Talk. A series of 22 [high-pitched squeals and tones][modem_handshake] fill the air, then text 23 flashes across the screen. I'm online. 24 25 BBSes were a treasure trove of information, filled to the brim with zip archives 26 full of downloadable programs, source code, patches for existing programs, and 27 all manner of text files with names like [Smashing The Stack For Fun And 28 Profit][smash_stack]. You could find everything from how to crack copy-protected 29 software, to details on phone phreaking, to how to make nitroglycerine from 30 commonly-available household items. It was through BBSes that I first downloaded 31 an I'm sure _totally legitimate_ copy of Borland Turbo C++ and took my first 32 baby steps writing _real_ programs. No more BASIC for me. 33 34 This culture of open sharing in the online world has had a huge impact on me. 35 From those early experiences with BBSes to my first forays onto the Internet a 36 few years later, seeing people openly sharing code and patches and helping each 37 other solve problems over Usenet seemed almost revolutionary to me at the time. 38 In some ways, it still does. I feel lucky to have been a part of it from such an 39 early age. 40 41 The end result is that I try to publicly share all the work I do. So when it 42 came time to chuck licences on stuff, I sat down to work out a personals ad for 43 my ideal licence. Aside from enjoying long walks on the beach, it should: 44 45 1. Allow free use, modification, and distribution both of the original 46 work and any derived works. 47 2. Require that people distributing the work or any derived work to 48 give appropriate credit. 49 3. Disallow suggesting that I in any way endorse any derived products 50 or whoever produces them. 51 4. Gently encourage a culture of open exchange and sharing of 52 information and techniques. 53 5. Be short, clear, and easy to understand. 54 55 On the software side, there were lots of options, but the best matches in my 56 mind are the [MIT][mit_licence] or [BSD][bsd_licence] licences. The 3-clause 57 'new' BSD licence has an advantage in that it required written permission from 58 the author to use their name in any endorsement/promotion of a derived work. 59 That happens to be what we already use for [work][flutter]. 60 61 On the content side, I've always posted my web site's content under a [Creative 62 Commons Attribution-ShareAlike][cc_by_sa] licence. But I don't believe that's 63 actually the ideal match based on my priorities. Why is it that I've elected to 64 use a licence that requires that derived works also be licensed under the same 65 terms rather than under whatever terms someone feels like, so long as 66 acknowledgement is given? In the end I settled on the more permissive [Creative 67 Commons Attribution][cc_by] licence. 68 69 This feels to me a bit like the difference between [BSD][bsd_licence] and 70 [GPL][gpl_licence] terms, where the latter requires that derived works also be 71 GPL-licensed. This "viral" nature has always rubbed me the wrong way: rather 72 than gently promoting a culture of sharing by example, it legally _requires_ 73 sharing under the same terms whether or not you want to. 74 75 Personally, I'd like for people to do the right thing and share their work for 76 everyone's benefit not because they _have_ to, but because they _want_ to. If 77 they don't want to, why should my reaction be to disallow their use of my work? 78 Isn't that contrary to my stated goals of sharing as much and as broadly as 79 possible? 80 81 While I _hope_ that more people share more of their work, it doesn't bother me 82 if you don't. If anything I've written is somehow useful to you, I'm glad. Use 83 your knowledge to help others and make the world a better place, and if you can 84 find time to do so, share a bit with the rest of us. 85 86 Got thoughts and opinions on licences? Fire an email my way at 87 [chris@bracken.jp][email]. 88 89 [modem_handshake]: https://www.windytan.com/2012/11/the-sound-of-dialup-pictured.html 90 [smash_stack]: https://insecure.org/stf/smashstack.html 91 [flutter]: https://github.com/flutter/flutter 92 [mit_licence]: https://opensource.org/licenses/MIT 93 [bsd_licence]: https://opensource.org/licenses/BSD-3-Clause 94 [gpl_licence]: https://opensource.org/licenses/GPL-3.0 95 [cc_by_sa]: https://creativecommons.org/licenses/by-sa/4.0/ 96 [cc_by]: https://creativecommons.org/licenses/by/4.0/ 97 [email]: mailto:chris@bracken.jp