Summary
In a recent blog post, Bill Newport suggests that Java still lacks the hosting infrastructure that made PHP so popular with many community Web sites that prefer not to run their own servers.
Advertisement
The Java-versus-PHP debate is perhaps as old as Java itself. Most of the debate is only mildly interesting, since Java and PHP can both be tuned to scale up and perform well, and each has powerful tools and server environments to aid development and deployment.
More interesting than the technical merits of Java versus PHP is the cultural difference between many Java and PHP developers. Part of that difference lies in how Java and PHP developers approach a project all the way from design and implementation to deployment.
Observing the infrastructure of many PHP-based community Web sites, one difference is that PHP developers often try to find existing modules or components that do the required job and then modify those components to suit the task at hand. A surprising amount of PHP software exists to perform all kinds of Web-related tasks, from discussion forums, such as vBulletin, to CMS systems, such as Drupal, to blogging software, such as WordPress, and even enterprise software, such as Sugar CRM, for instance. With just a few exceptions, these tools are ahead of their Java counterparts not only in features and maturity, but also in ease of deployment and management.
By contrast, a lot of Java projects tend to take infrastructure-level components, such as Hibernate, or Java EE, and custom-build higher-level applications on top of those. As a result, there are comparatively few Java Web applications that can simply be downloaded and used out of the box.
One consequence of the numerous readily available PHP applications is that a cottage industry developed around providing affordable and reliable hosting for PHP applications. In the Java world, most would prefer to run a Java application on a dedicated server, if only because few alternative deployment models exist.
This difference was highlighted in a recent blog post, Java versus PHP, by Billy Newport, who works as a senior technical staff member at IBM's WebSphere division. His strong Java EE credentials notwithstanding, when it came time to build a community Web site as part of a hobby, he chose PHP, not Java. In the blog, he recounts that PHP has worked well for this project, and that hosting the PHP-based application was very affordable, partly because of the competitive PHP hosting market.
What do you think accounts for a lack of a similar market for Java-based application hosting? Are the reasons technical—due to the differences in how PHP and Java are implemented on the server—or are they mostly cultural?