I'm still highly dumbfounded by this whole remote access thing. I can't imagine anything worse for Web apps. I can't imagine a more restrictive license that takes away all of my freedoms for a Web app licensed under gplv3. Let me give an example.
A client of mine wanted a shopping cart that could take an uploaded CVS and charge people by how ever many data lines were in the file. I took Zen-Cart and made some plugins for it to handle the file upload. But I couldn't override the price functionality. There was no proper plugin for changing that behavior. So I modified some of the function calls to check for prices and had them examine the size of the file. Done and done. I installed the site on the client's server and charged him for the services of code modification.
Now, let's examine what would happen if Zen Cart were licensed under the GPLv3. I have made modifications to the system *and* I am now "redistributing" the code by allowing people on the Internet to see it. I must allow them to obtain my changes. I've effectively forked the project and now I must maintain my changes and supply them to the world. Should I absorb this non-trivial support cost to publicize my private work for a client to the rest of the world, or should I pass it on to the client? How about a line item fee for open source publicity? Anything over $50 and the client would have demanded that I just go with x-cart to start with.
Well, too bad for me, you say? Let's now contrast this with a non-Web application. Assume that the client wanted me to update/usr/bin/yes and add a command line flag for specific functionality. I make the changes, compile the program, give the client the code and the program and charge them for my time. They do not have to give the source code to anyone else, either under the GPLv2 or v3.
v3 singles out Web applications and provides extra restrictions that will harm the open source community by excluding small to mid-sized businesses, consulting firms, and freelance developers. There will be massive breaking of this license and most people will turn a blind eye to it, I already see it happening with GPLv2 a lot and I always tell my clients that *I* believe they are violating the terms of the agreement if they do X,Y, or Z with the modified product but they should check with a lawyer. Now I can see that violations will be so frequent and blatant that it will diminish the integrity of the spirit of the license and it will lose respect over the long haul. I just hope that make great Web apps and want to share them the way they have been don't blindly choose GPL v3 because they think it's just better. Well, actually I do hope that. Their active user base will probably plummet and maybe those people will all come to my projects:)
I agree with the second hole that you mentioned, but I'm on the fence about the first one. I think that a company should have the option to create a complete product out of open source technology and encrypt the final binary files. They *are* releasing the source code, they are not hindering my ability to study, learn, profit from their changes, they are only hindering me from tinkering with their product *as*a*whole*. That clause seems like a jab from tivo purchasers who feel angry because they can't rip out their TV shows even though they know linux command line and should be able to just scp the files somewhere. People who did not buy a Tivo are only benefitting from the work that tivo has done and given back. Seems like sour grapes.
Although this is the most straight-forward, well thought-out explanation of the holes that GPLv3 is plugging, I now have a greater understanding of why GPLv3 will fail and take most of the FOSS community with it.
GPL has shifted focus away from code distribution into code usage. It used to be that the use and output of any program was beyond the scope of the GPL and it only discussed redistribution of the code. This whole "remote access" thing will be the downfall. The world has shifted to Web programming. Web applications blur many lines, but stopping people from hosting services is just ridiculous.
Let's say that a couple major Web apps take on the GPLv3. No one will be able to host Web mail with squirrelmail w/o providing a link to download all the source code. Gnu MailMan... must every message be stamped at the bottom with "E-mail proccessed by Gnu MailMan, for your copy of the source click here." Now imagine OScommerce or Zen-Cart. These people *want* other people to sell hosted services of the code. It is not the code that is special, nor any modifications made to it by any company. The private entity is not "distributing" their modifications, they are providing the hosting and bandwidth, which is key. If I want to take Mantis BT and modify it to support LDAP and hook it into a public Web site so customers can have access to their bug statuses, does this mean I have to offer all my LDAP modifications to my customers? They don't care. (*this is all assuming that these applications would be released under this new GPLv3).
Almost no one cares what minor (or major) modifications I do to the source code because we're all on a level playing field. We all start with the same codebase. And we are all presented with the same challenge of hosting the app somewhere and providing benefit to the end-user through Internet access to the application in question.
Now, I guess I could see where some people care. But I do think that some developers don't care, and in fact want companies to use their Web applications. Now we will have forks of projects, tons of forks. GPLv3 projects, and GPLv2 maintanance projects by the developers and companies that make use of the projects as they exist today. Being forced to maintain a custom development environment for every open source project you have used in the past (because you have made modifications to them) is going to turn every small business away from open source products. They do not want to become maintainers and release technicians of every change they make to open source software in order to get it to work under their hosting evironment (think changing php5 php4 code).
No one will use GPLv3 Web apps. My prediction is that this will pave the way for asp.net Web apps to move in for a swift kill of every major PHP app that switches to gplv3 licensing.
"IS&T is currently discussing to recommend only Linux and Mac OS based notebooks to incoming students."
Be prepared to answer questions like:
How do I turn my volume up and down / Why don't my keyboard keys work
Where is the blue E?
Why doesn't hibernate/sleep mode work?
Why can't I open any documents that anyone sends me?
Why can't I watch videos online?
Why can't I connect to the VPN?
What's i386? I thought I had a Pentium Duo core 8000MX9 52P something something
Why doesn't my bluetooth work?
What does mounting mean?
Etc etc...
Most of those only apply to Linux, but still. I use Linux on a laptop and have been for 4 years. Nothing works, I wouldn't recommend it to anyone else, maybe old people that only really use e-mail and Web. But kids these days want to hibernate and listen to music and sync with their phone. Most of these things might be possible, but they don't happen out of the box. And no, just saying "ubuntu" doesn't count for jack. Ubuntu is still Linux, they don't have magical kernels or magical drivers that other distros don't have, it's just Linux with brown wallpaper.
This is sort of hillarious to me. People choose Windows as a platform, have an IT department, but then get confused as to how to deploy software on all their machines that they're supposedly experts of. Why not have the IT department create a solution to send out that software to all the PCs, or buy something.
I'm still highly dumbfounded by this whole remote access thing. I can't imagine anything worse for Web apps. I can't imagine a more restrictive license that takes away all of my freedoms for a Web app licensed under gplv3. Let me give an example.
/usr/bin/yes and add a command line flag for specific functionality. I make the changes, compile the program, give the client the code and the program and charge them for my time. They do not have to give the source code to anyone else, either under the GPLv2 or v3.
:)
A client of mine wanted a shopping cart that could take an uploaded CVS and charge people by how ever many data lines were in the file. I took Zen-Cart and made some plugins for it to handle the file upload. But I couldn't override the price functionality. There was no proper plugin for changing that behavior. So I modified some of the function calls to check for prices and had them examine the size of the file. Done and done. I installed the site on the client's server and charged him for the services of code modification.
Now, let's examine what would happen if Zen Cart were licensed under the GPLv3. I have made modifications to the system *and* I am now "redistributing" the code by allowing people on the Internet to see it. I must allow them to obtain my changes. I've effectively forked the project and now I must maintain my changes and supply them to the world. Should I absorb this non-trivial support cost to publicize my private work for a client to the rest of the world, or should I pass it on to the client? How about a line item fee for open source publicity? Anything over $50 and the client would have demanded that I just go with x-cart to start with.
Well, too bad for me, you say? Let's now contrast this with a non-Web application. Assume that the client wanted me to update
v3 singles out Web applications and provides extra restrictions that will harm the open source community by excluding small to mid-sized businesses, consulting firms, and freelance developers. There will be massive breaking of this license and most people will turn a blind eye to it, I already see it happening with GPLv2 a lot and I always tell my clients that *I* believe they are violating the terms of the agreement if they do X,Y, or Z with the modified product but they should check with a lawyer. Now I can see that violations will be so frequent and blatant that it will diminish the integrity of the spirit of the license and it will lose respect over the long haul. I just hope that make great Web apps and want to share them the way they have been don't blindly choose GPL v3 because they think it's just better. Well, actually I do hope that. Their active user base will probably plummet and maybe those people will all come to my projects
I agree with the second hole that you mentioned, but I'm on the fence about the first one. I think that a company should have the option to create a complete product out of open source technology and encrypt the final binary files. They *are* releasing the source code, they are not hindering my ability to study, learn, profit from their changes, they are only hindering me from tinkering with their product *as*a*whole*. That clause seems like a jab from tivo purchasers who feel angry because they can't rip out their TV shows even though they know linux command line and should be able to just scp the files somewhere. People who did not buy a Tivo are only benefitting from the work that tivo has done and given back. Seems like sour grapes.
Although this is the most straight-forward, well thought-out explanation of the holes that GPLv3 is plugging, I now have a greater understanding of why GPLv3 will fail and take most of the FOSS community with it.
GPL has shifted focus away from code distribution into code usage. It used to be that the use and output of any program was beyond the scope of the GPL and it only discussed redistribution of the code. This whole "remote access" thing will be the downfall. The world has shifted to Web programming. Web applications blur many lines, but stopping people from hosting services is just ridiculous.
Let's say that a couple major Web apps take on the GPLv3. No one will be able to host Web mail with squirrelmail w/o providing a link to download all the source code. Gnu MailMan... must every message be stamped at the bottom with "E-mail proccessed by Gnu MailMan, for your copy of the source click here." Now imagine OScommerce or Zen-Cart. These people *want* other people to sell hosted services of the code. It is not the code that is special, nor any modifications made to it by any company. The private entity is not "distributing" their modifications, they are providing the hosting and bandwidth, which is key. If I want to take Mantis BT and modify it to support LDAP and hook it into a public Web site so customers can have access to their bug statuses, does this mean I have to offer all my LDAP modifications to my customers? They don't care. (*this is all assuming that these applications would be released under this new GPLv3).
Almost no one cares what minor (or major) modifications I do to the source code because we're all on a level playing field. We all start with the same codebase. And we are all presented with the same challenge of hosting the app somewhere and providing benefit to the end-user through Internet access to the application in question.
Now, I guess I could see where some people care. But I do think that some developers don't care, and in fact want companies to use their Web applications. Now we will have forks of projects, tons of forks. GPLv3 projects, and GPLv2 maintanance projects by the developers and companies that make use of the projects as they exist today. Being forced to maintain a custom development environment for every open source project you have used in the past (because you have made modifications to them) is going to turn every small business away from open source products. They do not want to become maintainers and release technicians of every change they make to open source software in order to get it to work under their hosting evironment (think changing php5 php4 code).
No one will use GPLv3 Web apps. My prediction is that this will pave the way for asp.net Web apps to move in for a swift kill of every major PHP app that switches to gplv3 licensing.
Hahah that's good.
"IS&T is currently discussing to recommend only Linux and Mac OS based notebooks to incoming students."
Be prepared to answer questions like:
How do I turn my volume up and down / Why don't my keyboard keys work
Where is the blue E?
Why doesn't hibernate/sleep mode work?
Why can't I open any documents that anyone sends me?
Why can't I watch videos online?
Why can't I connect to the VPN?
What's i386? I thought I had a Pentium Duo core 8000MX9 52P something something
Why doesn't my bluetooth work?
What does mounting mean?
Etc etc...
Most of those only apply to Linux, but still. I use Linux on a laptop and have been for 4 years. Nothing works, I wouldn't recommend it to anyone else, maybe old people that only really use e-mail and Web. But kids these days want to hibernate and listen to music and sync with their phone. Most of these things might be possible, but they don't happen out of the box. And no, just saying "ubuntu" doesn't count for jack. Ubuntu is still Linux, they don't have magical kernels or magical drivers that other distros don't have, it's just Linux with brown wallpaper.
This is sort of hillarious to me. People choose Windows as a platform, have an IT department, but then get confused as to how to deploy software on all their machines that they're supposedly experts of. Why not have the IT department create a solution to send out that software to all the PCs, or buy something.
Ahh... Windows people.