So drunkenbatman has posted another enthralling interview, this time with Wil Shipley of Delicious Monster. As always it’s an amazing read, so if you haven’t read it, grab a drink (alcoholic of course) and settle down for a nice long read.
Wil’s thoughts on heuristic algorithms are quite interesting. Throughout my degree (and indeed most formal education from what I can tell) much focus has been on provably correct algorithms and provably correct code. Apart from proving algorithms mathematically being boring as hell, in most cases relating to desktop computing the code is simply either too large to prove, or can’t be proved because of the amount of other code is interacts with.
That this sort of proof is a dead end in computer science mirrors what I’ve thought on this for quite a while (of course having to do it for a Uni course tends to increase this feeling). On the other hand, I can certainly see where this sort of proof is relevant — embedded systems involved in medical treatments or nuclear power plants for example. For me at least, this just isn’t what I’m working with.
Perhaps the most interesting decisions that come from this sort of idea is considering what parts of an application should be implemented using this style of programming, and what parts really need to be implemented in a provably correct style (maybe not mathematically provable, because that’ll put you to sleep, but at least logically provable). This decision can make a huge difference to how parts of a program can be implemented, but clearly the concept can’t apply to all parts of most programs, but it is certainly something interesting to keep in mind.
Ultimately, this is a way of providing better feedback to the user to allow them to do what they want, without feeling that they need to fight the computer, clearly something that every application should aspire to.