In the preface of Software Language Engineering, Anneke Kleppe writes, “Academic computer science is in danger of slowly becoming an empirical field that studies the advancements being made in the industry”. Web programming as a fundamental platform, open source, and cloud computing movements have wildly democratized software production. Change is happening faster than most academics and vendors can keep up with – let alone attempt to lead.
I bought this book last week at QCon 2009 in London. QCon is special because of its focus on solutions and practices without the usual vendor gravity. Sure, there is some hype lurking in the rafters. But the presenters are genuine problem solvers and conversations are intense, productive, and technical. The conference studies emerging topics in software development that people actually exploit. Those with traction, like functional programming, REST, and agile development gain industry velocity and become a bigger part of following conferences.
QCon disciples epitomize Kleppe’s statements, bypassing the ancient waterfall travelling from computer science through toolkit vendors, application vendors, and then to users. So to me, it was a little ironic that the biggest treat at QCon was actually, um, a computer science academic. Turing Award winner Sir Tony Hoare, who invented both Quicksort (woo-hoo!) and the NULL reference (doh!), gave an outstanding keynote contrasting computer science and engineering. He said that while a scientist pursues the one great story, the engineer pursues many great little stories. Let the scientist seek correctness while the engineer creates dependability. He looks forward to a day that when something goes wrong, the software will be the last suspected cause.
I tend to stay quiet at events like QCon because my software knowledge was self-taught. I worry that someone will throw some formalism at me I will not understand. Also, most attendees are from consultancies or large IT shops, where I work for an enterprise software vendor. My company builds ERP solutions, which are the kind of products that consultants sometimes complain are stuck in the past (while drawing good pay). Issues that resonate for me may not for others.
That fish-out-of-water feeling faded this year, and I have Sir Tony to thank. He said “the engineer can’t afford to be certain of anything … good enough is always good enough”. That said, and with encouragement of others (like @psd), I’m looking to submit an abstract for QCon San Francisco this fall about the Restful Enterprise. We will see how that goes.
Anneke Kleppe’s observation about computer science becoming empirical rather than the agent of progress may someday be true, but Sir Tony raised a point that made me realize, thankfully, that the academic role still has legs. During Q&A at a breakout session, someone asked about the value of proofs to verify programming languages. Sir Tony said that the commercial imperative for proofs was the virus. Viruses reach portions of a program that its normal execution never sees. Testing focuses on cases likely to arise but viruses will eventually exploit a case unlikely to arise. Resolving virus attack vectors will always be an analysis exercise, assisted by formal methods.
I like QCon because the attendees, as a group, are of high caliber, genuinely interested in discussing issues, and know the problems real people face. I also like an event that keeps things simple. Sure, some big vendors sponsor QCon, but they are comfortable staying the background. QCon speakers are the practitioners Kleepe describes as seemingly driving the innovation balance away from academic computer science. The nice thing is that Sir Tony stepped onto his side of the scale and the practitioners simply yielded. Smart people can always recognize the smartest person in the room.
* PS. Many of the session slides are public (some need a password). You can find the links in the conference schedule grid.