Wealth of Podcasts

I remember searching hard for good technical podcasts about a year ago. There were really just a few at that point like Drunk and Retired, ZDot, and the Polymorphic Podcast. Today there’s a wealth of them. Just following a blog link I noticed NetObjectives has a Lean Agile Straight Talk podcast.

All this means is I have about 48 hours of backlog right on the old iPod and I can afford to be picky. A lot of podcasts I would have listened to on IT Conversations now don’t even warrant a download.

Bruce Eckel and Java IO

The Java Posse podcast recently interviewed Bruce Eckel. About 32 minutes into the first of a two part interview Bruce says the following about the Java IO library:

“I don’t know if they (Sun) are just in denial or what. Opening a file is still a nightmare.”

It was good to hear one of the Java luminaries speak to this fact. I remember teaching an intro class on Java to about 24 people and explaining all the wonderful PrintWriters and BufferedReaders. For the majority of the class it was completely confusing. And despite hand waving about you need these streams because the file might be located across the network it was still very hard to grasp. It’s another one of those things where I have to look at some sample code every time I need to actually open a file in Java.

Anyway Bruce’s solution was to write a utility class to handle it.

Kent Beck Cringing

“I cringe when I read it now.” (1st edition of Extreme Programming Explained)

“You can’t make XP work somewhere.”

— Kent Beck

Listening to an interview with Kent Beck on Team Agile I got a much better understanding of how his ideas of changed. XP has become more a set of good practices and things you might try implementing, not an all or nothing recipe. I felt back when there were lots of debates over XP was an all or nothing affair that much of the dogmatic arguments about having to do it all or it wasn’t XP were really meant to more as a defensive gesture.

After 7 years Kent has come around to the idea that you can’t completely remake an organization. He cites an example about a good developer who wants to keep a continuous build going, but no one cares about it and his boss keeps asking why he’s wasting time on the build box while other people are getting more code done. To this Kent has no real easy answer. The point is that XP or any other methodology has to be sub-optomized from it’s pure implementation given the constraints. (Kent is careful to note that just because the culture is set that you should still question basic assumptions like that pair programming couldn’t work.)

Good interview though, it feels nice to have someone like Kent assert that even changes like TDD can be difficult to implement in an organization.

Technorati Tags:
, ,

Current Java Web Framework Options

Listening to a podcast by Tim Shadel on difficulties with JSF and why he wouldn’t use it again brought up a current headache in the java web development space. Today’s options for java web frameworks blow.

Let me expound a bit:

Struts – Works fine, has been the defacto standard for years, but its showing its age. It hasn’t really been updated significantly in years. It doesn’t have an obvious successor yet since there is no Struts 2.0. It’s harder to test because it extends from all the framework classes. Within the java community it’s considered pretty much a legacy framework.

JSF – Very hyped and part of the J2EE spec so it’s supported by the app servers. Has a lot of vendor tooling support showing up. Has a very flexible event model. Is being pushed by the creator of Struts. Unfortunately it suffers from a host of problems. Tim Shadel described just a small part of this his recent post on JSF. Essentially he described how they had to get around JSF’s lack of handling GET requests with a few URL parameters.

His example was having one WAR file that needs to link to another WAR file and pass along an id. The hack involved:

  • Creating an extra JSP file.
  • Linking to the JSP file directly.
  • Send along the parameter.
  • Opens up FacesContext.
  • Gets the request object.
  • Pulls off the id parameter.
  • Locates a backing bean with session scope.
  • Stuffs the id the backing bean.
  • Forwards it to a JSF page.
  • Then it can pull up the appropriate page and get the parameter.

This is just plain ugly. Tim goes on to mention that when someone waxes grandly about JSF he asks a simple question? So how do you write a blog in it?

If this were JSF’s only problem it would be one thing, but testing the darn thing is really hard as well since it relies on things like FacesContext that have to be mapped. The only mock objects are found in the Shale project. Even something as simple as JWebUnit for testing from the front end fails because JSF relies on some javascript for just about everything.

I still have some hope that JSF may evolve to something reasonable, but today it’s still pretty messy.

Tapestry, Webworks, Wicket, Spring MVC, etc – I haven’t spent much time with any of these web frameworks for a simple reason. They don’t have really a large enough mindshare and community to make me think that betting the farm on them isn’t a huge risk. I have no doubt they are probably all better than Struts, but none of them have really caught on as a Struts successor.

This is exactly the reason why something like Ruby on Rails has so much appeal to java web developers since in Ruby it’s by far the defacto standard for web applications, and it includes lots of cutting edge features from built in unit test harnesses to AJAX support. Since JSF doesn’t appear to be the hoped for Struts replacement I wonder if we’ll see one anytime soon.

Technorati Tags:
, ,

JSF Compared to a 7 Layer Burritto

Tim Shadel has a post entitled, JSF: The 7-Layer Burrito I Won’t Eat Again, and podcast on his experience with JSF. I’m guessing the 7 layer burrito comment refers to the 6 lifecycle phases in JSF. Anyway I’m eagerly awaiting to get to this podcast on my iTunes playlist. Tim’s vote on JSF after his team has used it for about a year, “Skip it.”

Our experience has been pretty mixed with JSF. We’ve had trouble finding decent books, trainers or resources despite the hype surrounding JSF. Out of six developers on our development teams that have actually used JSF on a project I get:

  • One positive vote.
  • Two less positive votes with a lot of caveats.
  • One neutral vote.
  • Two very negative votes.

If I had my choice I would still be adopting wait and see on JSF, but some consultants were pushing it so it became a non-functional requirement on some new projects. I think JSF may prove out, but it could just as easily go the way of EJB entity beans.

Technorati Tags:
, ,