Tuesday, June 7, 2011

Open-source platform vs open platform

Today there are an increasing variety of platforms available on which to build innovative new products. It seems like every other day, there's some NewFangled.js framework or Fansy new language getting put up on Github and rocketing in popularity due primarily to its touted openness. It's good that we have such a rich variety of great technologies to choose from, but sometimes I feel like there is too much weight put on the "open-sourceness" of the various platforms. There's this widespread assumption that open-source implies good platform, but that's not necessarily true. For every popular open-source platform, there are many other unpopular open-source platforms that don't receive anywhere near as much attention, and therefore don't really get anywhere. So it's not the open-sourceness per se that makes a platform really great.

Nor is it always the case that a closed-source platform is bad. There's seems to be another widespread belief, especially among Valley entrepreneurs, that closed-source is somehow "evil". Maybe it's the lack of collaboration, maybe it's the inability to make changes to the platform. Yet there are some shining examples where closed-source platforms still manage to be widely used: iOS, .NET, and J2EE come to mind, just to name a few. Love them or hate them, you can't dispute their popularity.

So what is it that makes a platform really great? For me, it's the platform's ability to get me going with a project quickly and to then get the project out freely. That's the key: getting it out freely, and this is what I mean by open platform. When I have to submit my project for review by some third party before it can ever see the light of day, that's not good. It doesn't matter that the platform used is open-source or that my code is on Github. The only thing that matters is that my application complies with someone else's nebulous terms of service, and that's bad. At any given time, my project can be removed and I can be banned. I'm not free to innovate to my full potential. To me, it's much more important that I have this kind of freedom than the freedom to change the underlying platform around to suit my needs. I can work around that by adding layers, glue, or other abstractions. But I can't get around the fact that my application needs to be reviewed. Why did the open platform approach work so well for desktops, yet so terribly for mobile? And no, Android doesn't count as an open platform. It's just open-source.

No comments:

Post a Comment