DevDays 2008 (held in the RAI convention centre in Amsterdam) is typically the most-looked-forward too events in the Dutch developer community. And yet this was my first DevDays to visit. Previous years I was too busy, or I realized it was “that time of the year” again too late (I have similar experiences with the Deventer book market, but that’s a different story). Anyway, I was looking forward to the event immensely. I wasn’t disappointed. Below are some of the presentations I visited.
Keynote “Why Software Sucks” by David S. Platt
Where David Platt is concerned, I think the world is divided into two camps; you either hate the guy or you think he’s a genius. After roughly the first 3 minutes of his talk about why software today sucks I am part of the latter. In a whirlwind of anecdotes, pleas and tell-it-like-it-is (sorry Dr. Phil), David makes it very clear that he is passionate about the quality of software today. And he’s got a pretty good picture on why it’s crap and how to make it better. Most of his ideas are plain common sense, a trait sadly lacking in a lot of software companies today. The main of his ideas revolves around a single phrase: Know thy user, for he is not thee. A software user doesn’t care about how clever we are in getting things done. He just wants it done. Fast, easy and without having to think about it. I am cutting some corners here obviously. If you want to know more, find the presentations online (I will post the links as soon as I get my hands on them) or get his book from Amazon.
Advanced Debugging with Visual Studio by Ingo Rammer
Just about every .NET developer knows about the Visual Studio Debugger and uses it on a daily basis. Not doing so is somewhat like digging a hole with a teaspoon. It’s slow, it’s a lot of hard work and once you’re finished you’re stuck in a hole you cannot get out of without help. The VS Debugger is like using the CanDig CD21 mini excavator. It’s easy, looks pretty impressive and ends you up at the edge of the hole instead of in it. Oh, and did I mention you can dig a whole lot more holes in the same amount of time?
Ingo Rammers took us on a guided tour of the VS Debugger. Starting off with the standard breakpoints whom we all know and love he pointed out that there’s a lot more to breakpoints than meets the eye. For example, did you know you can opt to run a macro, any macro, doing anything you can think of you want done, every time a breakpoint is hit? I sure didn’t, and the possibilities of that are just about limitless. Or that you can hide your properties from showing up in the Debugger? Encapsulate your entire class in a proxy to make it look and feel completely different while Debugging? I am definately going to get back to this in a next post, but in the meantime the presentation should be out there somewhere.
WCF on the WEB: Using REST and JSON with WCF by Peter Himschoot
REST (Representational State Transfer) is becoming more prominent in the .Net Framework. In this talk, Peter Himschoot showed us how to REST-enable your WCF (Windows Communication Foundation) services. It’s surprisingly easy: reference a DLL, tag on some attributes, change your binding and presto, we can do REST. So why is REST important to us anyway? SOAP’s fine, isn’t it? No, it isn’t. One of the only reasons I ever use SOAP is interoperability. In my opinion, it is bulky, it is difficult to maintain and it is slooooow. And, with REST, it turns out to be pretty much superfluous. Interoperability with REST is even better than SOAP. I’ve done a lot of BlackBerry programming in my days. The BlackBerry runs on J2ME. J2ME doesn’t like SOAP (or at least it didn’t when I was working with it). And I don’t like to have to build huge, error-riddled XML strings every time I do a request to the server. But J2ME likes HTTP. And it likes GET and POST and DELETE and all those other HTTP verbs that make our lives so much richer. And REST doesn’t need more than that to work. It will literally work with any client that knows how to set up a HTTP connection, at a fraction of the cost in time, complexity and maintainability.
I am sure you’ve noticed I like REST. And I don’t like SOAP. But in all fairness, SOAP isn’t evil. It’s just horribly over-used. There’s more roads that lead to Rome. And to me, REST is like flying business class while SOAP is like taking the bus (and if you know the state our public transport system is currently in, that’s saying something).
I haven’t mentioned JSON yet. As Peter puts it, JSON is XML with anorexia. Strip away those pesky tags and you are pretty much left with JSON. JSON is key-value pairs. JSON is data centric where XML is document centric. And that can make a pretty big difference if your bandwidth is severely limited. As my colleague pointed out, JSON doesn’t support attributes. But who needs those anyway? Attributes in XML are syntactic shortcuts for having to write full tags. See? Even the XML people think XML is bloated.
I will be toying around with REST and JSON more in the future. More to come.
UPDATE: Peter has posted the link to his two presentations here.