While chit-chatting with one of my colleagues, I was surprised to hear they use a PHP team for developing their front-end application, while the back-end services are implemented using Java. Since their project is doing great, this really got my thinking why I haven’t ever considered such an architecture.
Most large Java web application I’ve been involved with have shone on the server-side part, while the client-side has been the Achilles heel.
While you can find great Java web developers, not every Java developer has web-based skills. But PHP developers are great when it comes to web programming, and they don’t have a zillion of frameworks to specialize in. PHP developing is pretty much standard, as opposed to Java web programming. I have always been anxious when joining a project using a new web framework I didn’t know anything about (e.g. Wicket), but that’s not the case for a PHP developer. They can always join a new project, and the learning curve is not that steep.
I remember reading many comparisons tests for Java vs PHP or Python, and I don’t remember seeing a single test not aiming to pick-up a winner. Such test targets only the language, but disregards the community and especially its developers.
Sometimes the winning solution is not a single technology but a clever mix of those that are best suited within a given context. A similar concept is the polyglot persistence.
So as an architect you always have to stay open-minded and be objective of any technology you happen to love. After all, I love Java, but I also know it’s not always the best solution to all my clients’ problems.