
Land of Lisp: Learn to Program in Lisp, One Game at a Time - adulau
http://oreilly.com/catalog/9781593272814/
======
drcode
I'm the author- The book is printing as we speak and should be hitting the
stores late Oct/early Nov. Around that time a lot more info on the book will
also be available at my new site landoflisp.com.

I'm really happy with how it turned out and I hope the new site (which I don't
want to launch before the book is truly ready) will entice more folks to learn
Lisp!

~~~
mahmud
Why don't you come talk about it at the D.C. HN Meetup this Monday?

It would be a pleasure to have you over, Dr. Barski.

<http://www.meetup.com/JoinHNDC/>

~~~
drcode
Sure- I'll be there (I was at the meetup a couple months ago BTW)

~~~
mahmud
Perfect! See you then.

------
lkrubner
Folks looking for a practical place to start with Lisp should consider using
the Emacs editor. I just recently went down this road myself. I am now a huge
fan.

For about 6 months in 2006 I made Emacs my default editor. (Xemacs, actually).
But I did not learn Lisp, at that time, and there are other IDE's out there
that have a nicer GUI. So I started using simple text editors like Kate, and
then sometimes NetBeans.

And yet, for years, I've been wanting to work with a fully scriptable editing
environment. I often have the need to grab a large amount of text data,
transform it in various way, and save the finished product. I kept thinking
that at some point I would learn sed and awk, but I never got around to it.
Usually, if I needed to make some quick changes to text, I'd write a one-off
PHP script to do what I needed.

Then I got interested in Clojure, and through Clojure I got familiar with
Lisp's syntax.

Then it occurred to me to go back to using Emacs. So now it is my main editor,
again, my default programming environment. I use it for everything. And I've
learned Emacs Lisp. Every single day, the combination of Emacs and Lisp helps
me be more productive.

Way back in 1999, I started to learn PHP. One thing that made PHP easy to
learn, back then, was that I did not need to compile it. I only needed to put
it on a server running PHP, and that was most servers. It was an easy
programming environment to step into.

Lisp is like that when you are working in Emacs. You can write a line of Lisp
anywhere you like, then invoke it with a special key command. You can write
quick one-off scripts to move text around inside a file. Or, if you like some
code and want to reuse it, you can just save it as a function and put it in
your .emacs file and then that function is available to you whenever you are
running Emacs.

I have heard of Emacs greatness since at least 1999, and yet somehow, not till
this year did I dive deep and learn both it and Lisp. I realize now,
everything that people have said about Emacs over the years, it really is true
- to have a programming environment where every element of the environment can
be programmed and re-programmed using the language of the environment gives
you an extremely powerful tool.

If anyone is looking for a simple place to get started with Lisp, I would say,
simply, use Emacs. We all need to edit stuff, and so your work will provide
you with a practical place to practice your Lisp, everyday.

Those of you who prefer some kind of GUI, look into Xemacs. It can be set up
to respond to your mouse-clicks.

Also, if you'd like to learn about Emacs and Lisp, the book that Robert J
Chassell wrote is a very good introduction:

[http://www.amazon.com/Introduction-Programming-Emacs-
Lisp/dp...](http://www.amazon.com/Introduction-Programming-Emacs-
Lisp/dp/1882114027/ref=sr_1_1?s=books&ie=UTF8&qid=1287092649&sr=1-1)

~~~
sandGorgon
Dont want to start a religious war here, but how does slimv
(<http://www.vim.org/scripts/script.php?script_id=2531>) for vim compare ?

~~~
DeusExMachina
I never used slimv, but I started developing in Clojure using Vim and
connecting it to a repl as explained here:

<http://writequit.org/blog/?p=386>

I do not know how it compares to Emacs and Slime, but I'm quite satisfied by
it.

------
wwortiz
Previously: <http://news.ycombinator.com/item?id=841117> including comments by
the author.

~~~
adulau
Thank you for the reference. I hope that the publishing date is still October
2010... as it was foreseen already 1 year ago.

~~~
drcode
Yes that's accurate- It's all done and printing as we speak.

------
vukk
Since the author is Conrad, the well balanced human, and the book is named
LoL, does it show how to implement the first Lands of Lore? :)
[http://en.wikipedia.org/wiki/Lands_of_Lore:_The_Throne_of_Ch...](http://en.wikipedia.org/wiki/Lands_of_Lore:_The_Throne_of_Chaos)

~~~
zephyrfalcon
Coincidentally (or maybe not), Let over Lambda has the same acronym...
[<http://letoverlambda.com/>]

~~~
drcode
You just blew my mind :-)

------
metamemetics
Is this going to be using Lisp bindings for cross-platform graphics libraries
like SDL? ( <http://code.google.com/p/lispbuilder/wiki/LispbuilderSDL> )
Here's to hoping you get to build 2D/3D games and not 1970s style terminal
games you will never show anyone.

~~~
drcode
The book includes a chapter on building a crude web server and then uses it to
build a graphical HTML5 game as a finale.

I considered options like SDL, but the fact is that there's so many graphics
APIs in the world (and in the Lisp world) that I didn't want to force the
reader to learn one they might not ever have practical use for.

Knowing how a web browser & HTML5 work, on the other hand, is universally
useful.

~~~
metamemetics
> _build a graphical HTML5 game as a finale_

sounds great, I'm interested.

My favorite programming class was an intro course in python where we generated
fractals, programmed maze solvers, built conway's game of life, and had an
option of creating a 3D pool game for final project, etc:
[http://cs.northwestern.edu/~akuzma/classes/EECS110-s10/index...](http://cs.northwestern.edu/~akuzma/classes/EECS110-s10/index.htm)

Although the course is intended for people who have _never programmed before_
, it allows you to do a lot of cool stuff by deliberately not explaining how
the libraries used are implemented. I don't think using external libraries in
tutorial books is bad, as long as you change\vary the library being used each
problemset or chapter. Then no one library is enforced as canon. The student
just learns the generalized methodology of hooking in with other people's code
and writing a decoupled application, which are essential practical
programming.

I think it's OKAY to risk throwing in slightly off-topic components in a
learning-by-doing book. The best "django" book I've seen had a chapter all
about jQuery\JavaScript.

Games are still always good problem domains for enhancing student engagement
even if they are text-based. Having now looked at the sample chapter, I'm sure
you did a great job and I'll put it on my to buy list.

------
kenjackson
Dr Code, will this book be on Safari Online? How do you get paid if I read the
book online or have it bookmarked as one of my favorites?

~~~
drcode
I guess I get paid some kind of fee from your subscription :-)

Haven't seen that website before- pretty cool.

------
cal5k
I love the concept - is there anything like this for Python?

~~~
zedshaw
Check out his book since it looks like it might be good, but if you really
want to learn Python and need a good place to start, I've written one:

<http://learnpythonthehardway.org/>

It's free, you can download a PDF, and you can hit:

<http://learncodethehardway.org/>

To ask questions if you get stuck.

If you already know how to code it might be too simple for you.

~~~
cal5k
Thanks for the suggestion :-) I had a ton of experience with C and Java back
when I was in high school and somewhat through university, but after I
finished university I fell out of it. Your book looks like a great
introduction for a complete newcomer to programming, but I've picked up "How
To Think Like a Computer Scientist" and it seems to be more on my level.

You are an amazing person, however, for releasing all of your hard work for
anyone to learn from!

------
Shostakovich
Why "Lisp" if it is book about "Common Lisp" only? It is misleading.

~~~
adamc
Is not Common Lisp a Lisp?

~~~
Shostakovich
... 'Europe' book about Britain only.

~~~
lispm
In the main heritage line of Lisp (Lisp 1.5, MacLisp, Lisp Machine Lisp, CL),
Common Lisp is still THE common Lisp. One can run run old code from the 1960s
with relatively little changes. Neither with Scheme and Clojure you can do
that. Both are Lisp dialects. Clojure is basically incompatible with every
other Lisp and porting Lisp code to and from Clojure is basically done by
completely reimplementing it.

So, Common Lisp is not THE Lisp, but the common Lisp.

