Open Source, Forks, Incompatibilities and Misconceptions
Today I read a blog post about JavaFX and how it's going to take over the world because it works well on Linux... I'm not even going to go into how fundamentally flawed the actual article is.
What was more interesting were comments from James Ward, Technical Evangelist for Flex at Adobe and Adobe’s JCP representative. Or "RIA Cowboy" for short. His comments were as follows:
Unfortunately I think James is falling into the same mental trap that a lot of people do when it comes to open source and licensing. That is, that Open Source means Linux and GPL. It does not.
Let's look at the key aspects of a software license, or at least 4 that we care about for the purposes of this discussion. I'll avoid legalese (because I'm not a lawyer) and talk in plain English:
* Open vs. Closed Source
* Free vs. Pay
* Extensible, Reusable vs. Fixed, Controlled
* Copyright
Open vs. Closed Source
This means nothing more than that developers and others are allowed to see the code. Period. It does not necessarily allow them to change, modify or use freely the software or its source code. Many commercial products are open sourced and yet locked down in every other conceivable way.
Free vs. Pay
...is pretty obviously whether or not customers/users need to pay before using the software and/or having the source available to them. Many companies offer source code as an option at a cost.
Extensible, Reusable vs. Fixed, Controlled.
This is the important point that I think James and others may not be aware of. Licenses like GPL and Apache (although very different) both explicitly allow for extension and reuse in software and binary form. Apache only requires that you give credit where credit is due, whereas the GPL adds a few extra encumbrances, such as you have to also GPL your contributions and make your source available (the LGPL lightens this up for libraries and frameworks).
-- So if Adobe were to open source AIR, they could easily do so by creating a Free, Open Source license with specific restrictions around extensions and code reuse. Sun and even Microsoft (!) have similar licenses.
Finally, Copyright.
The ONLY reason I believe Adobe doesn't release their code is that they're worried Microsoft and Sun would then be able to read it and steal their IP. My first thought on that is that it's BS... big companies reverse engineer stuff whether the source is available or not. Second, this is not an issue of open source, it's an issue of licensing and IP protection -- a copyright. If they blatantly steal code then Adobe can sue them. Similarly, if it's a very unique and valuable approach (an innovation), then a patent can protect them -- although we all know how broken the patent system is in the US and Canada, so I'm not recommending it...
Key point: Don't use such things as an excuse for not open sourcing the Flash/Flex/Air platform. There are plenty of licensing options.
Homework: Without opening Google, can you name name just one more open source project [other than Linux] that is rife with forks and incompatibilities... ?
If we need a counter example to Linux, look at the Apache Web Server. It's open source, and more freely so (not GPL, but Apache), and yet how many forks of the Apache Web Server are there? I know of not a single one. In the case of Linux I believe forks are a part of their unique culture. If we look at the broad spectrum of open source software, I think we'll find Linux is a unique example of a project that forks almost uncontrollably and unnecessarily.
I think you'd be hard pressed to find another example that's even relevant (like a smaller framework or tool like similar to Adobe Flash/Flex/AIR).
Conclusion
Forks and incompatibilities have nothing to do with open source. They are more an issue of culture and licensing terms.
Would Adobe Flash/Flex/AIR fork or become incompatible with a proper open source strategy and an intelligent license?
No.
-------------------
Discuss it at DZone
-------------------
What was more interesting were comments from James Ward, Technical Evangelist for Flex at Adobe and Adobe’s JCP representative. Or "RIA Cowboy" for short. His comments were as follows:
Adobe continues to try and find the tough balance between more openness and what our developers want. Most of our developers tell us not to open source the Flash Player because it would lead to forks and incompatibilities in the run time ~ James WardAnd then...
[Open Source] certainly doesn't prevent them. I use and love Linux which is full of forks and incompatibilities. ~ James Ward
Unfortunately I think James is falling into the same mental trap that a lot of people do when it comes to open source and licensing. That is, that Open Source means Linux and GPL. It does not.
Let's look at the key aspects of a software license, or at least 4 that we care about for the purposes of this discussion. I'll avoid legalese (because I'm not a lawyer) and talk in plain English:
* Open vs. Closed Source
* Free vs. Pay
* Extensible, Reusable vs. Fixed, Controlled
* Copyright
Open vs. Closed Source
This means nothing more than that developers and others are allowed to see the code. Period. It does not necessarily allow them to change, modify or use freely the software or its source code. Many commercial products are open sourced and yet locked down in every other conceivable way.
Free vs. Pay
...is pretty obviously whether or not customers/users need to pay before using the software and/or having the source available to them. Many companies offer source code as an option at a cost.
Extensible, Reusable vs. Fixed, Controlled.
This is the important point that I think James and others may not be aware of. Licenses like GPL and Apache (although very different) both explicitly allow for extension and reuse in software and binary form. Apache only requires that you give credit where credit is due, whereas the GPL adds a few extra encumbrances, such as you have to also GPL your contributions and make your source available (the LGPL lightens this up for libraries and frameworks).
-- So if Adobe were to open source AIR, they could easily do so by creating a Free, Open Source license with specific restrictions around extensions and code reuse. Sun and even Microsoft (!) have similar licenses.
Finally, Copyright.
The ONLY reason I believe Adobe doesn't release their code is that they're worried Microsoft and Sun would then be able to read it and steal their IP. My first thought on that is that it's BS... big companies reverse engineer stuff whether the source is available or not. Second, this is not an issue of open source, it's an issue of licensing and IP protection -- a copyright. If they blatantly steal code then Adobe can sue them. Similarly, if it's a very unique and valuable approach (an innovation), then a patent can protect them -- although we all know how broken the patent system is in the US and Canada, so I'm not recommending it...
Key point: Don't use such things as an excuse for not open sourcing the Flash/Flex/Air platform. There are plenty of licensing options.
Homework: Without opening Google, can you name name just one more open source project [other than Linux] that is rife with forks and incompatibilities... ?
If we need a counter example to Linux, look at the Apache Web Server. It's open source, and more freely so (not GPL, but Apache), and yet how many forks of the Apache Web Server are there? I know of not a single one. In the case of Linux I believe forks are a part of their unique culture. If we look at the broad spectrum of open source software, I think we'll find Linux is a unique example of a project that forks almost uncontrollably and unnecessarily.
I think you'd be hard pressed to find another example that's even relevant (like a smaller framework or tool like similar to Adobe Flash/Flex/AIR).
Conclusion
Forks and incompatibilities have nothing to do with open source. They are more an issue of culture and licensing terms.
Would Adobe Flash/Flex/AIR fork or become incompatible with a proper open source strategy and an intelligent license?
No.
-------------------
Discuss it at DZone
-------------------
