Hacker News new | ask | show | jobs
by mcantor 5718 days ago
Very interested to see what the experts have to say about this. I gave it a shot a few weeks ago, but I could barely get to hello world. As a Ruby/Python programmer, I seem to be spoiled by having de facto interpreters (MRI and CPython, respectively) with rich standard libraries, all of which are doused with a great quantity of Google juice.

I was startled to find that "C lisp"--that is, the lisp interpeter written in C, which you get when doing sudo aptitude install clisp on the latest Ubuntu distribution--is actually not the "standard" lisp interpreter. I still have no idea which is, if any.

Still, it seemed like a few of the web frameworks out there should have worked anyway, so I tried to soldier on for a while. Unfortunately, it was in vain: my dependency-fu simply wasn't strong enough. I also couldn't find a lisp equivalent to rack and wsgi, which is something of a non-starter imho.

I'm sure I am making some foolish assumptions, facilitated by the vast chasm that represents my experience with lisp and its ilk. I also have only managed to devote a few hours to it so far, so please, no one take this post as gospel--I'm just sharing what little I have found in case someone else finds it useful.

3 comments

Lisp is not really a language. It's a family of languages. That's why you can't find a standard implementation.

Clisp is one implementation of the Common Lisp language. Other Common Lisp implementations include SBCL and AllegroCL. Since no one party controls the Common Lisp language, none is standard.

Scheme is another Lisp language. It also isn't controlled by anyone, so it's just a sea of implementations. BUT — the closely related Racket language is centrally controlled and does have a standard implementation. In fact, that's pretty much the whole reason Racket diverged from Scheme — so that it could be the standard Racket instead of Scheme with a bunch of modifications.

The other popular Lisp these days is Clojure. Like Racket, it does have a central "creator," Rich Hickey, whose implementation is considered official.

Interestingly Racket and Clojure were the last two languages I decided to pick from when I decided to start to learn lisp a few weeks ago. The impression I got from reading about Common Lisp on the 'net was that it was old, its libraries are hard to find, and when you find them they are poorly documented and unmaintained. And if you're not using emacs to write it, no one is going to help you. I've installed several versions of emacs on my computer... but decided in the end I didn't really want to learn lisp and emacs at the same time because it didn't seem fun anymore, just work.

At least there are more blogs about Clojure; and Racket is mature and well supported. (I also think Clojure code looks better than all the other lisps. Don't know why, yet.)

You can always try starting with Lispbox - http://www.gigamonkeys.com/lispbox/

Another option is to download Franz Allegro CL Express - http://www.franz.com/downloads/clp/survey and Franz' own emacs package - http://www.franz.com/emacs/ They also have nice tutorials up there.

Or Lispworks personal edition - http://www.lispworks.com/downloads/index.html

I just set up slime into my emacs (which I use all the time anyways) and hooked up Clozure CL to it - http://www.clozure.com/clozurecl.html

On the other hand you could try Scheme, particularly Racket (ex PLT Scheme) - http://racket-lang.org/ (IDE is really nice, but sometimes confusing for newbies.. for example "Which Scheme? And why?")

Maybe your best bet would be to start either with Lispbox and some Lisp book (like the one linked on Lispbox page, it's free) - or Racket Scheme and its IDE (DrScheme) and try following SICP from here http://ocw.mit.edu/courses/electrical-engineering-and-comput... and especially here: http://academicearth.org/courses/the-structure-and-interpret... I'd recommend Racket+SICP at first, both because of less hassle with tools instead of language at first and for my personal bias toward Scheme. Just found some pointers for SICP and DrScheme here - http://stackoverflow.com/questions/939582/which-language-in-...

The Racket IDE should pick a sensible default for the language and add a first-time only launch dialog.
I can't help but get the feeling I'm being trolled here, but: the C in CLISP actually stands for Common, not the C language.
You weren't being trolled; I am simply a moron.
Real morons never admit their mistakes, and are hardly self-critical. I suspect you're a fake, wannabe-moron: i.e. a closeted intelligent person, with human decency.

CLISP is not really written in C proper; but files with *.d suffix are C with heavy pre-processor use that make them look like Pascal. It also uses "var" keyword to declare new variables, along with shell-style # line comments. It also uses German for variables and comments. Things have been changing heavily as of late, and there is more push toward C style and English usage, but here is what it look(s|ed) like.

http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/src/intc...

The code is beautiful and readable, but very unidiomatic.

I see you're a real one.
Calling me a moron, out of the blue, because we disagreed in another, unrelated thread? Classy.
I never used the word moron. It takes a lot of gall to use the insult you used against someone else and attempt to tar me with it.

Your lack of class is why having a reasonable discussion on this site is impossible.

Most likely he was thinking it was analogous to CPython.
Yeah... and Google has their own implementation called "African or European".
I don't program anything serious with Lisp', just toying around for what seems to be forever (having friends/colleagues that don't program in same language doesn't help - in fact, it alienates me from Lisp even further). Clozure and PLT..er Racket Scheme for me, but if I were to try web development or anything more serious than just toying around I'd definitely go with something JVM based for libraries support, if nothing else.