Most Projects On GitHub Aren't Open Source Licensed
PCM2 writes "Kids these days just don't care about open source. That's the conclusion of the Software Freedom Law Center's Aaron Williamson, who analyzed some 1.7 million projects on GitHub and found that only about 15% of them had a clearly identifiable license in their top-level directories. And of the projects that did have licenses, the vast majority preferred permissive licenses such as the MIT, BSD, or Apache licenses, rather than the GPL. Has the younger generation given up on ideas like copyleft and Free Software? And if so, what can be done about it?" Not having an identifiable license is one thing, but it seems quite a stretch to say that choosing a permissive open source license is "not caring"; horses for courses.
The vast majority preferred permissive licenses such as the MIT, BSD, or Apache licenses, rather than the GPL. Has the younger generation given up on ideas like copyleft and Free Software?
No, they haven't. They've just noticed that licenses like BSD is better open source license than GPL. There's a simple reason for it too - BSD license is truly in the spirit of freedom. Anyone, either open or closed source projects, can use BSD licensed code.
This means younger generation haven't forgotten about open source licenses (BSD is one), they've just chosen the better one of them.
I really like the GPL, I like what it is trying to do.
But over time I've gravitated to BSD like licenses, because I really do want as many people as possible using something.
It's a matter of trust - I trust that generally others will do the right thing, and good changes will come back. It's re-enforced by the fact that contributing code back makes it was easier to absorb updates to the main codebase, selfishly keeping your updates private makes lots of extra work for you over time.
The GPL tries to enforce something that will happen naturally, which I feel is overkill.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
It is, in fact, very restrictive. If one wants truly free software, one uses a more free license or makes one's code public domain.
I see the two comments up top completely missing the point, as does the original submitter.
This is why. And this is because they don't understand copyright law and don't realize that unless they explicitly put the code into the public domain or apply a license, no one can touch it without violating copyright law.
It's probably a mixture of that and outright laziness.
BSD Licenses aren't "better" just different.
For the little bits of Perl and C that share with the world BSD licenses are just fine. I'll lose no sleep if they end up in Microsoft's or Apple's O/S.
But if I take the time to write a difficult Kernel driver I'm contributing arduous, "real," "could have been paid for it," work to a specific ecosystem that I want to protect. That's a different level of effort and a different license needed.
Just different.
I am sure most of those 1.7 million projects have no aspiration to become a real software project. do they have a website, mailing list/forum, releases, users? or are they just random little scripts, snippits and exercises, just put on line for the education of others?
For a large piece of coding i might care about getting bug fixes back. for the script i use to sort my digital photos in to folders based on the date in their exif, and is 50% lines pasted from documentation or stack exchange, i don't care. if you want to know which licences are used for serious projects then grab the top hundred or thousand from ohloh and check them.
I have uploaded the meagre, puny code that I've written in a small number of projects without bothering with a license. I expect people to steal it and be quiet about it, because I am the noise floor of github.
Frankly for most projects on github (1.7 million is not a small number of computer software projects), legalese is a bother. It is simply uncouth and considered harmful.
All rites reversed 2010
Personally, this is why I feel that the recent invention of the "automatic copyright" grant is an epic fail. By default all published works should be in the public domain. Only those that are explicitly marked by the author with a copyright and a license should be protected.
the growth in cynicism and rebellion has not been without cause
I personally prefer the BSD license. To me freedom means "do whatever you want with it," as soon as you start attaching strings and restrictions it's no longer free.
Then why not make it public domain? Why attach a license at all?
Good question. Because without a specific license attached companies and individuals alike wont touch it. The default is "all rights reserved" meaning its not open unless specifically stated. You retain rights until you explicitly give them up. Hope that makes sense, I'm not a lawyer and may not have explained it in the best of terms.
I'm sorry, but the entire premise that there is one "best" open source license is completely wrong. Where did this obsession arise to see one license crowned victor over all others, in all situations?
BSD (and MIT and variants) -- I've found they work best for providing backend and reference libraries, which by their nature are trying to provide a standard implementation of something, or at least a standard API. Open and closed sourced projects alike can use and modify it to suit their needs. This means such a library gets the widest adoption over the alternatives (all other factors being equal). This is especially great for server-side programs which want to promote multiple third-party clients - just release a BSD reference client.
LGPL -- A step down, for when you want the adoption level of a BSD license, but your project is complex and high maintenance enough that it needs to keep all the developers focused on a single api and codebase in order to thrive. Graphics libraries like GTK, audio processing libraries like LAME, are a great example of this.
GPL -- Finally, for the same reasons as LGPL, your want everyone contributing back to a single codebase, whether it's because you don't want to give the codebase away to closed source products that then profit from it, prevent brand confusion, or just maximize developer contributions. Mind you, closed source projects *will* choose an LGPL/BSD alternative over this or closed source, so it doesn't make much sense for libraries, etc. Primarily, this is useful for applications, which are vying for user (not developer) eyeballs.
So given they all have different uses that fit better for different project types and target markets, who in their right minds thinks only one of these licenses is correct?
I think there's two very different justifications for one or the other.
By contributing to "truly free" software (BSD) you're raising the floor, because it's work that no-one ever needs to repeat again. As such, I consider the LGPL something of a hack: it starts with Stallman's notion of free meaning "never closed", then realises that no-one would use a compiler that doesn't let you make proprietary code (on the grounds that the libraries are GPL code) and hacks it so that it's GPL "but not really".
GPL is useful for "pushing the boundaries". If you've done something new and different, sure, keep control, because something that can just be picked up, rebranded and sold by a marketing company is worth protecting from exploitation.
But most software doesn't push the boundaries. Most software is just the same all stuff in a different suit. The difficulty of modifying existing software is a cost. Restrictions are a cost too. Most GPL software is in effect more expensive than just rewriting from the ground up -- only very high utility-value software isn't (think Linux, OpenOffice). And yet, these too contain many elements that could "raise the floor" -- task schedulers, text renders etc -- that if released under a BSD license could be used everywhere. Someone, some day, will now have to repeat that work.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
To me freedom means "do whatever you want with it,"
That's exactly the freedom the GPL guarantees. The GPL guarantees that every user of the software will have the freedom to do whatever they want with it. The only things prohibited by the GPL are actions that remove the freedom of others.
Give me Classic Slashdot or give me death!
Actually, even RMS refers to the BSD and Apache licenses as "GPL-compatible free software". So the GPL and other two popular licenses, BSD and Apache, are all free software by the Free Software Definition. The difference is that GPL is a copyleft license and the Apache and BSD licenses aren't.
Why are the Apache and BSD licenses becoming more popular than the GPL? Because free software has grown up. Where I work, we would not dream of implementing the whole software stack from scratch. We use lots of open-source libraries. My company's legal department is allergic to the full GPL because they want to keep open the option to do exactly what the GPL is designed to forbid -- make a proprietary product using open-source code. Usually our code is custom developed for a specific client but we might want to re-use that and/or make a general purpose product some day.
So, for us, using Apache/BSD licenses is easy. It's almost frictionless. Legal is comfortable with them, and pretty much all we have to do is include the license file and do a quick audit to make sure we've complied with it. GPL is much harder for us to work with because we have to justify to legal why we're signing away the rights before the product is even developed.
The whole point of the Open Source Initiative, as I understand it, is to promote adoption and use of free software. It turns out that copyleft is {sometimes, often} a barrier to that in the business world. So I would say that "open source" (aka non-copyleft) has simply beaten "copyleft" in the marketplace.
Copyleft was a brilliant idea but non-copyleft free libraries are what I use in day-to-day development work. And I say that as a dyed-in-the-wool, sandals-wearing, free-as-in-freedom, latte-sipping, corporation-hating hippie wannabe.
[Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
And no true Scotsman would murder his wife. The GPL's strings will never get in anyone's way unless they're trying to take a piece of free software, closed source it and redistribute it - typically with the intention of profiting on others' work while contributing nothing in return.
"When information is power, privacy is freedom" - Jah-Wren Ryel
The GPL was created with the notion that every strata of software must be free and open. That's fine and lovely for Stallman but it provides unrealistic restrictions for commercial use.
You could say the same about all of our rights. The fact that a right is inconvenient for businesses to respect is not reason to abandon that right. You might as well say "That's fine and lovely for Lincoln, but it provides unrealistic restrictions for plantations".
Businesses and individual developers alike donate resources to these communal properties for the benefit of all in a share and share alike manner so that we can focus resources on our real goal--the software we actually want to write and sell.
So, go ahead and write and sell your software. Nothing in the GPL prevents that, and there are people who make a living today writing and selling GPL software. If businesses were restricted by law from infringing on the four software freedoms, it would be even easier to make a living writing and selling free software.
In Stallman's idealistic world perhaps everyone would be communist and no one would care about money and possessions because we'd just step up to a replicator and say "earl grey, hot."
What a ridiculous strawman. Protecting the rights of consumers is not communism. There's nothing more communistic about the four software freedoms than any of the other consumer rights we protect by law.
Give me Classic Slashdot or give me death!
Welcome to the point. If you aren't willing to open source your code as well, then I don't want you to use mine. You can pay someone to write your own version. Pay in cash or pay in code, but no free ride to businesses.
I still have more fans than freaks. WTF is wrong with you people?
I am pretty sure I'm not the younger generation.
And yes, I've pretty much abandoned the GPL, because the GPLv3 is to open source what the anti-circumvention cause in the DMCA is to copyright. RMS had a vision of a cooperative paradise. Then he realized that some people wouldn't play nice, and did what everyone else does when they realize that not everyone will voluntarily adopt the business models they want everyone to use. Tried to figure out a way to make it happen by force.
So, yeah, I'll use the GPL where it's the established license, and some of the stuff I work on ends up being put out under LGPL. But for stuff I write because I want it to be open source? Permissive licenses. Usually the lightweight BSD (no advertising clause) or Artistic, or heck, public domain. My goal is to give stuff away, not to force other people to give stuff away.
It's the same thing that's happened to my morality over the years; I've started focusing more on living according to my own moral beliefs, and less on trying to find ways that society can force other people to do so too.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
The BSD license enables additional freedoms that fit into things people may want to do with software that is specifically prohibited by the various GPLs.
Which specific freedoms do you refer to here? Are there any such "freedoms" that don't amount to a restriction on the freedoms of end users?
Give me Classic Slashdot or give me death!
I agree.
I have three projects on GitHub. One of them is practice code I was writing for when I interviewed with Google (don't worry, they didn't ask me a single question that was on the study sheet - but I did have fun writing a splay tree). It was just a bunch of functions with a description of "nothing to see here".
Another project is eventually going to be a GPL project that runs a football pool. Currently it's just a parser that scrapes nfl.com and puts info into data structs. I haven't bothered putting the license file in it yet. It uses another GPL library, so it's already implied that it will be GPL code when it matures past being a bunch of functions sewn together just enough to test them. Why would I put a license on that? So I can be sure that I get changes back for incomplete interfaces? The interfaces aren't even defined yet.
The last project, I can't even recall what it is. I'm not maintaining it and I don't care if anyone swipes the code. It's probably code that scratched an itch that I had that was unique to me.
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
I haven't had an opportunity yet to publish any non-trivial open source projects, but when I do, my LICENSE.txt file will simply contain the sentence "There ain't no such thing as intellectual property." and the following link:
https://mises.org/document/3582
Do what you want with my code, and don't bother me about licenses. If you're going to badger me about fantasy concept X vs fantasy concept Y, at least make it fun, like who would win in a fight -- Aragorn or Han Solo?
Because some people think "free" can only mean that they are personally free to do whatever they want. Just like any free society has no laws against murder.
IAIFARSIJDPOOTV - I Am In Fact A Reality Star; I Just Don't Play One On TV
The BSD license guarantees that just as much. The difference is that it doesn't guarantee that you can do anything you want with a modified version of the software that was never BSD licensed in the first place. The GPL addresses that issue by removing the freedom for someone to create such a thing in the first place.
One of my favourite programming language is implemented in a non-GPL-compatible way. There are are a few quibbles about SRC's rights to use it and redistribute it as if it were their own if a modified versino ever gets back to them, but basically says that you ca do anything you want with it, provided you release an modified code under the same licence.
Now for technicalities, this is incompatible with the GPL, and it becomes difficult to write software using both Modula 3's libraries and GPL'd libraries. I'd like to distribute binary object code for those benighted platforms where ordinary users don't have development tools, but I can't.