Kurt Cagle has a post entitled Open Standards and Organic Foods which begins
A question was posed to me recently
concerning exactly what I meant when I talked about open standards, and
how they differed from open source. In reviewing some of my previous
postings, one of the things that I realized was that while I had
offered up a number of definitions in passing, there really wasn't any
single, stock answer that I or others had seen for what exactly open
standards mean. Moreover, a lot of people tend to look at open
standards with a somewhat jaundiced eye, as if it was simply one more
marketing label in a field that is already way oversaturated with
marketing buzzwords - they didn't understand why open standards were
important, or they didn't understand the distinction between open
source and open standards.
The software industry is now full of buzzwords and buzz
phrases that are so ambiguous that if you ask five people what
they mean you are likely to get ten different definitions. The
problem this causes is that people often talk past each other even if
they use the same words or even worse miscommunication occurs due to
basic assumptions about the conversation which are incorrect. Examples
of such ambiguous buzz phrases include; web 2.0, service oriented architecture and standards.
Some people I've talked to about this are surprised that I add
'standards' to this list. However the definition of what constitutes a
'standard' is in the eye of the beholder. About a year and a half ago,
I wrote a blog post entitled Are Standards in the Software Industry a Chimera? which stated
The word "standard' when it comes to software and computer
technology is usually meaningless. Is something standard if it produced
by a standards body but has no conformance tests (e.g. SQL)? What if it
has conformance testing requirements but is owned by a single entity
(e.g. Java)? What if it is just widely supported with no formal body
behind it (e.g. RSS)?
For every one of the technologies mentioned above (RSS,
Java, and SQL) you'll find people who will argue that they are
standards and people who will argue that they aren't. SQL is produced
by a standards body and has a number of formal specifications but since
there is no conformance requirements most database vendors have
embraced and extended it. It is difficult to write non-trivial SQL
queries that will work across Microsoft's SQL Server, MySQL, Oracle's
databases and IBM's DB2. The Java programming language and
platform is supported by a number of vendors and has rigid conformance
tests which make the statement "write once, run anywhere" true for the
most part, however it is a proprietary technology primarily controlled
by Sun Microsystems. Content syndication using RSS 0.9x/RSS 2.0 feeds
is the most popular web service on the planet but the specifications
were primarily authored and controlled by a single individual and have
no formal standards body or corporation backing them till this day. In
each case, the technology is 'standard' enough for there to be thriving
markets around them with multiple vendors providing customers with
valuable services.
From a customer perspective, standards are a means to an end and in
this case the goal of standards is to prevent vendor lock-in. As long
as users can choose between multiple RSS readers or developers can
choose between multiple Java implementations, there is enough
standardization for them. Where things become contentious is that
there are multiple ways to get to the same solution (lack of lock-in).
"Open standards" are even more ambiguous since [as an industry] we
don't even have a clear idea of what constitutes a standard. I read
through Kurt Cagle's post and he never actually ends up defining "Open
Standard" beyond providing analogies and rationales for why he
believes in them. An interesting statement that Kurt makes in his post
is the following
I suspect that in many ways the open
standards movement is, at its core, a reaction to the rather virulent
degenerate capitalism that exists today, in which a person can profit
far out of proportion to the amount of work that they do, usually at
the expense of many others who lose disproportionately to their work
load.
The notion of 'profitting in proportion to your work' is
pretty bogus and foreign to capitalism. Capitalism is all about the
value of your work to others not how much work you put in. A minor
league baseball player doesn't work an order of magnitude less than a
major league baseball player yet he makes that much less. A
multiplatinum recording artist doesn't work an order of magnitude
harder than local bands trying to get big but makes that much more. It
may not sound fair but that's capitalism. In recent centuries humans
have experimented with other socio-economic movements that are more 'fair' but so far capitalism is what has stuck. </digression>
Anyway, my point is that buzz phrases like "standards", "service
oriented architecture" and "web 2.0" have such diluted and ambiguous
definitions to be effectively meaningless in technical discourse.
People who've been in the industry for a while eventually learn to
filter out these phrases [and often the people speaking them as well]
when engaged in technical discourse. If you are a technical person you
probably should be more explicit about what you mean by using phrases
such as "freely implementable and patent unencumbered", "SOAP-based web
services" and "AJAX powered website" in place of the aforementioned
buzz phrases. Oh, and if they don't match up to what you mean when you
use those statements then that just proves my point about the ambiguity
of these buzz phrases.