Friday, May 22, 2009

Advice to Sun from Michelangelo

Sun is a great company with some great software, yet something holds it back from achieving its true potential. What is it that's missing? I've been thinking about this ever since I got back from Sun Developer Day earlier this week.

And then I got it. Nothing's missing. On the contrary, there's too much.

Michelangelo defined sculpture as the art of "taking away", not "adding on". The sculpture already exists inside the block of marble. The sculptor only has to take away the excess to reveal the work of art within.

Sun has a full line-up of extremely useful products. But there's some superfluous marble covering the work of art within. That's what prevents us from seeing the masterpiece. It's an unfinished work, and the sculptor's unwarranted sentimentality towards superfluous marble is what prevents him from completing the statue.

The biggest piece that Sun needs to sculpt away is OpenSolaris. No, really, the world doesn't need another Open Source Unix. Now that we have Linux, that's more than enough. Let's not get into bureaucratic arguments over which is the more senior Unix. Put bluntly, OpenSolaris is a dog-in-the-manger that just muddies the waters. It will limp along, delaying Linux's inevitable triumph, yet never quite succeeding, and in the process, never letting Sun achieve greatness. To quote from one of Sun's own marketing campaigns, they need to put "all the wood behind one arrowhead." An arrowhead called Linux. Sun should help port ZFS and DTrace to Linux, and quietly bury OpenSolaris.

But OpenSolaris isn't the only offending piece. There's the GlassFish app server. Mind you, there's a lot that's cool in GlassFish, such as Jersey (for REST services) and Metro (for .NET-compatible SOAP/WS-* Web Services). But these are components that should simply be contributed to Tomcat as libraries. We don't need an app server when we have Spring and Tomcat. By clinging to a heavyweight EJB container, Sun is refusing to chip away at one of the ugliest pieces of marble obscuring Enterprise Java. (There's no such thing as a lightweight EJB container, by the way. The EJB spec is heavyweight, even with the figleaf of annotations.)

The last bit is NetBeans. NetBeans is all right by itself as an IDE, but the world already has one - Eclipse. Why doesn't Sun throw in the towel already? If they have something to contribute in IDE land, let it be in the form of Eclipse plugins! That's what the rest of the world does.

There's altogether too much "invented here" sentiment that prevents Sun from ruthlessly pruning its inventory and letting elegance shine.

So much for taking away. Moving on from sculpture to painting, which is all about "adding on", there's some stuff Sun is neglecting, too.

I think they're wasting time with MySQL when they should just leave it alone. MySQL is doing just fine by itself. It's an OK database for a lot of people, but Sun's energies are better spent improving another one. Let me beat the drum once more for my favourite Open Source database, which seems to me to be the world's best-kept secret - Ingres.

Sun should contribute to Ingres. I believe Ingres is near-perfect, with just one fatal flaw. It requires the installer to understand sophisticated database concepts before even installing it. If you don't understand why the database snapshot and journal files should be on a separate disk from the database itself, then you've missed the whole point about database recoverability and also messed up your install. Sun should contribute to the usability of Ingres, just as they poured millions of dollars into Star Division GmbH's software to make it a friendly office suite known as OpenOffice 3. My mouth waters at the thought of a rejuvenated Ingres, more beginner-friendly and riding as a package on board the best distribution channel in the world - a Linux installation CD.

But fat chance of that happening now that Oracle has its hooks into Sun :-(.

On second thoughts, forget painting. If Sun can just be a good sculptor and chip away at extra marble, they can still contribute to that masterpiece - a lean and clean Enterprise Java ecosystem that is also Open Source.

No comments: