Skip to content

CodeMash 2008 Wrap Up, Part 1

CodeMash 2008 came to end on Friday. This year’s conference was even better than the inagural event; a whirlwind two days, packed with three keynotes and dozens of sessions. I talked with developers coming from a wide range of backgrounds and organizations. As one attendee remarked to me while we were getting food from the buffet, it was nice to be in a event full of geeks.

Topics at CodeMash are varied and atendees are encouraged to attend sessions outside their comfort zones. I see CodeMash as a valuable way station on the raod from journeyman to master, a place where the pragmatic meets the esoteric and the everyday programmer can be exposed to ideas and practices that illuminate the deeper nature behind and practices of software engineering. I certainly had that experience this year.

The first day was packed with events. Our first keynote was delivered by Neal Ford, Software Engineering & Polyglot Programming. The takeaway was a vision of the future of programming where the language is separate from the platform and we take advantage of solid runtime platforms like the JVM or .NET CLR while casting aside the cumbersome languages traditionally associated with them in favor of more productive, more dynamic languages. For example, Groovy on the JVM or IronPython on .NET. In Ford’s view,

Testing is the engineering rigor of software engineering.

By combining dynamic languages on solid runtimes with rigorous testing practices, software “engineering” can begin to live up to its namesake.

Joe O’Brien’s Ruby Testing Mandatory talk was one of those “outside my comfort zone” talks, as I know very little about Ruby. But, the testing support Joe showed was quite impressive. It is a mandatory practice because:

  1. It’s included in the language
  2. It’s easy & you can make it easier
  3. There is nothing you cannot unit test in Ruby

With a powerful, dynamic language like Ruby, you can easily do stupid things, but testing can help you catch problems earlier, mitigating the risk. This conclusion sounded, unsurprisingly, like Neal Ford’s keynote. But, I was sold on the importance of testing last year. The take away from this session for me was seeing how awesome the Ruby tools are. I think I briefly experienced the Reality Distortion Field that seems to be increasingly turning otherwise rational programmers into Ruby zealots. I’ll definitely be making some time over the next few months to play with Ruby.

Continuing on my non-.NET language tour, I stopped by Catherine Devlin’s, Crash, Smash, Kaboom Course in Python session. It was a very code heavy session and I surprised myself by already knowing much of what she discussed as she introduced Python programming via the development of a solar system modeling program, complete with realistic gravitational forces and exploding planets. It was a fine introduction to the language and I was relieved that the example project was not yet another Web app. Yes, Python can do more than Web pages.

After lunch, I had the great pleasure of seeing the best keynote of the conference, Mashing it up with IIS7, delivered by Scott Hanselman. The talk of the conference was actually the first ten minutes of his presentation which was, basically, stand-up for geeks. When the keynote presenter uses LOLCat slides in his presentation, you know you are in for a good time. The presentation itself was on hosing PHP on IIS7. Despite some technical difficulties during the presentation, it was great. I wish we were upgrading soon because I was sold on the new feature set. I am actually starting to gain a little respect for the IIS folks. I’m not ready to give up my beloved Apache, but IIS7 looks sharp and I hope I get to play around with it soon.

As an aside, the highlight of CodeMash for me was talking with and rocking out with Scott playing Rock Band during the Day 1 party. He seems like a very nice guy, knowledgable, and a quick study on the drums. I actually think many people found Rock Band to be a centerpiece of the event. You could always find the most interesting people hanging out around the game as well as the funniest moments. I have a grainy cellphone video of a “cowbell” incident that I’ll post in the near future for those that were there. The funniest thing about the Rock Band setup was that there was a real band playing next door.

I skipped the first of the vendor sessions in the afternoon due to being really tired by this point. In the afternoon, I checked out Kevin Dangoor’s, Introducing the Dojo JavaScript Tool talk. Being a complete JavaScript novice, I found it very informative. The feature set is huge and the care taken in making the core libraries as compact on the wire as possible really impressed me. The quote of the session:

The great thing about Dojo is that you don’t need to know JavaScript well.

The final session of Day 1 was Dustin Campbell’s Putting the Fun into Functional with F#. This was my favorite session and I heard many other atendees remark that it made their head spin. As Dustin explains, F# is a HUGE language developed by Microsoft Research that fully implements the three major programming paradigms we have today: functional, imperative, and object-oriented. The talk focused on the functional aspects. I think I learned more about functional programming from this one talk than from all the intermittent reading of Lisp websites I’ve done over the past few years. Since the language comes with the full source code, I’m really excited to download and play around with it. Dustin also appears on the latest Hanselminutes podcast and does a good job explaining some of the points he made in the talk. I listened to it on my way home tonight. I think F# is going to be a big deal in the .NET community once people wrap their minds around the functional aspects. There is so much power there, yet the language is also very accessible to current .NET/C# programmers.

After dinner, the Attendee Party commenced where the aforementioned Rock Band rocking out occured. Great times were had by all. I was originally going to summarize my entire CodeMash 2008 experience in this entry, but as it is already getting late, I’ll end it here. Stay tuned for my summary of Day 2, which included an utterly fascinating keynote by Brian Goetz on concurrency programming and some Perl bashing from Bruce Eckel.

Post a Comment

Your email is never published nor shared. Required fields are marked *