Open Source, Standards and Compatibility: Software Freedom, is this a valid concept?
I have been discussing for a long time how only open source is not enough for Governments. Although open source is a strong point of freedom it allows you to end up tied to a product, what may be not as bad as being tied to a vendor, but may bring you the same types of problems, specially if you are the government. But this is true for companies also.
In November 2002, me and several others from the Java Users Society, a large Java User Group in Brazil, created a long manifesto (Portuguese only), that tried to look into the discussion on open source usage by the Brazilian Government, from the point of view of the software developed by the government, that needs to rely on Open Standards and focus to be Multiplatform. This later turned into a well reviewd article, that better explained the ideas, and even featured concrete examples of the problems that you may face when all you care about is open source. Unfortunately for the time being both of these discussions are in Portuguese. Trying to explain a long article in a few lines is not easy, but the central idea is simple: open source is very important to the government, and to do it right, the government would be better off if it developed it's own software using open source software that are based on standards, and by developing multiplatform software, as a way to minimize lock in, and as such, maximize government freedom to decide it's technological future.
Maximizing freedom is usually not easy, and some difficult strategic decisions must be made. In regards to open source, it may mean for example, that the government will not use software that runs only on windows, or only on Linux (or any single platform), no matter how much this particular product's license says it is open source.
After discussing with the government for so long, and after seeing most of this discussion accepted in some very important areas of the Brazilian Government, we learned that governments really need a broad guarantee of freedom. Their systems, applications, data and software in general have such a long life, and may have such a large impact on a country's future, that by comparison, vendors and products need to be looked at as temporary at best. Although we have defended this idea for the sake of the Brazilian Government, I think this applies to most governments, and also to most companies that somehow develop software internally: minimizing the lock in for the software you write, will pay off in the future.
Now, someone that has also be giving a lot of though about this discussions, has come up with a name for this broad guarantee of freedom: Software Freedom.
In his recent blog, Simon Phipps explains that Software Freedom is more then the freedom for developers (that is guaranteed by open source), it needs to also guarantee freedom for users (deployers) and vendors. Simon calls for a combination of open source, standards and compatibility to guarantee Software Freedom. Although he has named it, and written a kind of manifesto, I think that the Sincere Choice movement has similar views, although they do not mention certification explicitly as Simon does.
At first, this seems quite a task. How can you guarantee freedom to the developer, if you tie him with standards and compatibility requirements? How can you guarantee freedom for the deployer if you cannot restrict what developers can do? How you can innovate if you tie up your own hands trough standards? Hard questions. Can they be answered? Are those things so contradictory that we cannot guarantee all types of freedom at once?
In the Brazilian Government discussion, we are proposing ways to to that based on policies. That is, software developed by the government has to use standards if they are available, and if not, standards need to be either chosen or defined. It has to run in multiple platforms, no matter what technology or language you use to develop it. And open source implementations of those standards will be the ones that will provide greater freedom, and as such should be chosen if available. Is this enough? Probably not. But it is a good start.
From a first look, it seems that guaranteeing Software Freedom is not something that could be done by licenses only. And there are other important matters like Royalty Free standards and patents policies that would probably play a role in the discussion (but this would extend a lot this blog...).
I hope this idea is something that the community at large sees as important. I certainly agree with Simon and his Software Freedom Manifest, and from my experiences with government and companies, I agree that something must be done to guarantee other perspectives of freedom that not only the developer's freedom.
Of course, this has a large impact on Java.. The Java Community is largelly in favor of certification and compatibility, and this is said to be one of the main reasons why Sun refrains from releasing it's Java implementation as open source. Would Simon's blog be an indication that there can be ways of open sourcing Java that maintain compatibility? Can this be accepted by the open source community? Although I myself think that no matter what Sun does, we should create and support an open source implementation of Java, like a combination of Kaffe and Classpath for instance, I also do value compatibility more then "open source just to be open source". And I think that Simon's proposition could be one that we, as a joint Java-Open Source community, should look and discuss open minded.
Fortunatelly, Simon will be in Brazil this week for the 5th International Free Software Meeting, and I will have a premium chance to discuss with him this ideas. Hopefully, we can have an open discussion with both the free software community members and the Java community members present at this large event, and understand if this can lead us anywere.