Friday, March 16, 2007

Tired of the Open Source/Closed Source Conflict

Yesterday I ran across Ryan Stewart's blog post Open web advocates: Get off your high horse, where he took another blogger, Brendan Eich, to task about a post he wrote, The Open Web and Its Adversaries, defending standard web technologies against the perceived encroachment of proprietary technologies like Flex.

A number of folks took Ryan to task for daring to defend those proprietary technologies. I was so annoyed over the whole discussion that I had to take the time to express my thoughts. This is what I wrote:

This isn't Good vs. Evil, people.

I hate how most discussions comparing "open" source to "closed" source end up as a "right" verses "wrong" debate. Injecting a nonexistent dimension of morality into these arguments makes for a confrontational discussion rather than an analytical one, and it doesn't really benefit anyone. It seems like the main concern of many of my fellow posters is that there's a danger of Adobe or Microsoft dictating how web sites and web applications will be built because their web application technologies (Flash/Flex and WPF/E) are not open to change and modification by developers. I can see where such a concern would cause supporters of open source software to view Adobe and Microsoft as potential adversaries, but is that concern really valid? Could Adobe or Microsoft really take over the web if they wanted to?

How could they? Neither company has a monopoly on the core/base technologies that make the web possible: the network of wires and cables, networking hardware and software, TCP/IP, DNS, and web browsing software (granted, Microsoft is a strong player in the browser world, but I think it's clearly been demonstrated that they cannot dictate terms to the browser industry as a whole). Without that level of control, they cannot stop the use of traditional web technologies (HTML/CSS/JavaScript).

So what's really the concern here? That developers will abandon HTML/CSS/JavaScript for Flash and WPF, perceiving these technologies as the "next generation" of the web, in such numbers as to give Adobe and Microsoft a strong influence over web technologies in general? Well, yes, that could happen. That's the nature of a free market: people are free to choose the technology/methodology that they believe works best for them, and sometimes the end result is that one product or process ends up being the front runner. Does that mean its competitors are doomed to extinction? Heck no: it just means they need to innovate and offer something the front runner cannot.

One of the basic tenants of the open source movement is that open code allows a product or technology to benefit from the creativity of countless developers, leading to more and faster innovations. If that tenant is true in practice, then on a level playing field an open source product should be able to out-innovate and out-evolve a proprietary product, and therefore active competition between an open source product and a proprietary product works in favor of the open source product.

There's plenty of room on the web for all of these technologies. Developers should feel free to use whatever technology (at whatever cost) they deem is best suited to meeting the needs of their particular project. Limiting their options by strict adherence to an ideal or concept is a disservice to themselves and to their clients, paying or otherwise.

I do have one question for the open source community regarding their view of HTML/CSS/JavaScript: other than the fact that one organization makes money and the other (I assume) does not, what is the difference, in the eyes of an individual developer, between having conventions and standards for Flash controlled by Adobe, and having conventions and standards for HTML/CSS/JavaScript controlled by the W3C? Unless you are a high-level member of either organization, your ability to use their technologies is subject to their authoritative decisions, is it not?