I’m being brave and asking this in the Java section, as I want to gauge the response from actual JVM web developers, to a couple of opinions I have in regards to PHP and the JVM.
First of all, to set the background, I work for local government as one of only two systems developers. My background is PHP (4 years experience) although recently I’ve been exploring a couple of JVM languages (none of which were Java). My colleague who’s actually my supervisor, is an experienced Java developer, and ideally, would like to stick to the JVM for web development. We’ve been discussing what language(s) we should standardise on, as we both agree that sticking to our preferred language is going to cause problems, especially in the long run.
After spending a couple of months playing with JVM languages like Scala and Clojure, I can certainly see that the JVM is certainly a powerful and robust tool. In the other corner though, there’s PHP. Not all that suitable for heavy processing, but shines in terms of integration with web technologies and it’s incredibly scalable nature (can be used for single-line scripts, or large and complex applications) - PHP is light and dynamic, which to me makes it a perfect match for the web. With these two things in mind, I’ve formed the opinion that PHP is a more suitable choice for web applications which don’t require heavy processing (which makes up probably 90% of web apps), as it’s rapid development, ease of deployment and general flexibility are ideal for web development, while on the other hand, the JVM is best suited to applications where heavy processing is required, or in mission critical, enterprise level web applications where strict business models rule the roost.
So in conclusion, I’m of the opinion that PHP is the best tool for general web development, where as the JVM is a perfect compliment for handling the background services and heavy data processing side of things, which could be off-loaded to it by PHP if required. So in a nutshell, PHP for frontend processing, JVM for background services and heavy data processing.
What do some of you JVM developers think of this? Do I make a fair point, or is my lack of JVM knowledge skewing my perspective on this?