Over a million developers have joined DZone.
Platinum Partner

Open-minded Architect

· DevOps Zone

The DevOps Zone is brought to you in partnership with Librato.  Check out Librato's whitepaper on Selecting a Cloud Monitoring Solution.

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, 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, 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 withing 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.


Published at DZone with permission of Vlad Mihalcea , DZone MVB .

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}