Twitter

Third Generation Web Frameworks

David Geary, a JSF expert, notes in a recent podcast that he sees three generations of web frameworks:
1st Generation

Classic Struts

2nd Generation

JSF
Tapestry

3rd Generation

Rails
GWT

That gels with my experience, though I’ve only barely touched GWT.

Struts Still Dominant

Struts is beating down the JSF challenge at least according to the metrics(comparing downloads can be a spotty exercise) Matt Raible comes up with for downloads:

Struts: ~340,000 per month
Spring: ~80,000 per month
Hibernate: ~80,000 per month
MyFaces: ~12,000 per month
Tapesty: ~12,000 per month
Wicket: ~10,000 per month

Comparing downloads can be a spotty exercise, but Matt summarizes:
Sorry JSF, you [...]

TDD Training Difficulties

Brian Marrick explains the difficulties in trying to convince developers of TDD goodness. His first approach is to dive into some of their existing code:
This works maybe a quarter of the time. When it does, it’s the best: it shows the watchers exactly what they’ll be doing. The usual reason it fails is that [...]

JSF to Focus on Ease of Development Without Tools for 2.0

When we started Faces 1.0 it was very important for us to work with tools, that’s where a lot of our focus was. But now, we really want to focus on ease of development without tools.
- Roger Kitain
- Staff Engineer, Sun Microsystems
- Talk at Javapolis on Dynamic Applications With Faces and AJAX
A more enlightened [...]

Feel the Pain for Mock Frameworks

Mock frameworks can generate an ‘aha’ moment if you introduce them at the right moment. The evolution looks like this:

Introduce unit testing as a concept.
Walk through the basics of an xUnit framework.
Introduce test driven development.
Introduce fake objects or hand rolled stubs to substitute for things like DAOs.
Use specialized mock object libraries like Shale mock [...]

Our Current Tools, Frameworks, Practices 2007

I’m not sure anyone else will find this of much use, but the following is a list of tools, frameworks and libraries we use currently:
Java Frameworks

JSF 1.0
MyFaces
AJAX Anywhere
Spring
Hibernate
iBATIS
JUnit
EasyMock
Log4J
JODA Time
Struts (Though just for one 3rd party app and some older applications)

Tools

RAD 6.0 (We’re a Websphere shop these days)
IntelliJ IDEA ( Was the editor of choice before [...]

Wicket at SacJUG

We had a sort of ad-hoc demonstration of Wicket at the local Sacramento Java Users group (SACJUG) this week. Out of about 25 people there two people are actually using Wicket. Since there are a ton of web frameworks and we ended up in the JSF camp I just don’t spend a lot [...]

JSF Backing Beans are Just Controllers

Writing some initial code for a JSF TDD seminar I’m putting together for our developers I had an early test method:

public void testUserCanLogin() throws Exception {
User fred = new User();
fred.setName("fred");
fred.setPassword("password");
UserBean userBean = new UserBean();
userBean.setUser(fred);
assertTrue(userBean.login());
}

After realizing the JSF backing bean, UserBean, is actually just [...]

Excessive Setup Anti-Pattern

James Carr has come up with a basic list of TDD anti-patterns and while I’ve seen many of them, one currently still plagues many of our tests:

Excessive Setup
A test that requires a lot of work setting up in order to even begin testing. Sometimes several hundred lines of code is used to setup the environment [...]

Reasonable Server Faces

You know your web framework is facing some problems when projects like Reasonable Server Faces crop up.