NoFluffJustStuff Gateway Java Symposium - Day 3
Day three's events began at 8am and ended at 5:00pm. A continental breakfast was served from 8am-9am with the first presentation beginning at 9am. The following are the sessions I attended along with any random thoughts.
Better, Faster, Lighter Java (Bruce Tate)
Better, Faster, Lighter Java was about everything EJB isn't. Bruce started off by explaining how Java has gone from a 4MB download to a 40MB download in less than 10 years. He also brought up the fact that deprecated method's rarely are actually deprecated. The only examples our group could come up with were situations where leaving the method would actually break something. Otherwise, deprecated methods have been left to rot for backward compatibility purposes. We also discussed how EJB had been around for sometime and newer lighter weight frameworks like Spring were not far behind feature wise. To cut to the chase, this session could have been called, "EJB's are usually not necessary and there are much better ways to get the benefits they provide". Bruce stated that a lightweight container, like Spring, was the future and that EJB's were dying. While I have to agree that EJB's are abused and not needed in many cases, there are a lot developers out there with this skill set so they will likely die a slow death.
TDD for the web tier (Rick Hightower)
Lets see, hmm. How do I put this. To be blunt, this presentation sucked from start to finish. While Rick may know the subject very well and write decent books, an effective presenter he is not. Not to mention, his slide presentation could have taken the entire 3 days to cover. This session was suppose to be about junit, httpunit, dbunit, strutstestcase, cactus, and jWebUnit. I think we may have completed the junit part, it was hard to tell since I was too busy fighting to keep my eye's open. Sorry for sounding bitter, but this presentation was painful. Instead of throwing up a editor and giving a hello world presentation of a couple of these tools(obviously there was no way to cover all of them), we were subjected to bullet point after bullet point of ways to use them. I got nothing out of this presentation except that I will never attend any of Rick's seminars again.
AOP with AspectJ and Eclipse plugin (Venkat Subramaniam)
To start off with, im very thankful that I got to this room early. It became overly crowded in a matter of no time. I guess you could say that AOP was the buzzword of choice this past weekend. While I can honestly say that I understood the basics of AOP beforehand, I learned a bunch from Venkat. His presentation style was similar to Stuart Halloway. Lots of little tiny programs that did nothing but get the point across. I learn best in this environment. Venkat had a single program where he instantiated a JMenuPanel that contained 2 menu items. When you ran the program, both were available. He then proceeded to put logic to determine if your locale was US and gray out one of the options. The next step was to explain that this type of logic might be useful all over and that copy/paste was not the best solution. Instead he moved this code into an aspect and applied it that way. It was a clear and meaningful example that most people enjoyed.
Introduction to Spring(Bruce Tate)
The last presentation that I attended was on the spring framework. Bruce did a pretty good job here, but like in all his other presentations he lacked real code. This presentation was really nothing more than an overview of spring, how it compared to struts, and how easy it was to keep your object testable using it. My favorite statement from the presentation was, "Good OO design is more important that any framework". This idea is very foreign to EJB since Session beans like monolithic utility classes and Entity beans are similar persistence via peanut butter. Spring or spring like frameworks are on my radar and will be something I dig into soon.
To summarize the weekend, I would have to say the NFJS Tour was a success again this year and that it was worth every penny. If my company hadn't paid for it, I would have. A coworker of mine brought up the fact that the tour is in Chicago in the September timeframe. I will seriously consider going to it as well if the topics are different enough.
NoFluffJustStuff Gateway Java Symposium - Day 2
Day two's events began at 8am and ended at 5:30pm. A continental breakfast was served from 8am-9am with the first presentation beginning at 9am. The following are the sessions I attended along with any random thoughts.
Tapestry by Example (Erik Hatcher)
I thought this session was really good. It had a totally hands on style. Erik started with nothing and banged out a sample app in a matter of 90 minutes. Other than a beret of off the wall questions, the seminar went pretty smooth. The parts of Tapestry that I liked most were "Previewable HTML", correct line numbers in stacktrace's, and there seemed to be less moving parts than Struts. One overwhelming thought was, do I really need to learn another framework that competes with struts. Good or bad, struts is fairly widespread and my efforts would probably be better spent learning more advanced ways to use struts or looking at a lightweight framework like Spring.
Pragmatic Mock Objects (Dave Thomas)
Pragmatic Mock Objects was a tough topic to glean information from since I have never really relied on them before. Sure, I've stubbed out classes before but Dave was very clear that mock objects were much more than that. Unit testing is a personal goal of mine. Im hoping to start incorporating unit tests into every line of code that I write, very soon. I think this shift would be much easier if I didn't spend my time working with the web tier. Even though there are frameworks to aid in unit testing web apps, they never seem very easy to use. Although I've never fully bought into XP, I think there is tremendous value in writing unit tests. I have also had problems believing that TDD is about design and not testing. Well, maybe but testing seems to be a pretty big one to me, I wouldn't discount the safety net that it provides.
Metaprogramming (Stuart Halloway)
As I mentioned previously, Stuart was probably my favorite speaker at this years symposium. His session on Metaprogramming was much of the same. In a nutshell, metaprogramming means writing code that manipulates code. To be more specific, automating repetitive tasks that cannot easily be automated within the language. Stuart picked out a handful of patterns, explained why they existed, and offered better ways of solving the problems.
Programming with Hibernate(Bruce Tate)
This presentation was a bit disappointing. It was made up of entirely powerpoint presentations with no coding examples. Sure he had some code splatter on a slide or two, but at no point did he open up an editor to show or run any code. I liked Bruce's Bitter EJB talk last year, so I expected this to be a good session. Turned out, I was wrong. Other than giving a general overview of Hibernate, Bruce didn't do much to sell the framework. Instead he seemed to be more partial to JDO instead. On a few occasions, he mentioned advantages JDO had over Hibernate.