I spent the last few days at what’s called either a) the Northern Virginia Software Symposium (the boring name) or b) No Fluff Just Stuff (the cool name.) Why “No Fluff, Just Stuff”? Well, its all technical sessions by developers for developers, with none of the infomercial-like sessions that you might attend at other conferences. Its a conference that I recommend attending, since it a) teaches you a lot, especially about technologies that you wanted to know about but didn’t have the time to research, b) it comes to you, so you don’t have to pay for airfare, hotel, and car rental, and c) its quite affordable. The only downside is that you give up your weekend, but really… isn’t your career worth one weekend?
I learned a lot at No Fluff Just Stuff, like about Spring from Bruce Tate himself and Ant from Erik Hatcher. This is one of the conference’s great strengths: you get to meet the gurus behind the technologies that you are using. I’m definitely more excited about using Ant 1.6.x now that Erik’s explained what motivated the new features. I’m going to experiment with Spring. I also looked at the Spring Rich Client Project this weekend and it looks like it has really good potential. I’m hoping that all the open source work around Swing rallies around this project, since it is fragmented compared to the efforts of the Eclipse RCP. I’m hoping both thrive so as to give Desktop Java developers two great choices.
But I think the most intriguing sessions were by Dave Thomas, who co-authored The Pragmatic Programmer (which should be on everyone’s bookshelf), who encouraged me to think outside of the Java box and reminded me that programming indeed existed before Java and will continue to exist after Java is deprecated (though still around) in favor of another (perhaps more dynamic? perhaps aspect-oriented?) language. That Java is just another tool (even though it is a tool that accomplishes most of what we do from big to small) in a programmer’s toolbox.
Inspired by that, I took his Ruby for Java Programmers session and while writing my first Ruby programs, I was reminded of my days with Smalltalk, where I really learned about objects from my mentors. This Smalltalk to Java experience confirms that there is more to life than the language you currently program in, as many Smalltalkers at the time disdained Java as a toy language that was nowhere near as good as Smalltalk. I even remember a co-worker who had a picture of one of the main Java implementors taped to the side of his monitor with a little nastygram next to it. In the end, I think all of the old Smalltalkers that I worked with now program mostly in Java.
The reminiscing about Smalltalk leads me to one of Dave Thomas’s other observations: that we started programming because we love to. Or as a former Computer Science professor of mine once said: People program because they like to create things. Not sure if this was a Frank Capra-esque moment, but it definitely made me pause and reflect.
By the way, while I was in the Ruby session, I also tried out RubyCocoa (as you might have seen me thinking about in my deprecated Upcoming Posts list) and I have to say that the end result is exactly like another other OS X Cocoa app. I’ll have to include this when I get around to my Java/SWT vs Java/Swing vs ObjC/Cocoa vs Ruby/Cocoa shoot-out.