Land of Lisp
vsedach writes "Remember the 1980s and BASIC, when programming was simple, brains flew through space, and everyone ate lasers? Computer magazines came with code listings, and classics like David Ahl's BASIC Computer Games offered a fun and easy way to get started in computer programming. Conrad Barski remembers, and with Land of Lisp, he's set out to demystify programming in the 21st century." Keep reading for the rest of Vladimir's review.
Land of Lisp: Learn to Program in Lisp, One Game at a Time!
author
Conrad Barski, M.D.
pages
504
publisher
No Starch Press
rating
10
reviewer
Vladimir Sedach
ISBN
978-1-59327-281-4
summary
Learn to Program in Lisp, One Game at a Time!
This is no small feat. Modern computers don't come with anything that looks like BASIC. Getting started with a "real" programming language like Java requires installing and learning hundreds of megabytes worth of compiler and integrated development environment. Barski's thesis is that Lisp is a refreshing alternative - it offers BASIC's ease of getting started (get a prompt, type in code, and it works), while providing a combination of modern features unmatched in other programming languages.
The first thing that immediately jumps out about Land of Lisp is that it has a lot of comics. The book is an outgrowth of Conrad's Casting SPELs in Lisp illustrated online tutorial, which originally appeared in 2004 (incidentally, around the same time as why's (poignant) guide to ruby, probably the most famous and epic programming language comic book). The comics are humorous and irreverent - if you're a C programmer, you might be surprised to know that you're a Cro-Magnon fighting the COBOL dinosaur.
Despite the silly humor and Barski's approach of introducing programming completely from scratch, Land of Lisp builds up to cover topics like graph theory, search algorithms, functional and network programming, and domain-specific languages. All throughout, the book emphasizes various techniques for doing I/O. The topics covered will leave the reader with a solid understanding of what modern programming entails and a good basis from which to explore either application or lower-level systems programming.
The most unintentionally impressive aspect of Land of Lisp is that it manages to completely explain web programming. No more hiding behind complicated software stacks and impenetrable web server packages - chapter 13, titled "Let's Create a Web Server!," does exactly what it promises, in only 15 pages. Later chapters introduce HTML and SVG to build a graphical game as a web application. If nothing else, this book will leave the reader with all the necessary basic skills and total confidence in their understanding to build real-world web applications.
Other introductory programming books use Lisp, but none fall into the same category as Land of Lisp. Abelson, Sussman and Sussman's Structure and Interpretation of Computer Programs, arguably the greatest introductory programming book ever written, requires a solid math background to understand the examples. Felleisen et alia's How to Design Programs offers a much deeper introduction to programming than Land of Lisp, but is an academic textbook, and hence lacks funny cartoons and may be boring. Friedman et alia's The Little Schemer is a favorite of many, but doesn't have LoL's real-world applications.
Land of Lisp is an excellent book for someone who wants to learn how to program, for web programmers who want to move up out of their niche and start learning about CS theory and systems programming, and for anyone who is puzzled about what really goes on behind the web and wants to learn what web programming is really about. Experienced programmers who want to jump into using Lisp are probably better off with Peter Seibel's Practical Common Lisp, though.
Watch Conrad's hilarious promotional music video for the book.
You can purchase Land of Lisp: Learn to Program in Lisp, One Game at a Time! from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
The first thing that immediately jumps out about Land of Lisp is that it has a lot of comics. The book is an outgrowth of Conrad's Casting SPELs in Lisp illustrated online tutorial, which originally appeared in 2004 (incidentally, around the same time as why's (poignant) guide to ruby, probably the most famous and epic programming language comic book). The comics are humorous and irreverent - if you're a C programmer, you might be surprised to know that you're a Cro-Magnon fighting the COBOL dinosaur.
Despite the silly humor and Barski's approach of introducing programming completely from scratch, Land of Lisp builds up to cover topics like graph theory, search algorithms, functional and network programming, and domain-specific languages. All throughout, the book emphasizes various techniques for doing I/O. The topics covered will leave the reader with a solid understanding of what modern programming entails and a good basis from which to explore either application or lower-level systems programming.
The most unintentionally impressive aspect of Land of Lisp is that it manages to completely explain web programming. No more hiding behind complicated software stacks and impenetrable web server packages - chapter 13, titled "Let's Create a Web Server!," does exactly what it promises, in only 15 pages. Later chapters introduce HTML and SVG to build a graphical game as a web application. If nothing else, this book will leave the reader with all the necessary basic skills and total confidence in their understanding to build real-world web applications.
Other introductory programming books use Lisp, but none fall into the same category as Land of Lisp. Abelson, Sussman and Sussman's Structure and Interpretation of Computer Programs, arguably the greatest introductory programming book ever written, requires a solid math background to understand the examples. Felleisen et alia's How to Design Programs offers a much deeper introduction to programming than Land of Lisp, but is an academic textbook, and hence lacks funny cartoons and may be boring. Friedman et alia's The Little Schemer is a favorite of many, but doesn't have LoL's real-world applications.
Land of Lisp is an excellent book for someone who wants to learn how to program, for web programmers who want to move up out of their niche and start learning about CS theory and systems programming, and for anyone who is puzzled about what really goes on behind the web and wants to learn what web programming is really about. Experienced programmers who want to jump into using Lisp are probably better off with Peter Seibel's Practical Common Lisp, though.
Watch Conrad's hilarious promotional music video for the book.
You can purchase Land of Lisp: Learn to Program in Lisp, One Game at a Time! from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
To get the most out of LISP, you really have to approach it with a mindset particularly distinct from most programming. It also happens to be distinct in nearly requiring recursion that is generally not part of an 'easy' getting started with programming. That and most people will club themselves over the head trying to sort out how many close parentheses are needed when they write something *particularly* 'clever'.
If in modern Windows, Powershell is a good starting point, if in Linux, Python. Unlike LISP, both yield immediately marketable skills and are easy to start toying with basics and do not require a lot of knowledge of where to go to get it running, it already exists on your platform (almost certainly).
I do agree that 'web frameworks' have mutated the relatively straightforward nature of underlying http into a frightening looking mystery to the uninitiated, but at least some in the industry are swinging back to the basics and discarding some of the oddly complex schemes over HTTP.
XML is like violence. If it doesn't solve the problem, use more.
The great thing about learning Lisp as a first language is the lack of marketability, because it's to about setting you up on a path, it's about giving you fundamentals.
As noted there is enough syntactic sugar now to not cause the kinds of rough work that used to be around, and I think the brevity of the language can be good for people in that there's not a ton of syntax to learn to actually get something real built.
Once you have programmed in at least two languages, you have a much better idea of what you are doing I think. So given that you'll learn some "practical" language to do something, let Lisp be that "other language".
"There is more worth loving than we have strength to love." - Brian Jay Stanley
What Lisp promised then is what Python promises now. With one difference, in that Python respects the visual limitations of humans.
Different from parentheses, it's very easy to undo a bunch of indentations, just put the left margin where you want it.
Well, if only the TAB character had never been invented... TAB is a kludge to make a typewriter behave sort of like a spreadsheet but, unfortunately, it fucks up the excellent "Don't mix content with presentation" principle.
Saying "Don't mix content with presentation" is pretty rich from a Python advocate, when Python does precisely that. It mixes presentation (what code looks like) with content (what code does).
Besides, don't you know that in Lisp, parentheses are indentation symbols? They tell how the code should be indented, and changing indentation is just a matter of changing parentheses. If anything, adjusting indentation of Lisp code is easier than adjusting indentation of Python code.
Seriously, guys, who in their right mind believes there have been no major advances in programming languages since Lisp?
Oh, I'll admit that 99.9% of the supposed "advances" have been horseshit...
Seastead this.
Python respects the visual limitations of humans
It does exactly the opposite, unless humans can evolve to literally "see" whitespace characters.
The zen-like empty indentation technique drove me mad when I had to maintain some python software. It reminded me for exactly the thing I hated most about the little Fortran I had done in school, the punch-card like need for rigid character placement in something that was, to my mind, meant to be a totally logical construct.
As another poster noted, Python mixes presentation with content and that makes it really awful to do refactoring, or for tools to be able to offer you meaningful help in reformatting. A code reformatter can take a mess of code differently indented and make it correct according to your preferred spacing. It can also take pasted code and place it at exactly the right level of indentation. What is a code formatter to do when you try to paste code directly after an indented line of python? Any guess can be wrong, and all it CAN do is guess.
I actually like the language otherwise, I like the constructs, but the whitespace thing makes it basically unusable for me in practice. At this point if I want to learn a nice alternative and powerful language, I'm going for Erlang.
"There is more worth loving than we have strength to love." - Brian Jay Stanley