Prefactoring – Ken Pugh

Ken Pugh has a booked titled Prefactoring, which following in the same style as the classic Refactoring book by Martin Fowler. Instead of identifying ‘code smells’ after the code has been written and modifying the design and implementation to remove poorly designed/implemented or unmaintainable code, Pugh’s book gives a set of guidelines for mistakes to avoid before you start coding.

Pugh has an overview of the book on the Artima website.

More Java podcasts

OnJava.com have a second part to their ‘The Java Podcasters’ article, interviewing other people who are currently producing Java technology based podcasts. I haven’t listened to any of these yet, but here’s the ones covered in part 2 of this article:

Will AJAX give way to an increase in Java Desktop applications?

Several times in the last five years working on web applications I’ve heard, or even said myself, ‘that would be easy to implement if this was a desktop application’. It seems we’ve shot ourselves in the foot with web-based applications in terms of rich user interaction, and even ease of use. We fully embraced web-based applications for their benefits of a centralized deployment model and the fact that they removed the need to install software on client machines, which of course opened the doors for a whole new paradigm in terms of users being able to access your application remotely over the internet with a client that was already installed on their PC, the web browser.

It’s interesting though how we accepted these benefits at the cost of user interaction features that were/are easy to implement using a desktop based application, either standalone or client/server: dropdown menus, dependent UI components like dropdowns (where data in one component is dependent on the selection of another component), drag and drop, data validation, input field masks… the more you think about it the more we seem to have given up with web apps.

With AJAX some of these dynamic UI features are possible to implement, and even before AJAX, were possible to implement if you were prepared to jump through hoops with Javascript and dHTML. However, this is also often at the cost of narrowing down supported browsers if you start to take advantage of cool features that maybe are supported in one browser but not another.

There is obviously a need driving AJAX type functionality. I just wonder how long it will be before someone says, ‘you know, if you really want that type of UI user interaction then the easiest way will be to implement it as a desktop application…’