Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

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.

In other words: this generation doesn't care for limiting other developers' choices in development in the way Stallman wanted. They prefer to just give away the code instead of forcing everyone who uses it to open their own work. Good for this generation, I'd say. They've seen the outcome of a "GPL-only" world, and they didn't like it.

That's in fact the key difference, and interestingly each side more or less agrees. The "free software" side's key interest is the freedom of users to modify their hardware and software, and distribute those modifications: the freedom-to-hack. The "open source" side's key interest is the freedom of developers to reuse software in a distributed, "bazaar" manner. Sometimes the goals overlap, and sometimes not.

The "free software" side's key interest is the freedom of users to modify their hardware and software,

Wow, 10-year flashback from Slashdot of old, arguing about how this freedom is about as important as my right to appear pro se in a court of law. Anyone who is a user and does this with hardware or software has a fool for an engineer. If they are not a fool, they are a developer and then the developer freedoms espoused by permissive licenses become more important.

This line of reasoning also brings us down another familiar path--the cognitive dissonance among Free Software folks concerning "theft". When you discuss "piracy" they are all on board with the idea that "IP can't be stolen because it isn't property, and you still have the first copy", but when you mention permissive licensing they immediately complain that it allows companies to steal code.

Anyone who is a user and does this with hardware or software has a fool for an engineer. If they are not a fool, they are a developer and then the developer freedoms espoused by permissive licenses become more important.

No, they aren't. How is a developer going to change the BSD code in OS X? The BSD freedom is the freedom to find all the little bits and pieces that are BSD code, recreate all the other parts and ship it on their own hardware. It doesn't do anything to enable a developer to modify any closed source project made with open source. The BSD fans just like to flip-flop on this subject, yeah either tons of people are using BSD but they have none of the open source freedoms or they have the BSD freedoms but almost

I'm not. I'm just annoyed by posts like the one I responded to where people deliberately misinterpret and bash the GPL for no good reason.

No misinterpretation happened – both you and he interpreted it correctly, he just felt that a different freedom was more important than the one the GPL encodes, and pointed out that many other people feel the same way.

As an aside –I find it funny that the GPL guys are the ones taking offence here –after all, the article is the one with the aggressive stand point of "what can be done about" people using more permissive licenses than the GPL.

Certainly more freedom to the developer, but your ability to choose the license you want is also in a way the ability to limit the freedom of others if you so wish, or in this case the ability to grant another the ability to limit user choices.

More freedom to the developers always comes at the cost of less freedom to the user. Not that it is necessarily a bad thing, but it just debunks the theory that more license options implies in more freedom in the general sense.

Well, yes they do. They may not share all their code, but they often share fixes and enhancements. For infrastructure software, it makes a lot of sense to share your software - you need the infrastructure, others need the infrastructure - and you probably prefer to share the task of maintaining infrastruture rather than do it on your own.

Applications may be a different case: and the GPL might be more appropriate.

In GPL only world, the entry costs to producing and selling software become a lot higher. I cannot use an GPL code, so I must replicate all that functionality. You might think this is great since people will produce free software instead, but most people are motivated by money so what it really means is that people are more likely to work for a big company (which can overcome these entry costs) than start their own company.

To give a concrete example, I was working on some software (that I planned to sel

Wait, your first statement makes no sense. In a GPL *ONLY* world, you'd write GPL software. You'd use other GPL code to do so lowering your development costs. You'd likely charge for support and new additions of the software, but not selling it.

I first considered Gnu Scientific Library, but if I used this I would have to GPL my own code

If you think so, you're suffering a major failure of imagination. You can always find a practical way for non-GPL code to interact with GPL code that doesn't subject it to the GPL. Worst case, you build a light-weight wrapper around the GPL code and run it in a separate process. The beauty of it is that the authors of the GPL code can't even say nay: the GPL expressly forbids them from modifying it terms to disallow that higher level interaction.

No my argument is that if the FSF wanted GPL software to be used only with other GPL software, they'd have written the license that way. They didn't. They wrote the license so that if you link with the code yours becomes GPL but if you merely use the programs together, it doesn't. So, make your improvements to the GPL code, release your improvements to the GPL code and if you want to keep the rest of your application closed source then do it. We'll appreciate what you chose to contribute and those of us with a brain will respect your choice for the things you chose not to contribute. We probably won't use the closed source parts, but we'll respect your choice.

In other words: this generation doesn't care for limiting other developers' choices in development in the way Stallman wanted. They prefer to just give away the code instead of forcing everyone who uses it to open their own work. Good for this generation, I'd say. They've seen the outcome of a "GPL-only" world, and they didn't like it.

Or maybe they're tired of license confusion?

You can have two codebases that are "GPL" but which cannot be mixed together because they violate the GPL.

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.

True, with a brand new account and a highly up-modded comment there's a chance he's a shill too...all I know is he's full of shit and forgets (or willfully ignores/hand-waves away) the conditions that led to the creation of the GPL. I could draw a very nice political comparison here but I'd rather stay on topic.

Here [thebaffler.com] is a nice article that includes a historical writeup by Evgeny Morozov on how the concepts of Open Source and Free Software ended up meaning something different (and fas less interesting and progressive) than initially. Warning: It is a long read.

Most will be serious, and most will be AWARE that their posts are making strawmen of the license they disapprove of, but that wont stop the posts.

Seriously, who among GPL proponents is not aware of the BSD arguments / goals? Who among BSD proponents doesnt get what Stallman et al are going for? Do you REALLY think they hate freedom, do you REALLY not understand that they are concerned with different "freedom" than you are?

Exactly. I "public domain" my small and unimportant stuff, basically because it's worthless and if anyone wants to try to close it and profit from it or plagiarize it, good luck and have fun. If I were to release something large and valuable it would be GPLv3 (possibly a data overlay generator, soon.)

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.

Meh, there's plenty of substantial work (coulda-been-paid-for-it) on GitHub.

However, it's is nearly all web-related. And the GPL doesn't offer much for web code, because the resulting application is rarely "distributed" beyond the company who built it. BSDish licenses are just a better fit for what they're trying to accomplish.

Closed-source projects can't be distributed under the GPL (that would be in direct conflict with the terms of the license...you have to make source code available, including any modifications you have made...at least for code that you distribute)...I think that's the degree of exclusion the OP was talking about.

That doesn't mean you can't run a closed-source program on a GPL-licensed OS stack.

Actually, going BSD pretty much does mean you give up on copyleft. It doesn't mean you give up on open-source, of course, but copyleft -the idea of using copyright to enforce the openness of your code- is not a part of BSD, and is in fact the Big Sticking Point of the GPL for many people.

Lawyers love to abuse non-legalese. This is why the FAQ and preamble exist. And even at it's length, the GPL is shorter than virtually any commonly found EULA or other license agreement I've ever seen.

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.
I also think they have seen how valuable an idea and the supporting code can be and want to be able to cash in on that while still sharing what they're doing. The BSD license is very amenable to that; unlike the GPL. It's not less free tahn teh GPL and an argument can be made, and is being made on/., taht it is less restrictive and thus freer than the GPL.
This means younger generation haven't forgotten about open source licenses (BSD is one), they've just chosen the better one of them.

Its wasn't a question of Open Source it was specifically about all of that "Free Software" ideology that Open Source, by its very nature, ignores.

So essentially you are saying YES, they have forgotten about copyleft, and have moved to less restrictive models.

Though, I tend to think the answer is more No, they never knew about it in the first place and likely don't even bother to think about licensing....and are just doing what programers have been doing since before licensing became an issue.... just sharin

The BSD license says, "I will not use copyright to impose regulatory monopoly restrictions on you, but you can incorporate my work in a derivative work which imposes regulatory monopoly restrictions on others."

The GPL says, "I will use the regulatory monopoly restriction of copyright in the narrowest way that prohibits the use of my work in any greater exercise of monopoly restrictions on others."

The BSD license uses your copyright to maximize the freedom of primary recipients of your work. The GPL uses your copyright to maximize the freedom of secondary recipients of your work. Claiming that one is objectively more free betrays a lack of comprehension.

Yeah, that's NOT a good argument. Apple contributes to or created a bunch of BSD licensed projects, as the other reply pointed out. The part of OS X that is not open is Aqua, which is the equivalent of X and was never BSD licensed. If Mach, and all those other projects, had been GPL licensed Apple would never have used them, and never have contributed to them. CUPS in particular really benefitted when Apple bought it and hired Michael Sweet to develop it. WebKit also took off when Apple got involved, a

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.

So.. there was this college student named Linus. He wanted to play with UNIX. Licenses too expensive, forget that. He looked at BSD (back when there was really just the BSD). It was in a lawsuit, so he didn't want to mess with that. So he started his own. He called it Linux.

Then he had to pick a license. The BSD license was already a well established license. But he went with the GPL instead. Why? Because he was worried about Freedom-as-in-speech and all that? No. He was being very pragmatic.

It depends on the kind of code for me. With machine-learning or statistics code, I generally prefer GPL, because I don't really think Mathematica, Matlab, or Excel should be able to use my work for free without giving something back. If they don't want to GPL their own software, they can purchase a proprietary license from me, just like I have to purchase one from them to use their products. But I ain't giving them a free one.

It's a matter of trust - I trust that generally others will do the right thing, and good changes will come back.

This is optimistic, like the tragedy of the commons. It's also worth mentioning that there are several times in history when companies used open source code, and wouldn't have given back if it weren't for the GPL requiring it. For example, that is why GCC includes Objective-C support. NeXT wouldn't have given that back at all if they weren't required.

Microsoft released it's Hyper-V code [osnews.com] due to the GPL. They wouldn't have if the kernel had been BSD licensed. Many mobile companies only release the modifications to Android that are required under the GPL. If it weren't for the GPL, they likely wouldn't release the drivers either, and projects like CyanogenMod would be a lot harder. There's a long list of source code that we have because of the GPL.

Apple hired one of the original creators of the LLVM compiler, and put him in charge of a team to maintain and develop LLVM. The team working at Apple subsequently wrote and open sourced the Clang frontend for C-like languages (C/C++/ObjC). Clang/LLVM has recently supplanted GCC as the primary tool chain used by FreeBSD.

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. Yes other people could make money off what I write but if I was worried about that I wouldn't have released it in the first place.

I really wish FreeBSD would keep up with Linux. I keep trying to go back to my FreeBSD roots but the hardware support isn't there, the software choices are narrowing (thanks to gnome3 and systemd) and the FreeBSD tea

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 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".

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.

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.

The distinction is that with GPL it's the code that's free, and with BSD it's the receiving developer. Both are legitimate models of freedom.

As to FreeBSD not keeping up with Linux, it's largely because when people make a contribution, they don't want someone else to hide it away, make changes, and then keep them from access to those changes. The GPL ensures that the code stays free. The BSD gives the freedom to the receiving developer... which isn't to the benefit of the donating developer. So a great

I see the two comments up top completely missing the point, as does the original submitter.

only about 15% of them had a clearly identifiable license in their top-level directories.

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.

I see the two comments up top completely missing the point, as does the original submitter.

only about 15% of them had a clearly identifiable license in their top-level directories.

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.

I don't think it was explained well enough in either TFA or the Slashdot summary. However, it does say that only about 15% had clearly identifiable licenses and that GitHub's default is "all rights reserved". Therefore, it's reasonable to assume that the vast majority of code on GitHub is not Free or Open Source software, but is licensed as "all rights reserved". If I understand correctly, that means that technically, no one has permission to even download the code from GitHub, let alone extend and share it

Wikipedia is poorly worded. They have paid accounts (with private repositories) and free accounts (with public repositories). You can have an open source project in a private repository. You can have a closed source project in a public repository.

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.

Most of what I've posted to Github was a snip of example code that I needed to share with exactly one person. The only real project I have there was AGPL, and it's an enormous piece of work. By project, I'm 5% open licensed. By lines-of-code, it's more like 99%.

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

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.

Lack of legalese is considered harmful, particularly in our litigious society. Code with no license is completely unusable and a liability, particularly if someone can claim to show a trail of ownership, which Github does establish.

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.

Right now the trend is to focus on the viral, strict portions of the GPL, which prevent people from using code if they don't want to share back. This trend probably started around the time of GPL3.0

In a few years, people will realize that corporations are taking their code and not giving back, and they'll get upset, and a lot of them will start using the GPL. Then some other life event will happen and they'll switch back.

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. 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. In Stallman's idealistic world perhaps everyone would be communist and no one w

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".

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?

Actually, even RMS refers to the BSD and Apache licenses as "GPL-compatible free software [gnu.org]". So the GPL and other two popular licenses, BSD and Apache, are all free software by the Free Software Definition [gnu.org]. The difference is that GPL is a copyleft [gnu.org] 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 [opensource.org], 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.

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.

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.

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.