{"id":11152,"date":"2015-05-06T09:18:41","date_gmt":"2015-05-06T13:18:41","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=11152"},"modified":"2016-02-12T14:16:35","modified_gmt":"2016-02-12T19:16:35","slug":"beyond-open-source","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2015\/05\/06\/beyond-open-source\/","title":{"rendered":"Beyond Open Source"},"content":{"rendered":"<p><a href=\"http:\/\/sealedabstract.com\/rants\/beyond-open-source\/\">Drew Crawford<\/a>:<\/p><blockquote cite=\"http:\/\/sealedabstract.com\/rants\/beyond-open-source\/\"><p>Rather, this is an essay about what, as a practical matter, open source can and cannot do. The study of where the rubber meets the road, effectively. There are features and patches and entire open source projects that cannot exist, structurally, under our current system. The ingredients aren&rsquo;t right. The <em>incentives<\/em> aren&rsquo;t right. Let&rsquo;s poke at that.<\/p><p>[&#8230;]<\/p><p>The Type 3 &ldquo;institutional investment&rdquo; is obviously strategic; you invest in an open source project for strategic reasons. It&rsquo;s hard to imagine now, but in Apple&rsquo;s case, they were down for the count; they were a major OS vendor without their own web browser, with no ability to influence the future of the web. 15 years later they now control the most important browser technology in the world. By uniting all the second-place players onto one team, they were able to defeat the leading player. But an open web was always a collateral benefit of their strategy.<\/p><p>[&#8230;]<\/p><p>Docker, however, is wise to the plan. Since they control the underlying open source project, they think they are better positioned, from a brand and strategy perspective, to grow into CoreOS&rsquo;s space, than CoreOS is positioned to keep it. The result is that <a href=\"https:\/\/github.com\/docker\/docker\/issues\/2112\">issues with hundreds of comments remain open for years<\/a> because they&rsquo;re not strategically compatible with Docker&rsquo;s vision of being a 1-click end-to-end VM management system. Docker doesn&rsquo;t want to be <em>just<\/em> a VM killer. They want to be a VM killer <em>plus<\/em> swallow up a lot of the market for value-added platforms and services.<\/p><p>[&#8230;]<\/p><p>The battle over stuff as mundane as <a href=\"https:\/\/github.com\/docker\/docker\/issues\/2112\">what command-line arguments<\/a> are <a href=\"https:\/\/plus.google.com\/+gregkroahhartman\/posts\/Kd57G8s1cTD\">accepted for the software<\/a> are part of some larger war that enterprises are waging using OSS contributions as a proxy.<\/p><\/blockquote>\r\n<p><a href=\"http:\/\/www.phoronix.com\/scan.php?page=news_item&amp;px=RMS-Emacs-Gud-LLVM\">Michael Larabel<\/a> (via <a href=\"http:\/\/developers.slashdot.org\/story\/15\/02\/08\/210241\/rms-objects-to-support-for-llvms-debugger-in-gnu-emacss-gudel\">Slashdot<\/a>):<\/p>\r\n<blockquote cite=\"http:\/\/www.phoronix.com\/scan.php?page=news_item&amp;px=RMS-Emacs-Gud-LLVM\"><p>Richard Stallman has come out against support for basic LLVM debugger (LLDB) support within Emacs&rsquo; Gud.el as he equates it to an attack on GNU packages.<\/p><\/blockquote>\r\n<p><a href=\"https:\/\/gcc.gnu.org\/ml\/gcc\/2005-11\/msg00888.html\">Chris Lattner<\/a> (in 2005):<\/p>\r\n<blockquote cite=\"https:\/\/gcc.gnu.org\/ml\/gcc\/2005-11\/msg00888.html\">\r\n<p>The patch I&rsquo;m working on is GPL licensed and copyright will be assigned to the FSF under the standard Apple copyright assignment. Initially, I intend to link the LLVM libraries in from the existing LLVM distribution, mainly to simplify my work. This code is licensed under a BSD-like license [8], and LLVM itself will not initially be assigned to the FSF. If people are seriously in favor of LLVM being a long-term part of GCC, I personally believe that the LLVM community would agree to assign the copyright of LLVM itself to the FSF and we can work through these details.\r\n<\/p>\r\n<\/blockquote>\r\n<p><a href=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00640.html\">David Kastrup<\/a>:<\/p>\r\n<blockquote cite=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00640.html\"><p>Why would people be interested in a fork whose\r\nprimary purpose would be to make the compiler less modular and stop it\r\nfrom interoperating with modules they might want to write?<\/p>\r\n<p>Because non-modularity is exactly what GCC is supposed to provide in\r\norder not to create module boundaries where the reach of the GPL ends.<\/p>\r\n<p>[&#8230;]<\/p>\r\n<p>[Lattner] did all of the integration work and offered completed\r\npatches.  These patches were rejected.  Partly because bootstrapping\r\nfrom C++ was undesired (GCC now bootstraps from C++), partly because the\r\nmodularity was undesired in GCC.<\/p>\r\n<p>Modularity is the main point of LLVM.  Chopping it away in order to slap\r\non a GPL that actually stings is pretty much the same as ritual suicide.<\/p><\/blockquote>\r\n<p><a href=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00594.html\">Richard Stallman<\/a>:<\/p>\r\n<blockquote cite=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00594.html\"><p>I am stunned to see that we had this offer.\r\nNow, based on hindsight, I wish we had accepted it.<\/p><\/blockquote>\r\n<p><a href=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00690.html\">Richard Stallman<\/a>:<\/p>\r\n<blockquote cite=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00690.html\"><p>The license of LLVM is free.  We can use that code\r\nif we want to.<\/p>\r\n<p>The problem that LLVM causes for the GNU Project is that, when used,\r\nit replaces GCC with a non-copylefted program.<\/p><\/blockquote>\r\n<p><a href=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00771.html\">Richard Stallman<\/a>:<\/p>\r\n<blockquote cite=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00771.html\"><p>It is good for the parts of GCC to be modular.  And it is fine for\r\nthese modules to be able to link with other programs, too.\r\n<\/p>\r\n<p>What I am worried about is for these modules to be used with nonfree\r\nprograms by NOT linking them together.  That that would lead\r\nto proprietary use which ultimately is bad for users&rsquo; freedom.\r\n<\/p>\r\n<p>I prioritize users&rsquo; freedom above technical merit, and that&rsquo;s why I\r\nwrote GCC.  If not for that, I wouldn&rsquo;t have had to write a C compiler\r\nat all -- I could have used one of the proprietary ones.<\/p><\/blockquote>\r\n<p><a href=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00839.html\">Richard Stallman<\/a>:<\/p>\r\n<blockquote cite=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00839.html\">\r\n<p>[GCC] has aided\r\nusers&rsquo; freedom tremendously by leading many companies to release free\r\ncompilers for their hardware.  LLVM has cut off our ability to do that,\r\nand that will be a big loss to users&rsquo; freedom.<\/p><p>Whatever advantages LLVM may have, they don&rsquo;t compensate for this big\r\nharm.<\/p><\/blockquote>\r\n<p><a href=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00763.html\">Richard Stallman<\/a>:<\/p>\r\n<blockquote cite=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00763.html\"><p>It&rsquo;s very simple.  Anything that relates to LLVM is a strategic issue,\r\nso maintainers should talk with me privately about what to do.<\/p><\/blockquote>\r\n<p><a href=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00461.html\">Richard Stallman<\/a>:<\/p>\r\n<blockquote cite=\"http:\/\/lists.gnu.org\/archive\/html\/emacs-devel\/2015-02\/msg00461.html\"><p>Installing that change would be favorable for Emacs, probably just a\r\nlittle.  It would probably be bad for GDB, but I have no idea how\r\nmuch.  [&#8230;] We should do what is best for the GNU system&rsquo;s goal of\r\ngiving the users freedom.  This means considering what is good for\r\nEmacs and what is good for GDB, to make a decision.  Then the whole\r\nGNU Project should do what is best.  That is the responsibility of\r\neach GNU package maintainer.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Drew Crawford:Rather, this is an essay about what, as a practical matter, open source can and cannot do. The study of where the rubber meets the road, effectively. There are features and patches and entire open source projects that cannot exist, structurally, under our current system. The ingredients aren&rsquo;t right. The incentives aren&rsquo;t right. Let&rsquo;s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[38,101,230,124,524,735,285,295,448,317,229,30,337,1189,823,54,991,736,328],"class_list":["post-11152","post","type-post","status-publish","format-standard","hentry","category-technology","tag-apple","tag-business","tag-clang","tag-emacs","tag-github","tag-gnu","tag-gcc","tag-history","tag-linux","tag-lldb","tag-llvm","tag-mac","tag-markdown","tag-mysql","tag-next","tag-objective-c","tag-open-source-software","tag-oracle","tag-webkit"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/11152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=11152"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/11152\/revisions"}],"predecessor-version":[{"id":13529,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/11152\/revisions\/13529"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=11152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=11152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=11152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}