

Ask HN: Lisp as a first language? - TheDoctorWho

Hey all I decided to learn Lisp as my first language is this a good idea and can it be used to make games like pacman and space invader?
======
kls
You may want to give Racket a try, it is a LISP dialect and geared towards
learning LISP
[http://en.wikipedia.org/wiki/Racket_%28programming_language%...](http://en.wikipedia.org/wiki/Racket_%28programming_language%29)
. I wish I had learned LISP first it is so much different than the languages
that get their linage from C or smalltalk. It frees you from the constrains of
other languages and requires a lot of deprogramming to learn once you know
another languadge. It's not going to be the easiest language to learn as a
first languadge but there are a lot of advantages in doing so. Racket will
help make it easier as it is designed as a teaching languadge.

~~~
TheDoctorWho
What makes you say that?

~~~
kls
LISP is an expressive languadge and is very free form. JavaScript is very
similar in their ability to manipulate even the core structures of the
languadge and run time. As such they are very powerful. They give you freedom
to do things that you just can't in other languages. They are free from the
dogmatic constraints that other inventors choose for their systems such as OO
or functional, etc. If ou want to write OO in LISP you build or download and
OO framework, and you can do OO functional same thing. You can literally
invent a sub platform within the run-time. This is also the reason that it
becomes harder to learn, there is no OO standard or functional standard etc.
and due to the nature of LISP developers there probably never will be one, as
such it can make learning difficult. If it where not for Racket I would not
recommend LISP as a first languadge.

Finally as a note to those that know LISP, I know that LISP has CLOS for
Objects but for the subject of this discussion it is safe to say that LISP
does not have a standard OO implementation CLOS is an object system but it is
so different from say Java or SmallTalk that I don't think it is fair to call
it OO to a person just learning as it is not the type OO that people think of
when they talk about OO.

------
pavelludiq
There are several lisp dialects. Some of them have even been used for
comercial games. Common lisp and clojure(the two most popular dialects) can be
used to write pretty much any kind of software. But as a first language, I
don't know. Scheme(the third most popular lisp) was my second language, and i
had no trouble with it, but i already had a year of python under my belt. i'd
say learn python, ruby or javascript first.

~~~
TheDoctorWho
So then what is your suggestion for a first language and why is that your
suggestion?

~~~
pavelludiq
Doesn't matter too much. Any language that i listed will do the job. Just pick
one and start writing code, any one of them will make learning lisp later
easier.

~~~
TheDoctorWho
Thanks for the advice

