CHoosing a front-end tech
Tuesday, September 30th, 2003I want to do a nice simple website. Something I’ve done before and will do again in the future. It will have a RO consumer view and a RW admin view.
I’ve got a schema in postgres, and a hibernate mapping that is working nicely. Now I need to choose how to do the HTML [with however many layers in between]. It should have minimal amounts of coding, but should not have bits of Java written in the JSP [or equivalent, ie) velocity] page.
Options I’ve considered so far:
JSP: I like using this as it’s simple, easy and fun. There’s no hibernate taglib, and I don’t believe in writing bespoke business taglibs, so I’d have to make at least some kind of basic hibernate taglib or hibernate/OJB pluggable taglib. See how quickly it gets overmodelled
Velocity: Good featureset a year ago. I’d be using JSTL/Tomcat,, maybe even Tomcat 5/JSP 2.0, so I’m not aware of anything [except a certain bash syntax] that velocity would have over it.
Struts: I’m not comfortable using Struts. Even with xdoclet to generate things, it involves writing Java classes which I don’t think I should need for a basic system. Ages back [Struts 0.3] I hacked it so that I could throw Maps around instead of Forms and wrote generic actions. I could go that way again. I don’t think Struts is dynamic and fun enough for what I want.
WebWork: Heard good things. Looking at the docs though I find it hard to see what the difference is between that and Struts. Seems to have the same overall design concepts.
Tapestry: Could be a possible. I ought to rethink it. I hated Tapestry a year ago as it seemed to stop me being able to do what should be simple things. It defines a simple-world, and is a pain to get outside the borders. However, I’m considering an easy system and would accept such a strait-jacket if it means I can be rapid.
Proprietary: A few years back in a previous job, I designed such a system. With some newer ideas I could spend time using the site as a driver for my own version of this system. [NDA-wise, I promised to not look into the concept for a year after leaving the company, it’s been 2 years now]. I’ve even recently come up with a name for it.
What and who else is there? JSF is too new, and seems more work than Struts. Freemarker is something I’ve only vaguely heard suggested. BeanShell pages? Do they exist for the latest version of BSH? Servlets are probably too much work.
Any opinions are gratefully received.

