Before you think I'm FUD'ing here, please note that there are already plenty of articles discussing this. Do a search for
Open Source vs Open Standards on Google. You might be surprised. The oldest article I found in the first result page is one by Jonathan Schwartz from 2003, titled
Open source versus open standards. Then there's another one called
ZDNet: Open source vs open standards from 2004. Then there's another interesting one called
Open Source vs. Open Standards, by Bob Sutor, from 2006-2009. There's another more recent one from this year, titled
Open Standards And Open Source.
But if you payed attention, you might have noticed that none of these articles have the word CLOUD in it. And that's what differs from this blog post you are about to read.
Here is an interesting trend from Google to start this discussion.
Clearly, the interest in Cloud is going up, where interest of Open Source is going down in an almost equivalent proportion. Is the Cloud Computing era going to kill Open Source? I dunno. But this should warn us of one thing: that the Cloud era is not about Open Source. It is about
Open Standards (and APIs).
As we all know, APIs expose functionality, not implementation, where the beauty of Open Source is that we all can look at the source code and be sure of how the implementation works, how the pieces are put together to make our application run. If you are a truly defender of Open Source, you are probably thinking right now that
there is a company that offers a
Cloud platform based on an
Open Source software. But do you have access to the runtime? Can you be sure that they are running the exact same code as they tell you? Will they give you access to the server to check if the MD5 is the same? Even the Linux they say they are using might be different. You just cannot be sure. You don't own the infrastructure.
If we take the main 3 types of Cloud offers: SaaS, PaaS, and IaaS, only the latter we can be *more* sure, but still not 100% sure that our applications are running on top of Open Source software. Do you have access to the provisioning code that Amazon AWS uses to create your Linux instance? Do you have access to the source code of the network configuration utility? No. You say your project runs on top of 100% Open Source software. Then you tell me you are running your application at Amazon, or Azure, Oracle, Jelastic, CloudBees, CloudFoundry, etc? You are not running over only Open Source code. You are not. Your application relies on closed-source code to run on that Cloud. There will always be at least one component of that cloud that is not open sourced. And if the cloud provider tells you it is, "and here's the source code", you can't simply believe because you can't make sure of it, you can't see it in the runtime machine. You don't own that.
Now everyone is talking about moving to the Cloud. What will happen if everyone moves their application to some kind of Cloud? In a very extremist view, there would be no more software for on premise deployments, including Open Source. Or at least these would reduce drastically. There would be only...
Open Standards.
Which in fact is what developers need these days for Cloud Computing:
Open Standards. We all want to be able to move applications from a vendor to another, all it takes is to the other vendor support the same APIs that I require. Are
Open Standards the future for Cloud Computing? APIs for SaaS (REST APIs), platforms for PaaS (Java EE), and standards for IaaS (OpenStack)?
Here's another interesting article that also talks about this:
Open Standards are the key to True Cloud. Not Open Source Stacks.
I agree with
Bruno Souza, where we quickly discussed the ideas I shared here. Open Source will live forever, and it will be the place where Open Standards will probably come up from. It is a de facto. This is how the
JCP already works for example.
Which brings us to another question:
will Cloud drive the openness characteristic of Open Source less open, and focus more on ideas for Open Standards? Will the Cloud business suggest Open Source as initial implementations for those ideas? What do you think?