||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Lisp, Scheme, Racket. Programming
Title: Realm of Racket
Author: Matthias Felleisen, Conrad Barski, David Van Horn et al
Publisher: No Starch Press
Verdict: Interesting and engaging introduction to a Lisp-style programming language
I have to admit that I've always resisted the lure of Lisp, despite the fact that I enjoy exploring different programming paradigms. While it has never quite gone away, the last few years have seen a recurrence of interest in Lisp-style languages, particularly Scheme and Clojure. Racket is a relative new comer to the field, but is gaining traction as both a language and integrated development environment. Which brings us to this book, which promises to teach us programming 'one game at a time'.
The book is written by three university professors and a group of their students, so the unusual approach to the subject extends to how the book is put together and not just to the content. The aim is clearly to teach the non-expert and to make that learning fun - though the games themselves are not that challenging or engagins (at least not to this reader). However, this is clearly one of those books that you have to read in front of your machine - it's about following along and playing with the language. And, for those of us who're used to other languages, the Lisp/Scheme/Racket way of doing things takes some considerable getting used to. In some ways it's probably harder for the experienced programmer than for the absolute beginner.
Following along means using the DrRacket interactive environment, which includes a 'read evaluate print loop' environment that gives you a console with a prompt and the chance to enter expressions and see what they evaluate too. For old hands who've used similar REPL environments in the past, it's a great way to encourage experimentation, prototyping and having a bit of geeky fun (come on, it is fun to play with data structures and see what happens when you try this or that...). The book includes lots of examples, though for some reason these are illustrated in pen and ink rather than as screenshots, which is a bit odd and doesn't really add much to the content. It feels like someone's decided that it's important to be 'quirky' as part of the appeal of the book, but there's no real need, the language is plenty quirky and different to grab the reader's attention.
The games are largely of the logic type - guess my number, that sort of thing - but the games do provide very convenient hooks to explore deeper and deeper into the core concepts of the language. Those looking for shoot-em ups will be disappointed, but you do get to take the first steps to provide GUIs as well as text console programs. And in terms of concepts, the book covers basic syntax, data structures, conditionals, recursion and so on. There's also more advanced topics, including the dreaded lambda calculus, lazy evaluation, memoisation and more.
Overall there's a lot going for the book and it does a great job of selling the language and the environment. If you're thinking of learning a Lisp then this would be a great place to start. That said, for this reader at least, Racket remains of intellectual interest only - it's not going to supplant Java, Python and the rest. However, should the right problem ever arise, well, who knows...