Tom reviewed Software Design for Flexibility by Chris Hanson
Interesting ideas, less interesting examples
3 stars
This book was a really great read. It was hard for me to get through, but I'm really glad that I did in the end. I didn't do any of the exercises, because that would've meant I'd be reading it for the next 5 years most likely.
This book starts off with some very nice, but not uncommon ideas about writing flexible code. The initial example of writing a DSL in Scheme for regular expressions was really nice and engaging for me, but then after that it goes into combining arithmetics together. That is where I had some trouble, probably because I never actually got a Computer Science degree. It does have a few other nice examples that really struck home. And of course it is quite fun to see how a generic dispatch system is set up from scratch in Scheme, for example.
This book was a little bit …
This book was a really great read. It was hard for me to get through, but I'm really glad that I did in the end. I didn't do any of the exercises, because that would've meant I'd be reading it for the next 5 years most likely.
This book starts off with some very nice, but not uncommon ideas about writing flexible code. The initial example of writing a DSL in Scheme for regular expressions was really nice and engaging for me, but then after that it goes into combining arithmetics together. That is where I had some trouble, probably because I never actually got a Computer Science degree. It does have a few other nice examples that really struck home. And of course it is quite fun to see how a generic dispatch system is set up from scratch in Scheme, for example.
This book was a little bit too academic at times for my tastes, and its use of language was a bit out of my reach at times (I'm still not sure what degenerative algorithms are or what perturbing my data means). However I definitely got out of it what I was hoping to: It got my brain thinking about new possibilities and ways of organizing code and interactions. Perhaps the next time I read it I'll have a better grasp of some of the concepts explained in here.
I would probably recommend this book to people who aren't only interested in the practical side of programming, but are also interested in the theoretical side.