
Spolsky on "Commoditizing Your Complements" - raganwald
http://www.joelonsoftware.com/articles/StrategyLetterV.html
======
RyanMcGreal
> Sun is the loose cannon of the computer industry. Unable to see past their
> raging fear and loathing of Microsoft, they adopt strategies based on anger
> rather than self-interest. Sun's two strategies are (a) make software a
> commodity by promoting and developing free software (Star Office, Linux,
> Apache, Gnome, etc), and (b) make hardware a commodity by promoting Java,
> with its bytecode architecture and WORA. OK, Sun, pop quiz: when the music
> stops, where are you going to sit down?

Eight years later, we finally know the answer to Joel's question.

~~~
ZeroGravitas
They weren't making _all_ software a commodity though, just the ones that
their rival had market dominance of, or where they had no chance of gaining
dominance themselves.

It's easy to point and laugh at Sun, but that's the same approach to open
source (and standards) that Apple used to get out of the shadow of Microsoft
and they seem to be doing okay.

(The same probably applies to Sun breaking lock-in to Intel based hardware
architectures. Again this applies to Apple as they had to switch from PPC to
Intel, but their cross-architecture experience gave them the leg up on ARM
based phone and tablet markets.)

~~~
ableal
And I've seen it argued [1] that the newer Sun multi-core Sparc CPUs actually
made sense for database and webserver loads.

We may still get to watch Oracle making hay on that.

[1] for example here: <http://blogs.zdnet.com/Murphy/?p=1701> (There may be
better pieces out there, my interest in this is limited.)

------
gvb
Joel missed the commodity/complement parts of Java. Sun's approach with Java
was to commoditize the language, especially as it ran on PCs, so that they
could license the Java Virtual Machine (JVM), especially on embedded systems
(e.g. phones). The Java language is the complement of the JVM. Sun was
actually pretty successful in this approach.

[http://en.wikipedia.org/wiki/Java_%28software_platform%29#Li...](http://en.wikipedia.org/wiki/Java_%28software_platform%29#Licensing)

Having said that, recent history indicates that Joel's take on Sun's problems
with their strategies (plural because they flip-flopped strategies) ultimately
was correct.

~~~
spokey
I think the other bit he missed was the early focus Sun placed on Java
Applets. I think they initially saw Java and JVM primarily as platform for
distributing client side code to web browsers, to set-top boxes, to mobile
phones, etc. In this way Sun's focus on Java is analogous to Netscape's
efforts to distribute a free web browser--they are trying to commoditize the
client to sell more servers.

Of course, as it played out Java got a lot more traction on the server side
than the client side. (I think the ability to easily develop on Windows and
deploy to Unix/Linux played a role in that.) But by 2002 Java had already
pretty much lost on the browser side, supplanted by Flash and later robust
JavaScript. I think 2002 might have been the thick of their JavaME (mobile
platform) efforts though.

------
j_baker
I think Joel's missing a very basic assumption in the Linux comparison.
Economics is about incentives. The basic assumption he's making is that money
(or lack thereof) is an incentive for producing open source software.

I seem to recall Mother Teresa being told by a reporter that they couldn't be
paid enough money to do what she did. Mother Teresa's response was something
along the lines of "You couldn't pay me enough money to do it either". For me
the loss of time and money is negligible compared to what I gain in learning,
which is immeasurable.

~~~
zck
He's not making an assumption about cost == money at all. In fact, he says
"...when an economist considers price, they consider the total price,
including some intangible things like the time it takes to set up, reeducate
everyone, and convert existing processes".

So when he's arguing against the "claim that it's OK for every Linux kernel
revision to make all existing drivers obsolete, because the cost of rewriting
all those existing drivers is zero", he's saying "there is a cost, it's just
not monetary." The alternative to requiring people to rewrite device drivers
is having some people make the kernel backwards-compatible with old drivers.
Presumably that's simpler than rewriting every driver. What else could you add
to Linux if that many developers could do something that wasn't rewrite
working code?

------
terrellm
FYI the article is dated June 12, 2002.

~~~
duck
Yeah, and it is funny that he has 'retired' from blogging yet his stuff still
makes it to the frontpage. I personally think some of these old articles were
the best.

