views:

607

answers:

7

As many other people interested in learning Lisp, I feel the resources available are not the best for beginners and eventually prevent many new people from learning it. Do you feel it could be created some sort of community, with a website, forum or something, that provides good (as in quality) resources/tutorials, for Lisp users, possibly translated to several idioms? That way beginners that don't have the necessary skills for writing tutorials could help translating them. Is it a bad idea or is it something that could be accomplished? Give me some feedback or flame me :D

A: 

The problem with LISP is that there are so many variants. LISP is really a family of languages. Unlike Java or C#, say, there is no standard for LISP. Writing generic tutorials would be very difficult.

Mick Sharpe
The C family of languages (C, C++, Objective C, ...) also does not have a standard - but members may have a standard. Scripting languages also don't have a standard. Same for the Lisp family of languages: Common Lisp and Scheme both have standards. Excellent books exist for both Scheme and Common Lisp.
Rainer Joswig
True but meaningless. You don't learn Lisp, you learn "Common Lisp" or "Scheme" or "Clojure" or "Emacs Lisp".
jrockway
By that measure I'd say CL is in the lead: it has fewer standards! CL has basically 2 versions, and the older one is almost completely unused today. C# is up to 3 versions (4 in testing now?), and Java is up to about 7. Look at all the C# answers here that start "If you're using .NET 3.5, then ..." or the C answers that begin "On C99, you can do ...". But if you learned Common Lisp in the past 15 years, you're up to date -- no need for "What's new in Common Lisp 2010!" tutorial updates every year.
Ken
Actually by Lisp I meant something like a "central" place for resources, possibly divided by implementation and not generic tutorials. Or, on the other hand, something dedicated to a specific implementation only. Either of it, it was just an idea.
Rui Costa
+3  A: 

Lisp has been around for a long time, there are many (fragmented) communities. There's really no way to "create" a common community, especially from the outside.

Paul Graham would be a likely (IMNO, N=naive) person to potentially unite a large lisp community, given his popularity among younger programmers, as well as his background in lisp (writing On Lisp). However, he has chosen to create a yet another dialect of lisp, Arc.

Many folks have written about the fragmentation of the Lisp community, or Lisp's inability to "catch on". Some examples: here, here, here, and here. So, while your idea is a good one, it is probably fruitless.

That being said, don't let me stop you from rising up and being such a uniting figure in the Lisp community.

As far as existing tutorials, the Emacs Wiki is a good starting place for learning Emacs Lisp. And for an introduction to Scheme - as well as a good introduction to programming in general, there's the classic Structure and Interpretation of Computer Programs.

I find those two resources to be good starting points for learning Emacs Lisp and Scheme. I haven't played with Arc, but presumably there would be some good tutorials on learning Arc - because it is designed in part to be a good language for creating basic web apps.

Trey Jackson
+1  A: 

Download, install, run http://download.plt-scheme.org/drscheme/.

Read its "Guide".

offby1
+3  A: 

Here's a forum: Lisp Forum, and here's a community: Planet Lisp

Here's a pretty decent post you might find helpful, How to Learn Lisp.

One of the strengths of Lisp is that being a mature language there are a number of really great books on the subject.

MarcusBooster
+6  A: 

There are two popular dialects of Lisp - Common Lisp and Scheme. Both have excellent books/tutorials and implementations available online for free. Beginners can start with Scheme which is simpler. Some resources for learning Scheme:

Free Books:

  1. Teach Yourself Scheme in Fixnum days. (pdf)
  2. The Scheme Programming Language.
  3. Structure and Interpretation of Computer Programs.

Online communities/resources:

  1. The latest Scheme standard.
  2. Scheme Cookbook.
  3. Scheme Requests for Implementation
  4. Scheme Related Research
  5. http://www.schemers.org/
  6. http://groups.csail.mit.edu/mac/projects/scheme/

A Scheme implementation suitable for beginners is PLT Scheme.

Free Books to learn Common Lisp:

  1. Practical Common Lisp
  2. On Lisp
  3. Common Lisp HyperSpec (Reference)

Online communities/resources for Common Lisp:

  1. http://common-lisp.net/
  2. CLiki
  3. The Common Lisp Directory

Popular Common Lisp implementations: SBCL, CLISP, Clozure CL, Allegro CL

Vijay Mathew
+1  A: 

Actually, there are quite a few free CL books available online:

"Common Lisp: A Gentle Introduction to Symbolic Computation" covers the basics, but might be too gentle, depending on your level.

"Successful Lisp" is quite comprehensive, and IMHO the best online resource for learning CL, if you have already programmed a little in another language.

"Practial Common Lisp" aims to reach experienced programmers and surely is one of the best Lisp books available -- one of the few which explicitly try to explain "real world usage".

"On Lisp" is an interesting read for advanced CL programmers, mostly covering macros.

Besides those, there is the indispensable Hyperspec, a htmlized version of the standard, and CLtL2, which is was the pre-ANSI de facto standard (still valuable, since many people find it more accessible than the Hyperspec. At least it sometimes shows things from another perspective).

Finally, there is the Lisp Forum and c.l.lisp. Though there is much noise on c.l.l., you can get very insightful answers there and learn from the masters. As a newbie, one should try to post thoughtful questions on c.l.l., and have a thick skin.

danlei
A: 

My thoughts, as a newcommer to lisp, would be to recommend Clojure (I have over the past six months played with Scheme and Emacs Lisp). I have only been playing with Clojure over the past couple of days.

Running on the JVM, means that most people allready have most of the Clojure enviroment, they only need to .jar files and a plugin for their editor or IDE (Java ones anyway) of choice. So getting running is easier then Scheme or CL in terms of choice.

Most new programmers are at the very least familar with Java, which Clojure of course utilizes pretty well, meaning that while they are learning they can focus on lisp, and a bit less on libraries. There is a lot of concepts that they are much better off focusing on.

On the downside, Java does have a lot of stigma against it. But Clojure has a lot going for it, and I believe a good future ahead, and the Programming Clojure is imho, very accessible, and both Joy of Clojure and Clojure in Action are comming some time soon.

Notthinking