97 of 98 people found the following review helpful
on November 23, 2010
Format: PaperbackVerified Purchase
If for no other reason, you should buy Land of Lisp because of the extreme levels of unadulterated nerdery filling its pages. The price of the book is almost worth that very spectacle alone. However, as an added bonus the content of the book is top drawer. The first incarnation of Lisp was discovered by John McCarthy over 50 years ago, so it's difficult to imagine that a book on the subject bringing a fresh perspective, but Land of Lisp pulls it off in spades. The book manages to carve its own unique niche in the Lisp book landscape through a masterful blend of cartoons, game development examples, interesting prose, and a highly sharpened whit.
The author, Conrad Barski M.D., takes the reader through a whirlwind tour of Common Lisp and some of the fundamental principles of game development, but interestingly enough it never feels rushed. He accomplishes this feat by sticking to a very important strategy summarized as, "providing something useful at every stage". That is, every example in the book is meant to fit into the context of the larger game examples (e.g. a text adventure, Dice of Doom, etc.) while simultaneously teaching a lesson about Common Lisp *and* provide utility in isolation. It's really a thing of beauty the way that Mr. Barski manages to build useable games piecemeal while teaching important concepts along the way. To illustrate what I mean, let me give an example. The Dice of Doom game example starts with a very small 2x2 board and the program parts needed to represent it. Mr. Barski then builds pieces on top of this substrate to generate positions, while extolling the virtues of decoupling the logic of the game from its representation. It's at this point that the game is playable against a human opponent, but at no previous stage was the code left in a state of flux -- each one was fully amenable to tinkering, tweaking, and experimentation. As an added bonus, the whole implementation by this stage was an incredible 13 lines! (that is actually not true, it's more than that, but by using Common Lisp the implementation was incredibly concise) As if this feat was not impressive enough, Mr. Barski then adds game AI into the mix while explaining the famous minimax search algorithm. He then makes the game more efficient using some techniques common in functional programming, including: closures, memoization, tail-calls (with caveats), and lazy programming. As expected the game itself becomes more feature rich as these lessons progress as stronger AI (i.e. better evaluation) is added, more efficient search techniques are introduced (i.e. alpha-beta pruning), and heuristics are used.
All in all, I am very impressed with the quality of Land of Lisp. As a co-author of a Lisp programming book I appreciate the amount of effort required to pull off a genuinely unique book -- I would be happy to achieve a fraction of the quality of Land of Lisp. This book will appeal to the long-time Lisper and the neophyte and I highly recommend buying it today.
25 of 25 people found the following review helpful
Not since the long out of print "A Fortran Coloring Book" by Roger Kaufman and MIT Press has there been a programming language textbook that was this much fun :-) Lisp is a powerful, self-extensible language; it is the second oldest programming language in continuous use; its implementation was based on a 1958 mathematical paper by John McCarthy on the Lambda Calculus. It also for many years was the main language taught in MIT's basic course for Computer Science 6.001 the "Structure and Interpretation of Computer Programs".
While this book would be worth purchasing for the Nerdly Jokes and Comics by themselves, it is a full but easily paced treatment of a language that allowed the implementation of most Artificial Intelligence research. The easy, carefully designed pedagogy (teaching) follows the development of several entertaining and challenging games including 1980's style text adventures (like Zork and Adventure). But advanced topics are covered in some level of depth with examples including development of a HTTP server, a full chapter on Functional Programming, and another on LISP Macro's and the development of Domain-Specific Languages (DSL's). Some Artificial Intelligence methods such as MINIMAX are briefly covered in the game examples developed in this book. Reader's seeking some understanding of Functional Programing will achieve this understanding in a widely used and classic programming language rather than the more recent and arcane Haskell.
This is a fun and relatively easy ride through one of the oldest higher-level programming languages and one with considerable life still in it. It could form the basis of a child's early programming background or a comprehensive adult's introduction to a powerful Computer Science tool. It is the interesting project of an MD's interestingly twisted obsession and valuable to anyone interested in techniques of programming. A great read...
--Ira Laefsky, MSE/MBA
IT & HCI Researcher and Consultant formerly on the Senior Consulting Staff of Arthur D. Little, Inc. and Digital Equipment Corporation
31 of 33 people found the following review helpful
on April 18, 2011
Format: PaperbackVerified Purchase
As a person who doesn't know Lisp, I bought this book hoping it would be a good place to start learning, but I feel like a person should have some familiarity with Lisp before reading this. I'm 6 chapters in and the pacing seems weird. I flew through the first 3 or 4 chapters but around chapters 4 or 5 new concpets started getting introduced really quickly. Also, I wish there was more emphasis on where were going with the game when coding it. I feel a little lost while I'm writing the code. I've concluded that the best way to go through this book for me is to read each chapter, then read it again while working through the code. I guess I just need a little more hand holding then this book provides. It is funny, I love the cartoons and I think if someone had a little familiarity with Lisp it would be a great book for them. I'd also like to see programming challenges at the end of each chapter to help reinforce what was learned. At the end of the day this book isn't bad but I'd start with The Little Schemer (which I'm reading now and is awesome), then move onto one of the free Lisp books online, then read this.
24 of 26 people found the following review helpful
on November 12, 2010
This is an amazing book. If you are interested in seeing what Lisp is about I would argue that this is the best possible place to start.
Although there are many wonderful books about common lisp, Land of Lisp stands above others for beginners because its explanations are clear and its fun to read. And, if you need a break from reading, perhaps you can play a game - one you just wrote.
11 of 11 people found the following review helpful
on December 19, 2010
Format: PaperbackVerified Purchase
I'm already fairly expert at Scheme and Clojure, so I already know how to "think in LISP". Consequently, I can't really judge how effective the book is for self-learners who are learning LISP and/or programming for the first time. I suspect the book may move at too brisk a pace for true beginners, but I'm not certain.
As a teacher of computer science, I tend to prefer teaching out of books with a coherent pedagogy. How to Design Programs is my favorite textbook. Simply Scheme is another good one.
Land of Lisp doesn't seem to be grounded in any kind of modern pedagogical philosophy. Instead, it has a kind of retro feel that is appealing in its own way. This book takes me back to the 80s, learning how to program by typing in complex BASIC programs out of magazines and books. Many of the programs I typed in, I didn't understand 100%. But each time I entered a program, I learned something, and then by tweaking the programs and seeing what it would do, I learned a little more. One of my favorite middle school memories is the time I managed to understand a text adventure BASIC program well enough to write my own. Land of Lisp, in fact, has code for a rudimentary text adventure engine, as well as a blatant "Retro type-in game" of Robots that fits compactly in less than a page of code. So it's easy to see why this book evokes in me a sense of nostalgia.
I think Scheme is a better language for learning programming than Common Lisp. Common Lisp lacks a bit of Scheme's elegance, and it's just harder to get a Lisp environment up and running. But Land of Lisp doesn't make any apologies for Common Lisp's quirks. On the contrary, it revels in the cars and the cdrs, and the convoluted loop macro and format strings which allow you to write some ridiculously concise code (like the retro type-in robot game). The book repeatedly brags about how amazing Lisp is, sometimes to the point of overstating the case for dynamic, functional languages. This is not a book that will attract non-programmers to programming, but for that rare breed of person who was "born to program", the book has an infectious enthusiasm for programming in general, and Lisp specifically.
In my mind, the truly special thing about Land of Lisp is its inspired collection of engaging and well-chosen projects, which are quite a bit different from the run-of-the-mill exercises in a typical textbook. As a teacher, I am glad to own this book because I'm always on the lookout for great project ideas for my students. A book with one great project is usually worth the price -- this book has several! I intend to use these project ideas with my Scheme students. Obviously, the programs translate the easiest to other Lisp dialects, but even if you don't teach Lisp, I'd recommend purchasing this book and trying to port these projects to your favorite language. Orc Battle, for example, should be doable in any object-oriented language. A number of the projects would probably work well in Python. I would advise against trying to tackle these projects in Java (the resulting programs would be too verbose), but a modern multi-paradigm variant of Java, (e.g., Scala), should work just fine.
10 of 10 people found the following review helpful
on November 22, 2010
Land of Lisp is an intermediate-level book that teaches Lisp by way of game programming. Interspersed with light-hearted illustrations, LoL is a real page-turner and is one of the most interesting programming books I've read. Important Lisp concepts such as macros, higher order functions and generic programming are clearly explained. One whole chapter is devoted to Lisp being applied to Domain Specific Languages, which is highly applicable and relevant to modern web programming. Along the way, the author also teaches fundamental concepts such as recursion (although not as much emphasis on this as compared to Scheme, for example), code reuse (the "Don't Repeat Yourself" principle), functional programming, closures, basic algorithms like MiniMax, depth-first search and a whole lot more.
Because the author assumes the reader has a basic grasp of his operating environment, setting up a Common Lisp implementation (editor/compiler) is not covered in detail. If that idea is too daunting for you, then you may wish to refer to the beginning chapters of Peter Seibel's Practical Common Lisp or David Lamkin's Successful Lisp as a starting point and come back to LoL when you're more comfortable with how things work.
All in all, I would say, "buy this book!". Highly recommended.
9 of 9 people found the following review helpful
on May 4, 2011
Format: PaperbackVerified Purchase
Conrad Barski's book 'Land of Lisp' is a first rate book for learning Common Lisp. I gave the book four stars simply because of a personal prejudice against giving five stars to any book except for timeless masterpieces.
Lisp is hard, no doubt about it. I've read about ten Lisp books so far, and have written a fair amount of Lisp code, and I can't say that I have a grasp on it. Part of the problem is that Lisp doesn't have an authoritative implementation or development environment. Barski does a fair job of getting a novice up and running, not as good a job as Peter Seibel in 'Practical Common Lisp', but a much better job than Norvig, or Graham, or most of the others.
Barski also hasn't written a textbook or reference, which is both good and bad. I would strongly recommend the reader supplement his reading with both a text (Touretsky has one available online at no charge) and a reference (the Lisp Hyperspec, for example). Some might feel that this lack diminishes the book, but I see it as a judgment call based on the fact that one book can't contain everything.
The strongest part of LoL, in my opinion, is that Barski presents an attractive learning environment with intelligent projects.
The weakest part of the book is that it doesn't cover Lisp in any systemic way, but this is only a fairly minor defect, given that more systemic treatments are readily available.
I don't know whether I would recommend LoL for a complete beginner who wants to self-learn Common Lisp -- I think a traditional text (like Winston & Horn, Lisp 2nd) might be more appropriate for a complete novice. However, I certainly think that LoL would be a great second book for a self-learner.
And finally, I would like to thank Conrad Barski for giving us such an engaging treatment of Common Lisp. LoL is really a first class book.
12 of 13 people found the following review helpful
on November 26, 2010
The bottom line is that this book is fun! By choosing to teach Common Lisp using 1980s style text games the author has come up with an original and clever idea that avoids all the usual boring examples found in computer language books. Nevertheless, he covers all the important topics (including the hard stuff like macros) with enough detail to explain them well. He eschews talking too much about the theory behind Lisp (e.g. he mentions the lambda calculus but doesn't dwell on it) and that makes the book entirely practical and a good introduction for a beginner.
Since I have experience with Lisp I was a little disappointed towards that end when I wanted more, more, more, but for someone who has no to little experience of Lisp or functional programming this book is wonderful. It's rare that reading a technical book makes you happy, but the author's writing style and cartoons keep you smiling along as he explains what to many people is an esoteric language.
I'd recommend this book strongly as the first book to read on Lisp. After that migrate to Paul Graham's On Lisp.
18 of 21 people found the following review helpful
on November 14, 2010
Format: PaperbackVerified Purchase
I'm a professional software engineer and I am thoroughly enjoying this book, and surprisingly, LISP. I bought the book mostly because I had heard LISP had some strange voodoo that other languages couldn't hope to match (and because the LoL promotional video was awesome!) I never realized what I was missing out on! Talk about a cool programming language. I think I am going to at least prototype some of my smaller work projects in LISP and see if I can convince my coworkers to go with it. Maybe we'll like where it takes us and eventually do some large-scale projects.
Anyway, this has to be the coolest programming book I have ever read. I very highly recommend it.
6 of 6 people found the following review helpful
on February 3, 2011
Ever since I first learned about it, I was eagerly awaiting the release of Land of Lisp. If you have never heard about the book before, have a look at this promotional cartoon music video. Yes, that's right, this book comes with its very own promotional cartoon music video!
Your reaction to this video is actually a pretty good indicator on wether or not you are likely to enjoy this book. If you can't take the cartoons and strange humor, "Land of Lisp" will probably not be for you. If you do however, you'll be relieved that the book is at least as awesome as the video and probably even more.
People believing that Lisp has been dead since the AI winter may be surprised by the release of new book on the language in 2010. They may however have missed the release of Peter Seibel's Practical Common Lisp in 2005, which managed to expose the language to a wider audience again, a feat I think "LoL" might achieve too.
For me the best part about Conrad Barski`s book is its very readable and entertaining style, combined with cartoons and the use of small games as demonstrations of the techniques introduced in the book. I think this is what makes "LoL" really stand out from the other Lisp books: it's neither as academic as most of the texts focussed on Scheme (with The Little Schemer being an obvious exception), nor is it as dry as Seibel's book (which otherwise is a pretty good read) or as dated as Paul Graham's On Lisp which was written while Common Lisp was still in the process of being standardized. For many people "Land of Lisp" may very well be there first contact with the language, and I think with its funny and easy to follow style it may get quite a few people hooked.
The book is structured in 4 main parts, the first of which - called "Lisp Is Power" - serves as a general introduction to the language, explaing the basic syntax and so on. The second part ("Lisp Is Symmetry") introduces the reader to flow control, data structures, input and output, lambda expressions and more. In the process you'll write the first part of a game engine for text based games, a great little version of Hunt the Wumpus called "Grand Theft Wumpus" and "Orc Battle", a small strategy game played in the REPL. The third part ("Lisp Is Hacking") introduces us to the powerful and sometimes disputed "format" and "loop" commands, as well as streams. Game-wise you'll encounter a little simulation of an evolving world as well as "Attack of the Robots", a retro game where your aim is to get rid of some robots by making them collide with each other. The last part ("Lisp Is Science") introduces functional programming techniques, macros, DSLs and laziness. Besides finishing the text adventure started in an earlier chapter, you'll also write "Dice Of Doom", a Dice Wars clone that's the most complex program of the whole book. Last but not least there's an epilogue, where the author gives a brief overview of several important topics that got little or no exposure up to that point, like CLOS or the condition system.
As a final summary I'd say that "Land of Lisp" is a truly great achievement. It's fun to read and does a good job of introducing the reader to the most important concepts of Lisp, by giving a taste of the language's power, without being overwhelming. For more experienced Lispers this might make the book significantly less interesting, since some really nifty things only get mentioned in the epilogue. If you are among them, Seibel's book is probably what you want to read (if you haven't already, which would be surprising). I'd also advise you to not get too excited about the "game development" part of the book, except for the last one all the games are rather minimal and simple, so don't expect writing 3d shooters or anything like that. They are however awesome examples of the concepts introduced in the individual chapters and way more fun than the contrived examples one finds in way too many programming books. For new Lispers or people who need to brush up on their Common Lisp skills (e.g. when migrating from some other Lisp) this comes highly recommend, but even more senior Lispers might want to get a copy, even if it's only for the odd cartoons.