I attended a round table to discuss the use of open source software in government, with Red Hat, Ingres, Alfresco, and on the government side representatives from the Office of National Statistics and Islington Council.
It is a fascinating topic on several levels - and not just for government. The two big questions: first, what is the rationale for prefering open source; and second, if you are convinced of its desirability how on earth do you get a huge, diversified entity like the UK government to increase its adoption?
There is clearly some kind of disconnect. The government already has a policy which stops short of mandating open source, but does say:
Where there is no significant overall cost difference between open and non-open source products, open source will be selected on the basis of its additional inherent flexibility.
In other words, given two otherwise equal proposals, open source is favoured - yet in practice we were told that 95% of software in use in the UK government remains proprietary.
So why is that? There are dozens of reasons. It's the available skills, with armies of experts in Microsoft, Oracle, IBM, and so on, compared with only a few willing to specify open source technologies. It's the culture, with countless existing supplier relationships and a well-trodden procurement path with the usual suspects. It's the existing envirnonment: if you start from a point where the servers are Windows, say, and the desktops all have Microsoft Office, it feels more comfortable to continue down that path. It's the lock-in, especially when it comes to things like proprietay SQL extensions and stored procedure languages, that simply do not port easily to new database managers. And it's canny vendors, who go for site licences with the widest possible scope, so that if a small group decides to break the mould and use something different, it looks more like a cost than a saving - because they are already licenced for the proprietary stuff.
These are tough obstacles to overcome. Put another way, the rationale for adoption has to be exceptionally strong to overcome the inertia; and it was here that I found the round table unconvincing. The open source companies gave diverse reasons for the benefits. Lower cost was mentioned frequently. By contrast, John Powell, President and CEO of Alfresco, talked intensely about how the UK was somehow handing over its soul to silicon valley, by not building up local skills in open source software. Someone else said how nice it was that open source software was free so that everyone in an organization could use it; another gently observed that since most open source companies make their money from support agreements that are per user, this is often not the case.
The most persuasive rationale is that open source software tends to support open standards and therefore avoids lock-in. This lowers long-term costs, by ensuring that the customer always has freedom to switch.
The snag with all these arguments is that the proprietary companies can counter them easily. They will reel off all the open standards they support. They will draw graphs showing how much money you save by using their stuff. They will point out that those with skills in their technology can easily market them worldwide. The outcome is that nothing changes.
I don't doubt that leading vendors make excessive profits on software that should be commoditised and cheap, or that vendors follow strategies designed as much to keep us hooked on their stuff, as to advance technology for our benefit. It's a cycle that needs to change.
At the same time, the open source vendors have to recognize - and to be fair, I reckon they often do - that most of us will not switch for ideological reasons. We want to get our work done. The best open source projects, things like the Apache web server (if there is anything like it) succeed on sheer quality and reliability, not merely through being open source.
The tough question: does the open source ecosystem have sufficient resources to deliver that quality, against proprietary vendors with huge profits to pour into research and development? There are plenty of decent open source products; the number that are truly best of breed is more limited. Currently it is the big proprietary vendors that have the advantage.
I left the table with more questions than answers. Should governments introduce more draconian legislation, to counterbalance the industry bias towards the status quo? Will the move towards cloud computing break the pattern? Should legislation be focused on mandating standards support, or even that applications should be proven to work on two different platforms, rather than the matter of open versus closed source? If today's MySQL is tomorrow's Oracle, is there really any difference? Isn't there too much to worry about already, solving problems and delivering successful projects?
If pressed, I would always incline towards the best technical solution, rather than one which ticks boxes, even open source boxes. That said, we are all susceptible to being bamboozled, not even looking at open source alternatives if we already know a proprietary tool or component or platform that will do the job. Even for individual developers, it makes sense to choose the open source solution in cases where other things are equal; and to think twice before building vendor lock-in into the applications we create.
When Rasmus Lerdorf announced Personal Home Page Tools 1.0 in June 1995, I doubt that he had enterprise software development in mind. Fourteen years later, the CTO of Zend software, Zeev Suraski, shows me a slide. It has a large area shaded light blue, representing all the part-time or hobbyist users of PHP, and a thin strip of darker blue representing corporate PHP developers or ISVs (independent software vendors) offering PHP applications.
"Those two categories are growing significantly," says Suraski. "In 2006 we're talking about maybe 10% or less of the entire user base, whereas by the end of 2009 Gartner expects it to be about 35%. This changing demographics is a sign of maturity for PHP."
He would say that, of course, because that thin strip is Zend's potential customer base. The company sells a professional IDE for PHP, support services, and the just-released Zend Server which packages PHP along with commonly used companions such as MySQL. There is also an optimizer (technically an op-code cache), a Java connector, and the paid-for version has additional monitoring, debugging and caching components.
It is not just talk though: Zend is flourishing despite the recession - "the Q1 of 2009 has been our strongest quarter ever," says Suraski - and although PHP's enterprise market share is small compared to Java or .NET, it is growing.
What interests me is why this has happened. It is partly thanks to the merits of PHP, its speed and simplicity, and the fact that Java's libraries and to a lesser extent those in .NET are over-engineered for many tasks. More directly important though is that the community using PHP - the large area of non-paying users in Suraski's slide - has created a remarkable pool of resources on the Internet that is available to everyone, business users included. Non-commercial users are those most likely to share their knowledge, unfettered by concerns over business confidentiality or copyright.
I experienced this for myself recently, when I sat down to write a small PHP application. Every problem I encountered was quickly resolved with a Google search, or by looking at the discussion attached to entries in PHP's online documentation.
II don't mean to belittle the extent of online resources available to Java or .NET developers, but would argue that PHP has the edge here.
I also realise that it is no good just doing a search and adopting the first solution that seems to work. Developers need to understand what is being suggested and assess its quality, rather than optimistically pasting in the first block of code that seems to work. If PHP has a weakness, it is that the language does little to help developers write secure, maintainable applications, which may explain why there are so many vulnerable PHP applications out there.
So what about Zend Server? Note that this is not an application server in the WebSphere sense; it is primarily a PHP platform installer and support package, and as such not that different technically from what you can do with a Linux package manager or something like XAMPP.
I tried installing Zend Server on Windows Vista and bravely chose the IIS 7.0 integration rather than Apache. It actually worked smoothly and will be fine for developing PHP applications, though I would normally deploy to Linux, which I gather is a common scenario. That said, the work done by Zend and Microsoft makes PHP on Windows Server a reasonable option as well, and one that makes sense if you need to integrate with .NET, SQL Server or other Windows services.
The real winner here is PHP. Zend is making it business-friendly without damaging its open source ethos, and in doing so providing a great example of how free software can sidle its way into the enterprise.