We built the foundation of our system in Java using Spring and Hibernate and exposing a nice service layer. We used a little bit of Struts for the early front end, but have only developed the tip of the front-end iceberg so far. Now we are at a fork in the road and would love to get your feedback.
When developing the front-end (a newspaper-like consumer site) should we:
1) Building it using Struts
2) Develop the site in PHP/Python/Ruby and have it talk to the Java service layer through some bridge technology (like http://php-java-bridge.sourceforge.net)
3) Dump what we've written so far and start from scratch (obviously a difficult one to choose)<p>Any thoughts?<p>Thanks,
Jay.
#2. In my experience, Java frontend development (particularly with Struts) is so painful that you'll almost always be better off with Django or Rails talking to a backend via some RPC technology. This also enforces a strict separation of UI logic from application logic. It'll slow you down at first, but your devs will thank you for that separation when they try to run analyses on the data you've accumulated in the app and have a nice API to work against rather than scraping HTML off the webserver. (If they're any good, they'll probably thank you for not having to work with Java web frameworks, too. ;-))
Check out JRuby (<a href="http://jruby.org/" rel="nofollow">http://jruby.org/</a>) You can write a RoR front end and pull in/execute Java code (in Ruby's sugary syntax). No need for any crazy bridges...