Tuesday, January 06, 2004

< geek on >

I'm reading a book called "The Wiz Biz" by Rick Cook. I'm also reading Sun Tzu's "The Art of War" as part of my ongoing attempt to read something other than fantasy/sci-fi pulp, but that's a separate review. The concept of "The Wiz Biz" is that a computer programmer gets summoned into this other world by a great wizard and is drafted into a war against the Bad Guys. He then uses his knowlege of programming to write a magic compiler which he programs "spells" into.

The concept is really cool but I'm stuck with a dilemma. Cook sprinkles the story with bits and pieces of jargon and the occasional insider joke. At one point the main character creates an interpreter demon that pops into existence looking like Gerald Sussman, and he wonders to himself if the little demon speaks with a lisp (haha)[1]. Unfortunately, the author never goes into the depths of detail I would require to get truly involved in the concept.

For a self-taught programmer or someone in their first year of comp-sci education, the book would be wonderful. But Cook relegates all the internal workings of the magical compiler to one or two sentences - "Wiz slaved over the compiler and debugger, working out the kludgy hacks until his spell functions began to work properly" sort of thing. Beginners tend to treat compilers the same way - plug in source code, and magically, voila! A program appears. But for someone who has actually written a compiler, I want to know what the hell he is tokenizing[2]. What are the basic assembler-style magical commands? Are they atomic or is there a base unit of magical information like a bit?

It's very frustrating to have such a promising concept with so little followthrough. At the same time I realize if the book was as geeky as I want it to be it would never sell. You can't write a fantasy novel about frame allocation and type-hierarchies and expect it to sell well to the general pulp audience. I just wish you could, cause I would love a book like that.

[1] Gerald Sussman is a famous computer scientist who wrote one of the quintessential books about the structure of programming languages. The book uses a language called Lisp for its examples.

[2] Or would that be tolkienizing?

< / geek off >

No comments: