10 ms·
A few thoughts about Open Source Software
- erichocean 14y agoThis article reminded me of something I've always wondered about software licenses: Suppose I write a book of "software licenses" with a short introduction, copyright page, etc. The rest of the book's content are the actual software licenses (GPL, BSD, MIT, Apache, the CC variants, etc.), one license per chapter. At the end of the book, I include a final chapter with the source code for a small software program, without any license or copyright declaration. I then distribute the book on the Internet, for free. What license is the source code at the end of the book under, if any, for the people the book is distributed to? In particular, would any of the GPL licenses necessarily apply, due to their "virality"? And if not, why not? Would all licenses apply equally?
- josephlord 14y agoI would expect that there would be no license granted to a the source code in a separate chapter and therefore copyright law would apply. The GPL "virality" only applies to code that has been published under the GPL so if you had written the code it wouldn't apply. Now another form of infectiousness would apply to the code, that of copyright itself. Anyone who copied the code would be infringing copyright as would anyone who copied them (although they might have a claim against anyone that told them they could copy it). Almost all proprietary licenses are at least as infectious as the GPL.
- Kliment 14y agoBy default, I believe none would apply, it would be copyright to you, unrelated to the license text published in there. The licensing text itself is public domain for all the licenses you listed, so its licensing does not affect the other text. The code in the final chapter is under whatever license you distribute the book under.
- MatthewPhillips 14y agoI'm no license expert but isn't MIT the least restrictive license?
- antirez 14y agoBSD two-clause and MIT should be substantially equivalent AFAIK.
- reidrac 14y agoThe BSD has a "non-endorsement clause" prohibiting the use of the name of the copyright holders in promotion. The OSI approved version of the MIT license doesn't include an equivalent clause (that's the one I usually use in my projects), but some variations of the MIT license do (ie. the X11 license). EDIT: OK, I misread your comment when you said "BSD two-clause". I think you're right, as it removed the "non-endorsement" clause.
- ksec 14y agoYes. I have always wanted to ask. So what is the difference between BSD and MIT?
- rat87 14y agoOriginated at Berkeley vs MIT I guess
- qznc 14y agoBSD 2-clause = MIT (aka X11) The BSD 3-clause and 4-clause variants are a little bit more restrictive, though none of them have this "viral" character of copyleft licences like the GPL. I would advise MIT, because it does not have this "how many clause" confusions.
- ksec 14y agoI think there is also Public Domain. Which has Zero Clauses. But I also think there were issues with Public Domain isn't exactly a licenses and acceptable in every country.
- reidrac 14y agoI loved the text until he got to the GPL. Honestly, I really don't care what licence you're using in your project as long as the result is open source software. It is your work, so use any licence you want, I won't say if in my opinion it is the right choice or not, and please don't judge me if I choose a different one. We're all in the same ship, don't we? EDIT: I can't understand why this comment is being downvoted. I appreciate the feedback of the downvotes, but in this case I find it confusing. If you don't agree, it would be nice if you post a reply.
- buster 14y agoInteresting point of view and i can understand that he embraces the "total freedom" BSD license gives (aka "do whatever you want, i don't care"), but in contrast i can also understand the GPL and i would argue that GPL is more about "contributing to humanity" then BSD just because it forces someone to contribute back and thus enforce more "contributions" to humanity then a formerly BSD licensed closed down fork of something that once was freely available. As a developer i enjoy BSD because i know i don't have to take care of license issues and just go ahead in contrast to "mhh, GPL, LGPL, version 2 or 3, MPL, Apache, what can and what can't i do?!". All in all, from my point of view, GPL has a very good motive and approach when it comes to "contribute to humanity", even more so then BSD. edit: Also about his thought "if something is useful people will contribute back in some way, because maintaining forks is not great.": This just doesn't apply to software companies that have a closed down software approach. The in-house forks are just frequently rebased but never contributed back. In my life i have seen several in-house repositories including a lot of BSD licensed libraries that never were contributed back. It's sad but it's just the outcome of closed-down "Whatever we pay for in development work puts us ahead of competition, we don't want to help competition, we leave it closed source".
- notimetorelax 14y agoGPL is very restrictive when in it comes to integrating GPL libraries into closed-source applications. Here is short description on Wikipedia: http://en.wikipedia.org/wiki/GNU_General_Public_License#Linking_and_derived_works http://en.wikipedia.org/wiki/GNU_General_Public_License#Link... I think it is ludicrous to require to open source an application that may be using library as is without any modifications.
- lifeisstillgood 14y agoSomething hit me as I read this - that the profusion of frameworks in languages - where there is no simple and easy way to combine output of one code in one framework into inputs of another (it's why Django plugins do not chain to tornado or pyramid plugins - a problem Rails does not have) It really needs to be something along the http === unix pipe solution that way we can mostly ensure open source code written by one can be reused by another.
- lifeisstillgood 14y agoI have released under BSD and GPL2 but I understand one thing - unless and until there is a significant and tested base of case law, in every jurisdiction I care about, these licenses are just contracts between happy parties. Angry parties define case law. Having said that I strongly suspect that the GPL preamble will be the most common piece of text in code in 2100
- cjbprime 14y ago> unless and until there is a significant and tested base of case law, in every jurisdiction I care about, these licenses are just contracts between happy parties. Angry parties define case law. There is a significant and tested base of GPL case law. Large corporations regularly find themselves with no option other than coming into compliance. The beauty of the GPL as a license, I think, is that there's no way to contest its validity -- if you're distributing GPL-derived code yet you don't think the GPL works, then you're distributing someone else's code without any valid copyright license, and you have lost.
- lifeisstillgood 14y agoI did think that there was minimal precedent-setting cases. There is the "world first" of iptables in Munich, Germany, from 2004, but afaik most stuff is settled quickly - the GPL looks water tight and the PR shitstorm is not worth the effort. Only companies like D-Link and Cisco have even come close - so there is precendence in US and Germany for embedded GPL violations. Not in the UK to my limited knowledge though. It might be untestable however - everyone wants it to be as it is, almost no-one benefits enough from breaking it, at least not blatently. Which I think is the thrust of your second paragraph.? * http://en.wikipedia.org/wiki/GNU_General_Public_License#Legal_status http://en.wikipedia.org/wiki/GNU_General_Public_License#Lega... * http://www.twobirds.com/English/News/Articles/Pages/2007/Review_German_GNU_General_Public_License.aspx http://www.twobirds.com/English/News/Articles/Pages/2007/Rev...
- ssp 14y agoI suspect there is some incoherent thinking about the BSD license. If you are a BSD advocate, consider this: Someone takes a BSD project and bases a proprietary program on it. Is that person doing something wrong? Well, no, you say, because that's the whole point of the BSD license. It's also fine to keep rolling in new versions of the BSD project. Now suppose someone takes a BSD project and relicenses it under the GPL, announces it on the internet, gets it into all the Linux distributions, and starts soliciting contributions of new GPL-only features while also rolling in new versions of the BSD project as they become available. Is that person doing something wrong? I suspect that a calm, "No, that's also great. That's why we made it available under BSD." would not necessarily be the response.
- justincormack 14y agoFor example Libre Office and (now Apache) Open Office, where kind of exactly this has happened (well its a bit more messy).
- delinka 14y agoI don't understand. Why would the developer who wants his code used "anyway you see fit" suddenly care how you re-licensed it? You have used it in a way you see fit. The original BSD license didn't evaporate. This situation looks no different to me than a company taking a BSD-licensed project and putting it inside their proprietary systems. If his downstream users are savvy enough to know to use this "forked" project, they're savvy enough to search for the original author and discover that they can get the same code under a more permissive license.
- aroberge 14y agoSay you release code X under a BSD license. Someone incorporates a neat, but tricky to re-implement, feature and release the code under GPL. Everyone wants that new feature but, if they do, they either have to reimplement it without looking at the GPL source code, or they have to use the GPL license from now on (or, third choice, live without that feature). I used to release my code under a GPL license but found too many restrictions. The worst offenders were tutorials written where the code was GPL. Tutorials that aim to free you by giving you new knowledge should not tie your hands and force you to adopt a license if you want to use that knowledge.
- onemorepassword 14y agoStopped reading at the "GPL folk are anti-commercial" straw man attack. This is not "a few thoughts", this is just another attempt at starting a flame war. If you want a constructive discussion, you should consider listening to other people's arguments.
- cjbprime 14y ago> First of all, open source for me is not a way to contribute to the free software movement, but to contribute to humanity. This means a lot of things, for instance I don't care about what people do with my code, nor if they'll release back their modifications. I simply want people to use my code in one way or the other. As other people (buster) have mentioned, they feel that releasing GPL code is contributing to humanity too. Here's the difference as I see it: You want to maximize the number of people who use your code, because that makes you feel good about yourself and your contribution. Someone who releases GPL wants to try to maximize the good outcomes that result from their releasing that piece of code. For example: the FreeBSD hackers get to know that their code was incorporated into OS X and used by many millions of people. That's pretty cool for them. But the contribution to humanity of their code is limited by that -- the OS X kernel's closed source, so no-one can benefit from learning how that works, and in the meantime the FreeBSD project itself is dwindling. Meanwhile, e.g. Android is based on Linux, and is available to everyone to study. Linux is growing hugely, and is an amazing example of humanity working together to achieve a public good. I can't really say the same about FreeBSD. So, I think the question is -- is your aim somewhat selfish, in wanting to maximize the consequences that can be directly traced to you, or is it driven by wanting to maximize the consequences to the rest of your society of your actions? If the latter, I think there's an entirely reasonable argument that says that the GPL is a better way to do it. There's no question that, as you argue, the GPL has less immediate freedom for each individual user than the BSD licenses. But why should we measure freedom for each individual, if what we care about is the final level of freedom for everyone in society? To put it another way, I think the BSD license can result in "tragedy of the commons" scenarios where maximizing individual freedom has worse total consequences than would have resulted by applying regulation to maximize societal freedom instead.
- JoeAltmaier 14y agoour company recently expunged all LGPL code from our product. The cost of that license outstripped the usefulness. We wrote or got around the need for any of it; it wasn't too hard. Generally we were after a fraction of the IP, and there were alternatives. LGPL is fine for non-commercial folks. For business I need a license to do as I please with the code, with no futzing around. <edit: LGPL>
- qznc 14y agoI should have waited [0] for this discussion to submit my licence chooser [1]. Also, I assume he meant BSD 2-clause, not the 3-clause variant. [0] http://news.ycombinator.com/item?id=5118241 http://news.ycombinator.com/item?id=5118241 [1] http://beza1e1.tuxen.de/licences/ http://beza1e1.tuxen.de/licences/
- khitchdee 14y agoThe problem with open source is it's poorly documented making it difficult for a new person to join the effort. Someone should make an open source project to document all other open source projects.
- mmahemoff 14y agoIn my opinion instead what the open source does not get back in a fair amount is money I'm not really sure what the problem is. I don't know the numbers, but I expect there are thousands of full-time open-source developers. (I was one of them.) Meaning that anyone who has made a substantial contribution to an important project could probably find a decently-paying job to work full time on the project. There have also been a number of very successful startups based on open-source efforts from the founders.
- gillianseed 14y agoThere simply can't be a perfect licence, since the licence reflects the conditions the author/owner value, and well, people value different things, something licence profileration is a good indication of. Beyond that, I think we can (imo) see that different types of licences are more popular in certain types of open source projects. GPL is very popular for 'full application'-style projects, more permissive licences like BSD/LGPL etc are in my experience more likely to be used in libraries, frameworks, component code in general. Antirez wants to promote his personal choice, the BSD-licence, and that's perfectly fine, other programmers are vocal in their support for other licences aswell. One thing struck me though (apart from the complaints concerning 'another' available licence which felt unecessary), which is that after his words of how he 'just wants to better the world with his code' his concern of 'what open source does not recieve enough of' boils down to money, not code contributions. And as such he suggests that companies should send part of their earnings the programmer's way, not an unreasonable request by any measure (although sadly perhaps unrealistic). It's no surprise then however, that he does not favour GPL, in which the source code is paramount. There's no right or wrong here of course, just different preferences, Antirez has little interest in source code contributions but feels that monetary contributions are lacking, the GPL on the other hand is all about 'the source code' and that it (and enhancements made to it) remains open. Choice is good!
- antirez 14y agoI agree 100% with you, but one reason why lately I look at GPL with suspicious is that it's long and complex enough that I'm not sure every contributor to GPL fully realizes the implications. It's not just "if you modify you need to release the modified version" as I believed. The SDR Touch affair clearly shows it. Also the problem when linking to closed source code. This idea that it's ok to make money using the GPL in one way (just using the software as it is, as a service, like when you run a copy of MySQL) and not into another way (by using a GPL library in your closed source app, just releasing back what you changed in the GPL code) is very odd IMHO, probably not in the spirit of code sharing.
- keenerd 14y agoWell yeah, the GPL states that it needs to be trivially easy for end-users to replace the GPL chunk with their own code. Because in the past (Tivo) GPL code was used against people. Two separate packages is the simplest way to do it. And I feel the 'no bundling' thing is a little over the top. As long as rtl_tcp was a separate file that you could easily replace, it seems it fit the letter of the license. I know I'm[1] not going to convince you, but the GPL exists for a reason as does the BSD. BSD puts the rights of the programmer first and foremost. This is useful at times, but it also lets bad apples ruin a code base. GPL puts protecting the code first. (And to a lesser extent, the end-user.) In the end, it means that GPL code is basically immortal because no one person/group can control the code base. [1] keenerd from rtl-sdr
- d0mine 14y agoWhat people take for granted: It is still legal to develop/install your own software on most devices. You don't have to pay to some corporation for the privilege to be allowed to distribute your program to other users or even to start developing your program in most cases. You may build whatever program you like without thinking whether it confirms to some corporation's rulebook/opaque acceptance process. You can create a popular application without using API that is controlled by a corporation that will pull plug on you if your application becomes too popular/not aligned with its interests. -- What license better enables the above? Enjoy the freedom to choose whatever license you like. Don't bash GPL in the process.
- wyuenho 14y agoThe GPL is the best free software license to hamper indirect users' freedom to not license source code under such terms. GPL is also extremely ambiguous for many types of software, especially when it comes to dynamically typed languages. We just don't know what "linking" means under those environments. Having that said, I too have been wondering about the same thing antirez talked about. I wondering how many OSS developers actually receive back monetary compensation for their time put into writing their software. I'm not even talking about compensation in direct relation to the value their software, which for all I know, if that were the case, Linus and Stallman should have been as rich as Steve Jobs. There's definitely a mismatch between what people are paid for and what people most valuable for in our current industry. I wonder if there was another GPL version that's better suited for JS/Python/Ruby or whatever will actually start forcing the companies to hire more OSS developers.
- theverylastuser 14y agoI bet that copyright and patent laws make life unfair for a programmer. If he is protected by a large patent portfolio, he can attempt to make a profit, otherwise he must beware.
- mindcrime 14y agoI mostly agree with antirez on this. When I was first starting on the Fogbeam Labs[1] projects, I thought a lot about what license to use. The "stock" model for "commercial open source" seems to be to use the GPL, with the business model rooted in the idea of "people pay if they want to use the code without conforming to the GPL". But somehow that never seemed quite right to me. We're doing enterprise software, and - by and large - I doubt most of the firms who would ever use our products would ever want to redistribute them, and would never wind up having an GPL issues to begin with. And, like antirez, I just want our stuff to be used, even if the business side of things never takes off at all. I finally decided to go with the Apache License v2. The risk, obviously, is that it is now possible for a competitor to fork our stuff and compete with us, even if their product is closed source. On the "pro" side, however, is the "business friendly" perception of the ALv2 and the absence of the stigma which is (fairly or unfairly) associated with the GPL. As far as the risk of competitors goes... I figure we should, to paraphrase Steve Blank, "be so lucky as to be successful enough that somebody would want to fork and compete using our stuff". And if somebody does a closed source fork, we'll be happy to compete with them anyway, since we believe that being closed / proprietary is a competitive disadvantage in 2013. Simply, we believe that the world is moving more and more towards a place where software is expected to be open source, and where being open source will be part of the "cost of doing business". Obviously this hasn't yet bubbled up to the point where the SAS's, or SAP's of the world are being forced to go open source, but I think that day is coming. Or, at least, the day is coming when there will be significant OSS competition for SAS, SAP, etc. I'd mention Oracle, but Oracle is already a big part of the OSS world, after acquiring Sun. Think about that for a minute... for better or worse, freaking Oracle is one of the biggest players in the "commercial OSS" space. Many developers do a lot of work in their free time for passion, only a small percentage happens to be payed for their contribution to open source. Of all the reason I wanted to start a company, and an "open source company" in particular, this is a huge one... I want very much to one day be able to hire programmers, lots of programmers, and pay them to work on open source projects. It's kind of the old saw about "if you can't find the job you want, create it". I never found the company I'd ideally love to work for, so I want to create that company, a company that's hacker friendly, largely engineering driven, and a place where people will be excited to hack on the stuff they're hacking on. "But", you might protest, "who wants to work on enterprise software"? Well, that doesn't necessarily mean what you think it does. "Enterprise software" doesn't have to be boring. It's not all CRUD screens for updating customer records. We're talking about social software, machine learning, text analytics, search, knowledge management, semantic web, and related stuff here. If you would, for example, find hacking on Lucene or Mahout or Activiti or S4 or Kafka or Hadoop or something of that nature, then we're on the same page. Heck, or Redis as far as that goes. Redis certainly could be "enterprise software" in some contexts. Edit: vis-a-vis some of the other discussions on the post, I just want to be clear about one thing: At Fogbeam our stance is that if/when we fork an existing OSS project, our modifications will always remain open and freely available to all, even if the license doesn't require it. Everything we are working with right now is code we've written ourselves, and it's all ALv2 anyway, and it's all on Github for the taking. That is the way we expect to always do things, even if we did, for example a "Fogbeam Distribution of Hadoop" or something like that. We also develop with an open bug tracker, publicly available mailing lists, etc. When we talk about being "an open source company" we're not just talking about the license(s). We're not interested in a Google/Android model where we build stuff in the dark and then throw it over the wall in piece-meal fashion and then ignore the community. [1]: http://www.fogbeam.com http://www.fogbeam.com
- thruflo 14y agoI think the concept of redistribution is more interesting than which license. By what method could redistribution be achieved? Transparently accounted voluntary micropayments shared out though the reputation graph of a repo. Call it, ahem, redis-tribution.
- hakaaaaak 14y agoI've given a lot of my time to open source projects for the same reasons without getting monetary compensation, however: 1. I don't think that companies will ever give back to a project if there is no "ask". To do this GitHub, etc. could provide an easier way to take gifts. 2. The odds of companies giving gifts would seem to be very low even if there was a big "give" button, because: a. The person that would typically see the value in giving would have to provide a very good reason for the need for that gift to the administration of the company, whose interest is making money, not giving gifts to external entities. And it needs to look good on the books, too, so in my experience they would rather for the development time or just pay for a support license. b. It isn't a gift if you are getting something for it. If it can be proven that you were funding something that was a product/service, you may need to pay VAT, etc. on it. The rules and laws surrounding this vary depending on country and province. c. Could your gift be considered funding to a project you didn't intend to fund without documentation saying explicitly what the gift was to fund (and at that point, if you have that document, then it is no longer a gift- it is payment for a product or service). You don't want to give a gift for X project and then find out that it looks like you gave a gift to someone that also wrote a virus. d. Instead of a gift, if you are taking payment for services to write software, then ownership comes into account. Is it work for hire or not? Who owns the copyright? You may need to have a contract and declare that you are an individual contractor and that the work is not work for hire. But again the rules may differ depending on location of the developer and of the business that wants to "give" to that developer.
- ScottBurson 14y agoI think crowdfunding could offer a solution to these problems. I think there are some special requirements to make this work. First, the companies that want the work done need to commit to pay before it's done, so the developer knows how much they can expect to receive. Second, on the other hand, there needs to be an evaluation step, so the contributors don't have to pay if the work does not live up to their collective expectations. I don't think the Kickstarter-style model, where the developer receives all the money in advance unconditionally, can attract a lot of contributions from businesses. And as you say, companies would need to know exactly what they're buying with this money. Fundamentally, they're buying influence: influence over what project the developer works on, influence over the details of the work, and influence over the evaluation process. All this is a shameless plug for my crowdfunding site: https://bountyoss.com/ https://bountyoss.com/
- potomak 14y agoI agree with most of your thoughts. You say: "unfortunately it is not possible to pay bills with pull requests", that's one of the reasons I'm working on http://issuehunter.co http://issuehunter.co, a project to get paid for OSS development. It's a crowdfunding platform based on GitHub issues, it should improve and accelerate open source software development process. I'll shortly release a beta version and I'd really like to get some of that big percentage of developers that "do a lot of work in their free time for passion" as beta testers. Well, there's an alpha version at http://issuehunter.herokuapp.com http://issuehunter.herokuapp.com where you can sign up but it's not fully functional at the moment. You can follow http://twitter.com/issuehunter http://twitter.com/issuehunter to get notified about project updates.
- ucee054 14y agoCounterpoint: http://zedshaw.com/essays/why_i_gpl.html http://zedshaw.com/essays/why_i_gpl.html
- ScottBurson 14y agoa lot of smart coders could provide an economical boost if they could be more free to write what they love and what a lot of people are probably already using to make money I'm trying to solve this problem with crowdfunding: https://bountyoss.com/ https://bountyoss.com/
- fdr 14y agoI don't understand where people are getting this meme that the GPL or FSF has anything to do with (not) charging for software. It's about protecting the people you distribute your software to, by affording them more equivalent rights you have as the author of the code or its derivative works. Here it is from the horse's mouth: > http://www.gnu.org/philosophy/selling.html http://www.gnu.org/philosophy/selling.html > Distributing free software is an opportunity to raise funds for development. Don't waste it! There exist legitimate practical problems to grouse over, like certain business models (shrink wrap) made significantly tougher to pursue, or license compatibility (did you know that the main reason GPL has its incompatibilities has little to do with copyleft, but rather section 6, which mandates one is free to use the software for any purpose with no added restrictions...that's why GPL2 is incompatible with GPL3 and Apache2, as both have restrictions with regard to patents...and JSON, which states that the software must be used for "good, and not evil", or OpenSSL, which has the infamous BSD advertising clause), but this idea that the FSF or Free Software movement has anything to do with making software available for zero cost is a misconception that just needs to curl up and die. It's about the non-servile interaction between author and consumer. The author has the right to distribute and modify. So does the consumer. I honestly don't understand where people are getting this idea that software for zero cost is part of the FSF/GPL ideal from other than the fact that, regrettably, the preferred word of the FSF includes "Free".