Eclipse Galileo is out now. It is remarkable: 33 projects and 24 million lines of code, according to the press release. Perhaps the two biggest features in this release are support for Mac Cocoa - in order words, proper Mac support - and PHP development tools. All open source, all free.
Unsurprisingly, Eclipse appears to be the most popular Java development tool, and if you extend that to IDEs based on Eclipse, its dominance is overwhelming. Its obvious rival, Netbeans, has improved greatly in the last few years and may be better for some purposes; but it looks unlikely to catch Eclipse, and the impact of Oracle's impending acquisition of Sun is unknown.
Eclipse has also influenced other development tools, forcing vendors to offer more for free and to improve their extensibility. You can see this effect in Visual Studio, for example, with its Express editions and both technical and licensing enhancements to its extensibility in recent times. Microsoft may say that this would have happened anyway, but I am doubtful. Eclipse changed the game.
Still, there is something that I've always found intriguing about Eclipse, which may be a weakness in its business model (if a free platform can have such a thing). I put this to Executive Director Mike Milinkovich and he responded robustly, which I like because it usually means I've asked a good question.
Eclipse is a a tools platform, not an IDE, and member companies build their own products based on the shared platform. Examples are Adobe with Flex Builder, IBM with Rational Application Developer, Zend with Zend Studio, and Embarcadero with JBuilder. Each of these companies has a dilemma. The more they invest in the shared platform, the more they collectively benefit by getting features that they do not have to build on their own; but the better the shared platform gets, the more difficult it is to differentiate and sell their commercial products. I asked Milinkovich about this tension and he interrupted me:
That's not a tension, that's exactly the way Eclipse is designed to work. That is the Eclipse business model. Our licensing model and our business model are geared around the notion that we're building an open source platform which then people build products on top and differentiate in the marketplace based on what they do on the proprietary side.
Although Milinkovich says it is "not a tension", Embarcadero CEO Wayne Williams complained about this very thing, telling me that IBM is now pulling back from investment in Eclipse and reserving the best new features for its own products - which, whatever the truth of the matter, IBM has every right to do.
An additional factor is the difference between vendors like Google, which has an Eclipse plug-in for App Engine, but is only concerned to promote its platform; and those like Embarcadero whose business is selling tools. Vendors like Google can improve Eclipse without any threat to their business.
Eclipse is wildly popular, but came last in a recent Software Development Platform survey of developer satisfaction by Evans Data. To be fair, all the products won a reasonably good rating, so we should not infer that Eclipse is poor; it is not. I can understand, though, why some member companies may be happy to see Eclipse rated as good, but not too good, giving them space for their Eclipse-based products; and if this is the case, it may limit the extent to which Eclipse is likely to improve.
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.