DHH On Stateful Web Applications

In last year’s JSF Burrito podcasts, I argued that I didn’t see the point of using a strong component model for JSF and that throwing away nice HTTP RESTful URIs is a Bad Thing. In an interview with InfoQ, DHH takes up a similar (though probably more polite) stance.

InfoQ: DHH Responds to Stateful Web Applications Row

[There is an] assumption that all web developers really want to be desktop developers and that all web applications would be better if only they were more like their desktop counterparts. I don’t accept that assumption. I love working with the web as it is. I love the architectural patterns offered by HTTP and REST.

So in many ways, I see chasing a desktop-like view of the web as chasing the past, not the future.

I’ve written about my reactions to JSF one year after the burrito entries. I find myself clearly in the camp that DHH is in: making desktop-like web apps is chasing the past, using RESTful style development is an approach I prefer.

A number of months ago we held an internal debate over XUL, and its place in our development. For the most part, we debated many sides of the issue and came out with “let’s wait and see.” Basically the core of the debate was whether a desktop-like UI is better for our apps or if a web model was more appropriate. Some of us leaned toward the web app side, some just thought the timing was too soon to tell for XUL. Personally, I prefer to keep all the MVC issues on the controller side, and limit JavaScript on the client to handle issues of rapid user feedback (check out the code behind Google’s “star” in GMail), and leave the control flow and rendering decisions to the server-side.

But that’s just me.

Grand Canyon Skywalk :: Bad Idea

Grand Canyon Skywalk :: Hicks-Wright.net

This was not because the package was that complex, but because each person in the line thought they were going to be paying $25 per person. In reality, the tribe was charging another $50 on top of the $25 for each person. You read that right, 75 bucks a pop. The “Question Answerer” explained it to us:

“The investor wants to get his, that’s the $25. But it’s our land, and we don’t get any of that $25, so we have to get ours too, you know?”

When I heard about the glass skywalk it sounded like a really cool idea in principle. Now that I read this, I’m definitely passing on the trip for a LONG time. No cameras on the skywalk (what!!??!), long lines, and hidden fees. $75 per person is not even thinkable. No way. Too bad they launched in the day where one guy’s blog post can touch a few thousand potential customers.

Busy Hacking Things Together

I’ve been silent again. I know, it’s not what I intended at the beginning of the year. It’s just that it’s so much fun to go off and build stuff. I get sucked into all sorts of side projects outside work that are interesting and time consuming (not to mention time spent with the fam — two under the age of 2 is both a joy and a handful!).

So here’s one glimpse into my recent projects. I’ve been hacking away at another WordPress site. It’s a volunteer project I do mainly on the weekends. It’s been interesting to fiddle with PHP more in depth while still doing heavy Rails stuff in the evenings. I forget how functional style programming tends to work. Shared variables abound, and one file melds into another. PHP seems really good about working with files, though. It’s really amazing how easy it is to say, “now go use that file”. I’ve done stuff like that in JSP and other languages, but it’s pretty darn simple in PHP. The mental concepts of assembling a web page seem to be all about choosing the file that renders a certain part of the page. That’s different from JSF where you think mainly about assembling components, and different from Struts where you often think of Actions or logical forwards, and different from Rails where you think of the method in your Action and the responds_to block.

So it’s not likely that I’ll hang out in PHP land for long. Nor is there any danger of me evangelizing it, but I look at this as simply one of many recent experiences I’ve had while building something that confirms another of the Pragmatic Programmer’s axioms: learn a new language every year. I’d add, Do it while hacking something together.