Because while every piece of free software is a wound against proprietary software, the more liberal licences like LGPL and the BSD/MIT-style licences are a wound against free software: proprietary interests can take free code without giving anything back.
> proprietary interests can take free code without giving anything back.
I have bad news for you. Proprietary interests do take GPL code (any version), heavily modify and extend it, without ever giving back. The GPL specifies that you have to give the source code to the entities you distribute the work to - not to the general public or the original authors.
Since most custom software is B2B, it will "never" show up on the internet. In case the software is bundled into something physical, like an expensive CNC machine, it is even less likely.
My Visio TV has GPLd and other more open code in it (libmpeg2, among others like libpng and libtiff). The manual states something like "As required by law, you can log on to our website and request a CD of the code running on this machine for a manufacturing fee, blah blah".
Naturally, their site has no such thing, and customer service gives you strange looks when you ask for the code that runs on the TV. Its a pretty common red-tape circus. Everyone does that. I have no stake in the matter personally, so I haven't pursued it very far, but you're absolutely correct that GPL code is consistently used inappropriately. The only time the license restricts someone from using it is when they try to follow the rules. "When guns are outlawed, only the outlaws will have guns".
That said, it's still nice to see projects realize this and try to give people that follow the rules more personal freedom to incorporate the code into something that might need to be more closed than a sourceforge project.
> proprietary interests can take free code without giving anything back.
As long as the author is ok with that, and proprietary interests are happy with merging their own changes on each upstream release, I don't see any wounds.
Also, sometimes it's better for proprietary interests to lift (for example) a working TCP/IP implementation, rather than implementing their own poor thing and put it on the 'net for everybody else to deal with.
Also, sometimes it's better for proprietary interests to lift (for example) a working TCP/IP implementation, rather than implementing their own poor thing and put it on the 'net for everybody else to deal with.
But the trade-off comes with an influx of developers and developers love to open source as much as they can (Microsoft and CodePlex being a decent example of a monolithic propriety beast being led toward open source by its developers).
For a lot of developers in commercial positions it can be politically difficult to use GPL code but LGPL is much more politically expedient. These devs may well then contribute themselves either via the form of bug fixes or future work on more open projects once they leave their original employer.
I understand you may not like BSD/MIT, but LGPL seems pretty reasonable to me.
It all depends on how big/important your software is... if it's something that you're sure you'll never be able to make a living out of and that may be useful for others, why ask for anything else other than an acknowledgement?
Citing a comment made by a lawyer several years ago. First ask oneself what situations you dont want to be in, and then prepare yourself for it.
Some people dont want to see their code being used in a context that might hurt a other human being, like spyware hidden inside a video player. Say someone modified VLC to produce a proprietary video player which included functions that spied on the users activities. As a developer, I would feel slightly at unease if I heard a Chinese citizen died because he watched a unpopular video, and the government found out because the program I wrote helped in spying and identifying that user.
Of course, that doesn't make producers of LGPL (or BSD/MIT) software evil or uncaring. Its up to each and every developer on how they view their work and its impact on society, and how far one want to go on that. Same goes for work, eating and spending habbits, money investments and so on.
Well, GPL do prevent the production of an proprietary video player based on GPL code.
Sure, they can produce a video player full of spyware and then give the source of the spyware to their users, but then, that would render that spyware useless as soon a anti-virus got their hand on it. Not to mention, users would avoid the program as the spyware would then be known.
Your GPLed video player wouldn't stop that in the least. Were I a government in such a situation, I could very easily either claim sovereign immunity to any sort of copyright questioning, or I could write a function that monitors what files were opened by the user that used well-exposed file system APIs, like inotify. The GPL would not stop human rights abuses at all.
The nation-state might consider itself as above the law, but the contracted company who got the job to develop the player might think twice before breaking the law.
Or are we so jaded that we think every contracted company to the army, and every sub-contracted company being payed for a job by the NSA/CIA/FBI regularly go around and breaks laws because the think "hu, why not, my boss is the goverment, they wont mind!".
Most people write code so it can be used. They don't care about wounding anything. If the choice is between having your code being used or having no one use it, most people will chose the more liberal licenses.
>Because while every piece of free software is a wound against proprietary software, the more liberal licences like LGPL and the BSD/MIT-style licences are a wound against free software
Some of like like our proprietary software very much, thank you. I wouldn't want to live in a world where there would not have been a Photoshop, a Premiere or a Logic Pro but only their open source "alternatives".
>proprietary interests can take free code without giving anything back.
On the contrary. In reality BSD style licenses _enable_ companies to give something back to a project, whereas they would not be able with a GPL license. Sounds strange? Let me explain:
Take a BSD licensed project X.
(a) A company wants to ship something based on X, but as closed source and with proprietary extensions.
(b) They can do it, since X is BSD licensed.
(c) In order not to have to maintain a fork themselves, they also give back their fixes and improvements to the core X project, off which everybody in the community benefits.
So, the company gets to add proprietary extensions and ship closed source code based on X AND the project gets to benefit from the company's work on core X.
If X was GPL, the company would not have touched it, and would have opted for some other project instead. All those contributions back to the X community would have been lost.
That's how it works with Apple and LLVM, for example.
That's one of the reasons developers chose BSD/MIT/LGPL over GPL. Because they _specifically_ want people and companies to be able to have that option.
Some of like like our proprietary software very much, thank you. I wouldn't want to live in a world where there would not have been a Photoshop, a Premiere or a Logic Pro but only their open source "alternatives".
Pro or against proprietary software, it's a fallacy to assume that in a world where Photoshop didn't exist, its alternatives would be the same. Having a copy of PS for a relatively cheap price is a great incentive not to devote more resources to alternatives.
>Pro or against proprietary software, it's a fallacy to assume that in a world where Photoshop didn't exist, its alternatives would be the same. Having a copy of PS for a relatively cheap price is a great incentive not to devote more resources to alternatives.
In principle, yes, it's problematic to assume any alternative reality in which something has changed will otherwise be the same as ours. Things affect each other.
That said, the assumption in this _particular_ case seems like a safe bet to me. For one, Photoshop does not have a "relatively cheap price". It's over $500 dollars by itself, and some thousand dollars with the rest of the suite.
Also note that the people that "have a copy of Photoshop" and need it with all it's power are not the same people that are "devoting more resources to the alternatives". The former are graphic designers and illustrators, where the latter are programmers.
Since most programmers are casual image editing software users, they wouldn't need Photoshop. And indeed, those users get just fine with Gimp. So it's not like if Photoshop wasn't available programmers would have flocked to make an equivalent program.
For one, Photoshop does not have a "relatively cheap price". It's over $500 dollars by itself, and some thousand dollars with the rest of the suite.
A price is only cheap or expensive relatively to something. Compared to the necessary money to improve a free program, $500 is ridiculously cheap. It's also pretty cheap compared to the benefits accrued by most professionals users by using it.
Also note that the people that "have a copy of Photoshop" and need it with all it's power are not the same people that are "devoting more resources to the alternatives". The former are graphic designers and illustrators, where the latter are programmers.
Since most programmers are casual image editing software users, they wouldn't need Photoshop. And indeed, those users get just fine with Gimp. So it's not like if Photoshop wasn't available programmers would have flocked to make an equivalent program.
And exactly why wouldn't designers and illustrators pay (read: devote resources) programmers to improve it, just like they do now?
If your claim is that people don't pay for OSS development, my paycheck says otherwise.
>And exactly why wouldn't designers and illustrators pay (read: devote resources) programmers to improve it, just like they do now? If your claim is that people don't pay for OSS development, my paycheck says otherwise.
No, my claim is that people don't generally pay directly to support OSS development, and never in the scale of supporting huge teams of programmers, equipment, testing, etc like Adobe does.
There are very few examples of people in a field paying directly for OSS programmers to create programs for their profession.
Don't conflate a company paying for OSS software or employing programmers working on OSS (like Sun, Oracle, RedHat, IBM etc), with "people" and specifically graphic professionals paying programmers to create OSS graphic editing programs. (The one counter-example I can think of, Bender, was closed source, and not doing very well financially when people sponsored it's becoming OSS).
Heck, GTK+, the very toolkit used not only by Gimp but by a huge ecosystem of programs, is left with ONE programmer working on it (he posted a complain a few months ago).
> If X was GPL, the company would not have touched it, and would have opted for some other project instead. All those contributions back to the X community would have been lost.
It is important to understand the distinction between "open source" and "free software". Open source focuses on the benefits of "open" code and development and how it can create superior software. Free Software focuses on the ethical issues---while free software developers certainly want contributors, the emphasis is on the fact that the software respects your freedom and, for that, it's far superior to any other proprietary alternative; free software users constantly make sacrifices in functionality and usability, and we're okay with that.
I think the fundamental disconnect here is that many people think the freedom you mention is not some sort of moral right.
I have yet to meet anyone who can convince me that freedoms 1 to 3 should, in fact, be freedoms.
(I do not have a problem with anyone giving her or his software a license that requires everyone to respect those four freedoms. What I do have a problem with is when people are berated for picking a permissive license that, however, doesn’t quite line up with the four freedoms.)
The freedoms represent an ethical issue---that software developers have unprecedented control over their users. Why should I, as a hacker, be able to tell you what you can and cannot do with your device? Furthermore, it raises deep privacy issues---what kind of data am I collecting and why should I have that data?
I entered the free software movement slowly (I began software development on Windows as a young boy and was trained to think that bossing the user around was a good thing; I thought it was fun to write DRM system and anti-features). I began using GNU/Linux while still rationalizing my use of proprietary software through Wine or by dual-booting into Windows. I then saw the benefits of the "open source" development model. It wasn't until I spent the time researching the reasons behind the free software movement that things began to click. I was able to look back on everything I learned as a developer for Windows and see that I enjoyed the thought of controlling my users. I enjoyed the power I got from programming---programming was empowerment, and the only way to squeeze the money out of those unsuspecting users was to do it forcefully.
People have fundamentally different philosophies when it comes to programming. Do all proprietary software developers do so out of greed? On some level, sure---they're not contributing that code so that others may benefit from it. But are they doing it for the purpose of controlling their users? Not necessarily, but they still are, even if they have the best of intentions. Is someone who creates proprietary educational software for children in third world companies "evil"? Certainly not. The problem is that they're denying them an additional right---the right to modify that software, learn from it and use their devices as they please.
Of course, we often see proprietary software used unethically, often times for vendor lock-in or greed; corporations are worried that if they lighten their grip on their users, that the users may run, or worse, do something [il]legal. I don't believe that is the place of software developers. I remember, back when I used Windows, I was obsessed with magic/illusion. I purchased a ton of videos online teaching me various magic tricks, but the videos were laced with DRM (which, at the time, as a Windows developer, I applauded). The problem was, that I then upgraded my hardware. My videos no longer worked. I contacted them for a new key, and could view them again. Then I got a new PC. And now I use GNU/Linux. I can no longer watch those videos that I purchased because of this unnecessary, artificial restriction. Was I going to distribute those videos? No. Did that prevent others from stripping the restrictions and distributing it anyway? Certainly not. I was being punished for others' actions and the others weren't any worse off from the restrictions, because they understood how to defeat them.
Of course, DRM's only one of the many issues (and DRM cannot exist in free software, because the community would simply remove the anti-feature). What if I were using some software---let's say Photoshop---and it crashed on me in the middle of my work. Crap. Well, if I were using GIMP, I would run gdb on the core dump (assuming a segfault) and inspect the problem. I would try to repeat it. I could, if I wanted to, get my hands on the source code, fix the problem and distribute that fix to others. If I didn't have the time or ability, others could fix the problem for me, and we have the right to share those changes. We have the right to benefit from those changes. With Photoshop, we'd better start waiting. What if I was able to magically come up with a fix, perhaps by modifying the machine code? Hold on---I'm not allowed to do that! And I'm certainly not allowed to distribute that fix to others. And I'm certainly not allowed to give my son a copy for his PC if he wanted to do an art project for school.
And ultimately, you may find that you do not agree with our philosophy---many don't. That's certainly your right, and I respect that. What I cannot respect, and will not respect, is when that philosophy is used to exert control over others.
(As a final note: many say we control developers through our "viral" licenses. But keep in mind that we're trying to protect the users from developers. This means taking power away from developers. This is intentional.)
>Open source focuses on the benefits of "open" code and development and how it can create superior software. Free Software focuses on the ethical issues---while free software developers certainly want contributors, the emphasis is on the fact that the software respects your freedom and, for that, it's far superior to any other proprietary alternative
Well, the "far superior" part is just, like, your opinion, man. [to quote "The Dude"].
>free software users constantly make sacrifices in functionality and usability, and we're okay with that.
If a more usable program or one with more functionality can make people freer to do stuff with it, then the software doesn't really respect their full freedom, only a constrained software-centric notion of it.
Mixing the concepts of functionality and freedom into one concept do not work.
If the program has more functionality, but limits the users in way of Intellectual freedom or Liberties, it doesnt make people more "freer to do stuff". What you got is a program with less freedom but more functionality. Two distinct property of the program. Let me make an exmaple.
Is a video editing program "very free" if it have every function in the world, best usability, and is perfect in every sense, but as a legal requirement it demands all copyright ownership of any video edited? Is that program more "free" than say VLMC? What if the proprietary did allow the users to retain the copyright, but, only if the video included a ad snippet? What if non-ad included was okey, but the video had to first to go a central censor bureau to check that no kittens was harmed? what if the video instead went to the local copyright bureau to be checked for any copyright infringement? What if it included a hidden water stamp?
Adding ads or sending videos to be accepted by a copyright central are not very far away. Youtube already does this. If the video editing tool was bundled exclusively with youtube (a extreme an absurd concept I know), the examples would be instantly true. So far, I don't know of any video editing tool directly connected to youtube, but then I haven't checked on every video editing tool on iphone and android. I would be surprised if there didnt exist at least one.
Hidden watermarks already happen by printer software and some screenshot programs. Some digital cameras also do this. It not a really a big leap to say that a proprietary editing tools would/could auto-include watermarking if there was a business case for it. I would imagine that a photo editing tool bundled with getty or flickr could very easy find a business case to know when a image get posted outside its domain. Actually, there might already exist some photo-editing tools on iphone/android that do this already.
>Mixing the concepts of functionality and freedom into one concept do not work.
I don't mix them. Reality does. While the two sources are theoretically orthogonal, they are also practically connected -- and it's easy to see why: proprietary a la Adobe equals huge company and tons of paid programmers, including people doing the necessary but less glamorous grunt work, i.e more functionality. So, most of the time, in desktop application software (server OSS software fares better) people have to chose between a more featured proprietary solution, and a less featured open source one. And more often than not they chose the latter, as they for example chose Windows/OS X over Linux. We cannot just turn a blind eye to that choice.
>If the program has more functionality, but limits the users in way of Intellectual freedom or Liberties, it doesnt make people more "freer to do stuff". What you got is a program with less freedom but more functionality. Two distinct property of the program. Let me make an example. Is a video editing program "very free" if it have every function in the world, best usability, and is perfect in every sense, but as a legal requirement it demands all copyright ownership of any video edited?
Well, if what I want to do is make a movie, and I cannot do it at all with an OSS program due to functionality limitations, then yes, the proprietary one is freer, even if I have to give them my copyright.
Which is a strawman argument, by the way. Proprietary software mostly asks for your money, and for you not to tamper with the source. No video editing program asks to hand them over your copyright.
>What if the proprietary did allow the users to retain the copyright, but, only if the video included a ad snippet?
What if? It's between the users and the program. If they accept that, then they want to use the program despite the ad snippet.
>On the contrary. In reality BSD style licenses _enable_ companies to give something back to a project, whereas they would not be able with a GPL license.
All it takes is to list projects like Linux and GCC to show that yes, companies can give something back just fine with GPL.
What you are referring to are companies who wants to use open source in proprietary software, and yes for them GPL is not an option unless they can make a deal with the owners of said GPL licenced software for dual licencing. Then again GPL is created on the premise that all recipients shall have access to the source code so obviously it won't work with proprietary software which typically relies on keeping the source code hidden while charging for binaries.
>That's one of the reasons developers chose BSD/MIT/LGPL over GPL. Because they _specifically_ want people and companies to be able to have that option.
And one of the reasons developers chose GPL over BSD/MIT is that they want to recieve ANY enhancements made to their code.
There's no right or wrong here, developers will make the decision for THEIR code.
So typically an open source developer will choose between:
do I want to allow people/companies to take the code I offer and return nothing/only what they want of any changes they make (BSD/MIT-style)
or do I want them to have to return any changes made to the specific code I share (LGPL,MPL-style)
or do I want them to open source any code with witch they link my code (GPL)
Looking at how these licences are employed in 'real-life' it's my impression that GPL is often used for larger, full solutions/applications, while BSD/MIT/LGPL/MPL etc are dominant in component/framework style code.
Again I'm not taking any sides when it comes to licencing, I also have no problem with proprietary code (unless it tries to lock-in my data by only offering a proprietary format which is a no-no for me).
>All it takes is to list projects like Linux and GCC to show that yes, companies can give something back just fine with GPL.
That only works for server software, like Linux, and basic infrastructure that tons of companies use, like GCC, etc.
And it works because they don't have to distribute said software. On the server side, it doesn't make any difference if the license is BSD or GPL.
In both cases, companies get to make whatever changes they want, deploy at their infrastructure, and NOT release the code (because they're not re-distributing it).
Plus, in a lot of cases, they use Linux as a commodity underlying layer, so they don't care about making proprietary changes at all.
That most of such analyses on the purpose of people choosing between BSD/GPL are mostly based on the presumption of imaginary or hypothetical reactions of human rather than solid data from real world, renders these analyses less convincing as such assumptions on human behaviours are very likely to be wrong.