Sunday, May 13, 2007

What I learned at JavaOne, or: If I Were the Sun King

If you were at JavaOne last week, you would be reminded there is a another player on the world stage of computing: Sun Microsystems. They don't get noticed the way Google Apple and Microsoft do, and they don't have the aspect of a social movement that the Free Software Foundation, kernel.org, Mozilla, Eclipse, Ubuntu, Red Hat, and the other major open source projects and Linux distributions have. Sun is the last of the vertically integrated computer technology companies. This fact alone makes Sun's impact on computing potentially enormous. And the fact that Sun is widely ignored either means that Sun's ability to bind its technologies together into a strategic advantage has been poor, or that vertical integration, and a companies like Sun, are passe.

Sun has a new CEO, Jonathan Schwartz, and he has executed a tactical turnaround by focusing Sun on high-value customers. Sun is now profitable, for the first time in a long time, and that is cause for some optimism. But that optimism has to be tempered by a objective look at the size of the task ahead, and it the difficulty of each component of that task.

Another good reason to take a look at Sun's position in the industry is that there are some signs of strategic execution at Sun: Sun recently acquired the assets of SavaJe, a failed mobile handset software venture that left a 120 million dollar crater in a couple VC funds.

At JavaOne, Sun made several announcement that show the intention to move in the right direction, but this isn't they story of a sure thing. As of now, Sun has 20% of the market value of Apple, 60% of the revenue, and twice the number of employees. Sun has been so down for so long that making things right won't be simple, nor is there room for any lack of decisiveness.

In this blog entry, I take a look at each aspect of Sun's business as it relates to the industry and to major trends like open source, and see what Sun can do to improve their position, and weigh that against the costs. One thing that is clear from the outset is that Sun is engaged the computing industry at so many points it is hard to see them sustaining all of them without very strong justification for each. That makes the SavaJe asset acquisition all the more interesting: at a time when Sun must focus and decide what not to do, they have added mobile platforms to their agenda. Is this a brilliant move or a distraction?

Operating Systems

Solaris is characteristic of Sun's missed opportunities. Sun had the position of providing the best-supported UNIX-like operating system and squandered it through a complex combination of ambivalence regarding open source software, internal conservatism that prevented making radical changes in pricing, and lack of foresight regarding Sun's ability to compete without finding a parter (in this case, either Apple or open source distributions).

While anyone is free to download and use Solaris on x86 architectures, this gesture alone did not make Solaris a viable open source operating system. It didn't amount to more than a try-before-you-buy offer, and Sun's weak financial position through many consecutive quarters of losses made Sun's commitment to desktop operating systems questionable. While Solaris is in many ways still the best UNIX-like operating system, it must either be brought into a leading position in the open source operating system world, or Sun must use the open source community as a way of gracefully exiting the operating system business.

In either case, Sun must turn Solaris into a branch of the open source operating system and distribution taxonomy. That is, the Solaris kernel must become an alternative to the Linux kernel, much the way the BSD kernel is, and the GNU Hurd would like to be. And the Solaris userland must merge with the open source userlands and applications in the open source distribution world.

Solaris becomes, then, a collection of open source projects that feed into distributions, and, if Sun remains in the operating system business, an open source distribution that happens to emphasize Solaris projects. In concrete terms, merging Solaris with the Debian repositories wold be one way to implement this concept. Solaris as a product would then become a downstream distribution like Ubuntu, which would not be the worst thing to flatter with imitation, both in implementation and in business model.

A further irony is that Sun is executing well in some isolated cases, like NetBeans, but overall has failed to accrue the benefits Canonical (Ubuntu) and RedHat base their whole businesses upon. How long has Sun known internally how to get this right? Since 1993: http://www.redhat.com/support/wpapers/community/freeunix/freeos.pdf This is typical of Sun: full of individuals who know what to do way ahead of the competition, and no ability to act on what they know.

Languages

Microsoft has C# and the rest of the .NET family of managed languages. Apple has Objective C and Cocoa. Sun has Java. Java is the dominant managed language system for Web applications, which is arguably the dominant position overall among programming languages.

Java suffers from not being a revenue-generating product in proportion to the effort Sun puts into Java. But this is through no fault in Java. Development tools and languages are a thankless task. So the main benefit to be had is indirect.

Sun has lagged far behind Microsoft in making Java a usable client user interface language system, and has lagged integrating an IDE into the language system strategy. Only within the last year or two have these aspects of the Java language system strategy reached parity with Microsoft's .NET and Visual Studio products' capabilities. This lag is mostly the product of Sun's unwillingness to match the resources Microsoft applies to languages and tools.

Going forward, Sun must decide to either compete with Microsoft on a continuing basis, and not allow aspects of Java to fall behind, or Sun should find a way to exit the competition and turn Java and related products over to the open source community. Sun must also integrate Java with other product strategies. Currently, Java is not key to the Solaris userland. The open sourcing and dual licensing of Java finally made it acceptable for inclusion in mainstream Linux distributions, but Java has not taken its rightful place as the .NET equivalent in the Linux world. Sun is moving in roughly the right direction with Java, but has a very long distance to go:

  1. Sun's Java should be more thoroughly blended with the open source world. This means a more cooperative stance w.r.t. alternative implementations.

  1. The Java Community Process, a name containing at least four separate untruths, should be scrapped in favor of a process modeled after Internet RFCs.

  2. Java should be made scalable on the client, and the Java CDC variant should be scrapped in favor of a scaled-down Java SE. There should be at most three Java variants: a minimalist Java ME, Java SE for almost every desktop and device, and Java EE for servers – but the client and server Java line might blur to the point where that distinction no longer works.

  3. Java should be multi-platform (multi-CPU, that is) out of the box.

If Sun does not speed up the integration of Java with the open source movement, Java will lose to simpler open source dynamic language alternatives, and Microsoft will make further inroads into mobile devices with their relatively coherent implementation of .NET across desktop and mobile devices.

Hardware

While Sun can continue to compete in server hardware by building the biggest server systems, Apple has set the tone for how to compete in desktop hardware: Adopt the best CPU over the long-haul, and differentiate using software and design.

Sun has all the ingredients to be a world-class competitor, but has flubbed the execution needed to stay in the desktop computing game. Most of the rest of the UNIX workstation business died so long ago it forms a fossil bed under San Jose. There may be a business in super-high-end visualization workstations, but for 98% of users, PC hardware is a commodity and is best left to the master commoditizers. Sun should sell their workstation business to someone who wants to become a high-end desktop OEM.

CPUs

Sun cannot justify being a CPU company without having a long-term sustainable advantage. Sun cannot afford the capital to acquire that advantage, nor the price of failure: Could Sun take a hit like AMD just did? Sun should therefore exit the CPU business and focus on, for example, chipsets, clustering hardware, and storage systems to sustain Sun's position in high-end server systems.

Applications

On top of operating systems, languages, hardware, and CPUs, Sun is also an applications company, with the Star Office/Open Office products. Like other aspects of Sun's portfolio, Star Office/Open Office is a mix of grassroots open source success and standards leadership, combined with under-resourced development and lackluster product management, resulting in a lack of truly distinctive features in a rigorous competitive environment. In other words, Sun is lucky to have an opportunity here, but should not mistake that luck for an excuse not to focus resources.

Sun must, again, decide whether to keep this product, find a new home for it, or fully transition it to the open source community. For it to make sense to keep an office productivity suite, Sun must get on track to re-entering the desktop computing game as a software and/or hardware maker. Star Office/Open Office must move closer to Java as the glue between software subsystems.

Mobile platforms

It almost seems like piling on to say that Sun, at a time when it must make hard decisions about what to do, and what to get out of, has taken on another operating system, another Java variant, and has entered the mobile platform business when others, like Symbian and Palm, are illustrating what a difficult and thankless business it is.

Without extreme clarity of vision in identifying customer needs and quickly shaping the former SavaJe mobile platform assets into a winning product. Sun will have dissipated resources in reaching for the seductive unit volume of mobile handsets when it just can't afford such dissipation.

SavaJe left a $120M crater in the surface of planet VC part due to building their own operating system in a market where embedded Linux is super-hot and entrenched proprietary platforms are mature and reliable. Even mighty Apple is having trouble birthing a new mobile OS. Does Sun have the focus to question this aspect of the value of what they just bought? Can they mold the already unfocused SavaJe user interface into something that addresses concrete needs? This acquisition is an albeit inexpensive daredevil move by a company that should probably keep the skateboard in the closet. It could be made to work, but without strong signs of excellent execution in other areas, or, alternatively, a excising of marginal products in order to put overwhelming resources on mobile products, this is likely to end up as another under-resourced dispersion of focus. Moreover, the mobile software world has only the faintest glimmer of an open source ecology. Sun can't offload part of this burden they way it has with OpenOffice. If it fails it fails hard.

What if they don't?

What if Sun does not move to get on the right track in each of the expansive range of product categories in which it now participates? If Sun does not focus Sun, Sun will likely be focused through external actions. Private equity companies roam the landscape, scarfing up slow, fatty dinosaurs. Sun could become the target of such a takeover, with the tarnished crown jewels being sold off to defray the cost of buying Sun, which would then continue as a server OEM and services company, unburdened of the responsibility for workstations, Java, Solaris, Star Office, SavaJe, and SPARC.

That might happen. But I hope the alternative prevails, and Sun re-emerges as a key player in the computing industry. The computing industry would benefit from another strong participant in all the important technology categories, and open source has provided a new opening for a competitor to enter (or re-enter) such a position in the industry. Sun has an amazing collection of people who are more than able to achieve any goal. Which is to say, it comes down to leadership.

It would be fun to download an Open Solaris with a unique eye-candy-rich Java-shell/desktop that installs as painlessly as Ubuntu, and that lets me mash up my Open Office documents with Internet applications using Java, and that integrates nicely with a viable mobile software platform. I also hope this visualization of a good result illustrates how large is the task. If Sun can't see themselves getting there, they ought to plan for what happens when they don't.