{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner
architects,devops,tips and tricks,industry,architect design

Open-minded Architect

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 {{ articles[0].authors[0].realName }}, DZone MVB. (source)

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

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

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks