The effects of Sun’s Open Source Strategy

I was at Enterprise Java Australia’s annual get together a few weeks ago.

The highlight for me was listening to Simon Phipps lucid telling of the open source strategy at Sun. It felt to me that the presentation we got was not too dissimilar to the one Phipps used at Sun.

It starts with Bill Joy’s observation that “You can’t hire all the smart people”. The solution to this very real problem is that open source gives you access to them. You don’t need to hire the smart people if you can access their output and you are not trying to compete on that.

Given that version numbers are now popular Phipp’s has his own: Software Market 3.0. (Didn’t anyone ever tell these guys you never use a .0 version of anything?). In this market you pay for services and software at the time of production, not before.

The mantra for all of this:

  1. Collaborate over what does not differentiate. Do this using open source. Encourage open standards, because these mean substitutability.
  2. Compete by innovating on top of the commodity base.
  3. Contribute!

So how is this being applied?

Sun Application Server 9 is open source => Glassfish. Sun’s Message Queue 4 is open source => Open Message Queue. The JDK is going to start to be, in November, according to Phipps.

And what are the effects?

Application Servers

For many years I have been using Orion as the standard server I install on new products. It was cheapware and I could get it in without a lot of fuss. Last year I switched to JBoss. It was OSS, and worked well in the applications I used it in.

Right now I am moving from Orion to Sun Application Server. The reasons are:

  1. JBoss’s Marc Fleury just gets up the nose of people. Some people hate JBoss and will not use it.
  2. I don’t want an expensive app server, because I will spend all of my time justifying new licenses rather than developing. Getting it approved for some applications and not others just leaves a mess.
  3. Sun App 9 is just that: version 8. The biggest problem I have had with it is the quick start feature where services are started lazily, which is new in 9 – it is a great idea but buggy. Turn it off and things work great.
  4. Glassfish is open source. You can step through the App Server code. If you get a bug you can often see the fix for it and add that to your bug report. The worst case is that you can patch your own version temporarily.
  5. Glassfish is one of the first JEE 5 implementations. I will move to a POJO architecture by moving to EJB3. But according to Ben Alex, both EJB3 and Spring are POJO architectures. Josh Mackenzie of POJO fame, Paul Hammant and the light weight crowd have won. But it does not mean you need to use Spring to achieve it. It looks like migrating to EJB3 is going to be fast and painless. And no XML. Nada.
  6. I can buy production support and training. Prod support is about AUD1500 per year per server and the training is about AUD800. Cheap. But revenue Sun was not getting from me before.

For Sun rather than getting a large licensing revenue from a small number of customers, they potentially get a small amount from a large number. They will be getting money from me they never got before.

In I, Analyst the blog of Richard Monson-Haefal Richard points out that Sun’s market share grew by 6 percentage points over 2005 to 19.7% as of December 2005. See http://rmh.blogs.com/weblog/2006/05/bz_research_on_.html . He credits Glassfish as the likely reason. It will be interesting to see how things look this December, as Glassfish was only released in May.

Open Source Projects
We are currently using ActiveMQ 3 series. We have hit some bugs with it that seem to be longstanding. The 3 series is now being somewhat maintained by the Gluecode guys. With Glassfish we are using the built-in Sun Message Queue, aka Open Message Queue. Once again this is a version 4 product. It is being maintained by Sun Engineers. All of the enterprise features, including clustering, are there. Does this mean we will upgrade to ActiveMQ 4, or does it mean we will move to Open Message Queue. Time will tell.

I am a little worried, as an open source maintainer myself, that Sun’s dumping of commercial quality software onto the open source world may kill many open source projects. But perhaps we will all finally have achieved our aim if we our own projects become obsolete.

Language Implementers
During an extended language discussion with Dave Thomas (not the prag one) a few months ago he would keep dismissing languages as toys. Finally it came down to a language is a toy if it does not have a decent virtual machine/runtime interpreter. The only two that are decent: JVM and CLR. I think Dave might have a point here.

Some stuff going on:

  • Perl is creating a Parrot virtual machine
  • The Ruby world has one right now that is 15 times slower than C. (see earlier blog) There are lots of VM projects. See http://wiki.rubygarden.org/ruby/page/show/VirtualMachineOptions. Ruby2 is planned to use Rite. See http://wiki.rubygarden.org/Ruby/page/show/Rite
  • Microsoft needed a multi-language VM from the start. Projects to run Python (Iron Python), Ruby (Garden’s Point Ruby.Net – see http://www.plas.fit.qut.edu.au/rubynet/) are well under along.

Clearly every language needs a great and performant VM that runs on all architectures and OSs. Why should each language implement its own? The answer is trust. Would you trust Microsoft? Or Sun? But if Sun open sources the JDK, that solves the trust issue.

Sun are adding invokeDynamic and some other goodies to the next JDK to better support dynamic languages. And they are open sourcing it. If this is done right, the other language implementers may drop VM work and just provide a JDK implementation. This strategy could see the JDK (renamed to some cool name of course like my suggestion of Hydra Virtual Machine) move into a central position in the open source world that it has never occupied before.

Couple this with Sun’s new USD99 per incident developer support offering, and once again, Sun may see revenue they have never seen before. Once again of the type small amount * large number.

The law of large numbers

In summary, I think the totality of what Sun is doing amounts to a revolution. It may touch the lives of many of us. If it does the law of large numbers may see Sun’s coffers brimming over with software and services revenue. I am not sure if this is Jonathan Schwartz’s doing, but someone at Sun seems finally to have come up with a great software strategy.

By Greg Luck

As Terracotta’s CTO, Greg (@gregrluck) is entrusted with understanding market and technology forces and the business drivers that impact Terracotta’s product innovation and customer success. He helps shape company and technology strategy and designs many of the features in Terracotta’s products. Greg came to Terracotta on the acquisition of the popular caching project Ehcache which he founded in 2003. Prior to joining Terracotta, Greg served as Chief Architect at Australian online travel giant Wotif.com. He also served as a lead consultant for ThoughtWorks on accounts in the United States and Australia, was CIO at Virgin Blue, Tempo Services, Stamford Hotels and Resorts and Australian Resorts and spent seven years as a Chartered Accountant in KPMG’s small business and insolvency divisions. He is a regular speaker at conferences and contributor of articles to the technical press.

4 comments

  1. Hello Greg
    Thanks for the comprehensive viewpoint. We’d appreciate your feedback and suggestions for improvement. Why not post some more specifics on painpoints with GlassFish at out users mailing list at
    users AT glassfish DOT dev DOT java DOT net

    Thanks
    Shreedhar Ganapathy
    Project GlassFish Community Manager

  2. “JBoss’s Marc Fleury just gets up the nose of people. Some people hate JBoss and will not use it.”

    Greg, is this really the only reason you are avoiding JBoss??

  3. Daniel
    The Fleury factor is very real. I used JBoss all last year and was reasonably happy with it. The JMS stuff needed work, but other than that I had no real problems.
    In terms of where I am now, I needed to build a concensus around what to use. I thought JBoss should have been the first one to evaluate, but another influential person just vetoed it in an over my dead body kind of way. Sun App Server was the second choice. It has worked out well for us but it is a shame that non-technical reasons blocked JBoss.

Comments are closed.