{"id":1722,"date":"2013-04-02T12:51:14","date_gmt":"2013-04-02T17:51:14","guid":{"rendered":"http:\/\/redmonk.com\/dberkholz\/?p=1722"},"modified":"2013-04-19T21:23:50","modified_gmt":"2013-04-20T02:23:50","slug":"quantifying-the-shift-toward-permissive-licensing","status":"publish","type":"post","link":"https:\/\/redmonk.com\/dberkholz\/2013\/04\/02\/quantifying-the-shift-toward-permissive-licensing\/","title":{"rendered":"Quantifying the shift toward permissive licensing"},"content":{"rendered":"<p>The team at <a href=\"http:\/\/ohloh.net\">Ohloh<\/a> worked with me to organize a data hackfest at OSCON 2012, and we pulled together a great dataset that included licensing data for all open-source projects in Ohloh that had any commits in the past year. After working with Ohloh data for my recent post on <a href=\"http:\/\/redmonk.com\/dberkholz\/2013\/03\/25\/programming-languages-ranked-by-expressiveness\/\">language expressiveness<\/a>, I wanted to explore it in some different ways to see what else might emerge, and licensing seemed like one worth examining more deeply.<\/p>\n<p><strong>My colleague Steve has posted about permissive vs copyleft licensing a <a href=\"http:\/\/redmonk.com\/sogrady\/2013\/02\/26\/forking-permissive-licenses\/\">number<\/a> <a href=\"http:\/\/redmonk.com\/sogrady\/2012\/02\/15\/decline-of-the-gpl\/\">of<\/a> <a href=\"http:\/\/redmonk.com\/sogrady\/2008\/03\/16\/open-source-licensing-obsolete-or-of-importance\/\">times<\/a>, but we&#8217;ve never done quantitative research into licensing choice<\/strong>\u00a0to prove the extent to which any shifts are happening, the time frames involved, and the potential variations within different programming-language communities.<\/p>\n<h2>Approach: Classification, history, and languages<\/h2>\n<p>Using the Ohloh data for 57,930 active projects as of July 2012, <strong>I classified the top 30 open-source licenses into one of three categories: permissive (e.g. BSD, Apache), limited (e.g. LGPL, MPL, EPL), or copyleft (e.g. GPL, AGPL).<\/strong> This three-category classification accounts for 90+% of all projects with specified licenses, which means it should be representative.\u00a0The total number of classified projects was 17,549, because a vast number of projects either have no license or Ohloh was unable to detect it.\u00a0Limited licensing is quite rare, hovering around 2%\u20133% of projects with licenses, so for the purposes of this post, we will focus on permissive and copyleft licensing.<\/p>\n<p>To attempt to identify historical shifts, I separated projects into buckets based on the date of their first commit. Since license changes between permissive and copyleft are quite rare, this should be a reasonable approach to examining trends over time.<\/p>\n<p>Since I hypothesized that programming language might also play a role, I further split each year&#8217;s bucket by language. Here, I&#8217;m going to focus on the 11 most popular languages according to our <a href=\"http:\/\/redmonk.com\/sogrady\/2013\/02\/28\/language-rankings-1-13\/\">rankings<\/a>, as well as the total across all languages regardless of popularity. Any data points with 5 or fewer projects between permissive and copyleft are not shown, to remove noise.<\/p>\n<h2>Results: A clear trend toward permissiveness<\/h2>\n<p>I&#8217;m showing the data as a ratio between permissive and copyleft licensing to account for changes in absolute numbers of projects over time. <strong>Any number above 1 indicates a bias toward permissive licensing, while any number below one indicates a bias toward copyleft.<\/strong><\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/dberkholz-media.redmonk.com\/dberkholz\/files\/2013\/04\/sort_license_class_by_year.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1723\" data-permalink=\"https:\/\/redmonk.com\/dberkholz\/2013\/04\/02\/quantifying-the-shift-toward-permissive-licensing\/sort_license_class_by_year\/\" data-orig-file=\"https:\/\/redmonk.com\/dberkholz\/files\/2013\/04\/sort_license_class_by_year.png\" data-orig-size=\"1178,1109\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"sort_license_class_by_year\" data-image-description=\"\" data-medium-file=\"https:\/\/redmonk.com\/dberkholz\/files\/2013\/04\/sort_license_class_by_year-300x282.png\" data-large-file=\"https:\/\/redmonk.com\/dberkholz\/files\/2013\/04\/sort_license_class_by_year-1024x964.png\" class=\"wp-image-1723 aligncenter\" alt=\"sort_license_class_by_year\" src=\"http:\/\/dberkholz-media.redmonk.com\/dberkholz\/files\/2013\/04\/sort_license_class_by_year-1024x964.png\" width=\"442\" height=\"416\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Remarkably, every single language shows an upward trend, starting either in favor of copyleft or near equilibrium and shifting upward in a more permissive direction.<\/strong> The overall total, shown as a thick black line, further supports and clarifies this trend since the individual languages can be rather noisy.<\/p>\n<p>Two languages of particular note are the two extremes: Ruby on the permissive side and Perl on the copyleft side. <strong>While most languages cluster relatively tightly, Ruby rises far above them with a very clear and strengthening shift toward permissive licensing \u2014 2x in favor of permissive in 2010, 6x in 2011, and 11x in 2012.<\/strong> At the other extreme, <strong>Perl shows a roughly 2x\u20133x bias in favor of copyleft<\/strong>, which is distinctly below the nearest neighbor, C++, but not nearly as large of a divergence from the primary cluster as Ruby shows.<\/p>\n<p>Other than that, at the level of individual languages, it&#8217;s difficult to draw any strong conclusions based on their relative positions because they are much less distinct. More recent web-development languages (Ruby, JavaScript, Python) may bias toward permissiveness, as do languages that tend to be used on closed platforms (Obj-C, C#). The difference between Java, C, and C++ is likely cultural as well, with C and C++ being common in the copyleft community while Java is less so due to inertia from its OSS-unfriendly past.<\/p>\n<h2>Conclusions<\/h2>\n<p>The shift toward permissive open-source licensing is dramatic over the past decade. <strong>Since 2010, this trend has reached a point where permissive is more likely than copyleft for a new open-source project.<\/strong> Although there are language-specific effects, especially in the case of Ruby, the overall movement is clear. Outside the extremes, new projects in even the most copyleft-biased language (C++) in 2012 were given copyleft licenses less than 60% of the time.<\/p>\n<p><span style=\"color: #999999;\"><em><strong>Disclosure<\/strong>: Black Duck Software (which owns Ohloh) is a client.<\/em><\/span><\/p>\n<div class=\"acc_license\"><a href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/\"><img decoding=\"async\" src=\"http:\/\/i.creativecommons.org\/l\/by-sa\/3.0\/88x31.png\" alt=\"by-sa\" \/><\/a><\/div><!--<rdf:RDF xmlns=\"http:\/\/creativecommons.org\/ns#\" xmlns:dc=\"http:\/\/purl.org\/dc\/elements\/1.1\/\" xmlns:rdf=\"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#\"><Work rdf:about=\"\"><license rdf:resource=\"http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/\" \/><\/Work><License rdf:about=\"http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/\"><requires rdf:resource=\"http:\/\/creativecommons.org\/ns#Attribution\" \/><permits rdf:resource=\"http:\/\/creativecommons.org\/ns#Reproduction\" \/><permits rdf:resource=\"http:\/\/creativecommons.org\/ns#Distribution\" \/><permits rdf:resource=\"http:\/\/creativecommons.org\/ns#DerivativeWorks\" \/><requires rdf:resource=\"http:\/\/creativecommons.org\/ns#ShareAlike\" \/><requires rdf:resource=\"http:\/\/creativecommons.org\/ns#Notice\" \/><\/License><\/rdf:RDF>-->","protected":false},"excerpt":{"rendered":"<p>The team at Ohloh worked with me to organize a data hackfest at OSCON 2012, and we pulled together a great dataset that included licensing data for all open-source projects in Ohloh that had any commits in the past year. After working with Ohloh data for my recent post on language expressiveness, I wanted to<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[3,7,10,13],"tags":[],"class_list":["post-1722","post","type-post","status-publish","format-standard","hentry","category-adoption","category-data-science","category-licensing","category-open-source"],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p23Tsn-rM","_links":{"self":[{"href":"https:\/\/redmonk.com\/dberkholz\/wp-json\/wp\/v2\/posts\/1722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/dberkholz\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/dberkholz\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/dberkholz\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/dberkholz\/wp-json\/wp\/v2\/comments?post=1722"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/dberkholz\/wp-json\/wp\/v2\/posts\/1722\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/dberkholz\/wp-json\/wp\/v2\/media?parent=1722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/dberkholz\/wp-json\/wp\/v2\/categories?post=1722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/dberkholz\/wp-json\/wp\/v2\/tags?post=1722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}