Live data from Hacker News

Why Lisp is now an acceptable scripting language

fare.tunes.org

101–110 of 138 posts

Re: Why Lisp is now an acceptable scripting language

#102

Earlier quoted context omitted.

Wait, so now what determines whether a language is “procedural” is its surface syntax rather than its semantics?

What other kind of syntax is there? But yes, I've seen a lot of procedural code in every paradigm I can think of. Lots of cargo-cult programming results in it.

Abstract syntax.

Re: Why Lisp is now an acceptable scripting language

#103

If someone wanted to get started into Lisp programming, what REPL and resources would you recommend? I began working through SICP a while back, but found it difficult to know what dialect of Lisp to use. As a complete newbie to Lisp, it was near impossible to debug why the code I wrote from SICP didn't work at all.

For SICP, you need a Scheme implementation (specifically, one that supports IEEE Scheme if you're using the second edition of the book -- R5RS, the most widely-implemented standard, is a strict superset of IEEE Scheme and works just fine with the code in the book, apart from the non-standard "picture language" stuff in chapter 2).

I highly recommend using Racket with the DrRacket IDE and Neil van Dyke's SICP package from the Planet package repository. It's the easiest way to get up and running with an editor and a REPL, and it's got support for the "picture language" in chapter 2.

You could also give it a shot with MIT Scheme -- I've got a feeling it's the implementation SICP (2e) was developed with. It's also got a built-in Emacs-like editor called EdWin. Launch the MIT Scheme REPL and type `(edwin)` to get at the editor.

GNU Emacs has an extension called Geiser (available in MELPA) that works well to integrate with Racket and Guile. Otherwise, the cmuscheme package that ships with Emacs gives you rudimentary REPL integration with just about any Scheme interpreter (and quite a few Schemes, such as Gambit, come with packages to better integrate with cmuscheme and scheme-mode).

If you're not an Emacs user and you're not willing to invest the hour or so it takes to get a handle on the basics, you can, of course, use any editor you want and use the `load` procedure (which, iirc, was omitted from IEEE, but most Schemes have it) at the REPL to import definitions from a file (or there's always good ol' copy+paste).

If you want to learn Common Lisp rather than Scheme, you can check out "Successful Lisp" by David Lamkins and/or "Practical Common Lisp" by Peter Seibel, both of which are freely readable on the Web. You'll also want to keep the ANSI Common Lisp HyperSpec by Kent Pitman handy as a reference (also free on the Web). For this, you can grab virtually any ANSI Common Lisp implementation (GNU clisp, SBCL, Clozure CL, ABCL, etc.). GNU Emacs has excellent support via the SLIME package (available from MELPA), or the other-editor with the `load` function will work here, too.

If you want to learn Emacs Lisp, GNU Emacs comes with an introductory programming book that uses Emacs Lisp, "An Introduction to Emacs Lisp Programming" by Bob Chassel, and the Emacs Lisp Reference Manual. As you might guess, GNU Emacs has the best editor support for Emacs Lisp, though Vim at least has syntax highlighting for Emacs Lisp.

If you want to learn Clojure, the only freely-available book I'm aware of is "Clojure for the Brave and True" by Daniel Higginbotham, though I'm sure there are others. MELPA has the CIDER package available for Clojure support in GNU Emacs. I'm not familiar enough with Clojure at this point to know what the equivalent to `load` is, though.

At this point, I've pretty much exhausted my usefulness on this matter. If you want to learn T, ISLISP, EuLisp, Le Lisp, Arc, or any other Lisp dialect for that matter, I can't help you.

After all that, I highly recommend starting with SICP. It's really a great introduction to programming, and it also covers quite a few concepts that will likely be new to you even if you're already a programmer (mostly in chapters 3-5). (Disclaimer: although I like most of the Lisp dialects, my favorite is absolutely Scheme, so I may be biased ;)). Pick an (IEEE or R5RS) Scheme interpreter, have a glance over its documentation, and you should be good to go!

Re: Why Lisp is now an acceptable scripting language

#104
post #78
post #75

Earlier quoted context omitted.

>> Lisps enable a type of development via live coding that I have yet to see a non-Lisp match. How does it compare to using python for live coding?

If you want to compare Lisp Live Coding and you know Python, then let me compare it like this: How much faster can you get things done using something like ipython vs. a compiled static language like C(++/#) or Java? I don't want to go into a flamewar against the other languages, of course. Yet, if you favor an ipython repl against the compile/build/test cycle, then Lisp gives you just about the same order of magnitu…

> With a Lisp you can evaluate your code in real time in your editor.

Technically there's nothing about Lisp that makes it uniquely suited for this; it's just that people developing tooling for most other languages have a tragic lack of imagination. Smalltalk, Forth, Factor, and to a degree Lua all support the same styles idiomatically, while Racket is a lisp, but it discourages this style.

Re: Why Lisp is now an acceptable scripting language

#105
post #47

Can anybody explain the advantages of switching to a functional language when it is not a pure one? For example, how is it better than Javascript? Is the uniformity of the syntax (and perhaps implicit currying) the main benefit?

Lisp isn't a functional language. It's a family of languages, most of which support more than one programming paradigm. Most languages that are identified as some kind of Lisp are strictly evaluated, do not support partial evaluation (explicit currying only), and support mutable variables and mutable aggregate objects.

Minor nit-pick; the terms here are backwards. Nearly all lisps support explicit partial evaluation, but not many support currying, which is implicit.

Re: Why Lisp is now an acceptable scripting language

#106
post #95

Earlier quoted context omitted.

"The site went down, but it's not my fault. Even though I'm the guy coding it". ok, 10x.

You clearly don't know what actually causes most site outages. Move along.

And you're clearly the arbiter that gets to tell people what they do and don't know. I guess pretending to be competent online helps you, in some way.

Re: Why Lisp is now an acceptable scripting language

#107
post #106

Earlier quoted context omitted.

You clearly don't know what actually causes most site outages. Move along.

And you're clearly the arbiter that gets to tell people what they do and don't know. I guess pretending to be competent online helps you, in some way.

Just pointing out the facts. Some of us do clearly know more about this issue than you do, so not sure why you are continuing in this manner.

Re: Why Lisp is now an acceptable scripting language

#108
post #106

Earlier quoted context omitted.

And you're clearly the arbiter that gets to tell people what they do and don't know. I guess pretending to be competent online helps you, in some way.

Just pointing out the facts. Some of us do clearly know more about this issue than you do, so not sure why you are continuing in this manner.

Because four times now you've said "I know more than you" and have provided nothing of substance to back your claims. I know this is HN and "what you say" means more than "what you do", but hipster bravado will only get you so far.

Re: Why Lisp is now an acceptable scripting language

#109
post #108

Earlier quoted context omitted.

Just pointing out the facts. Some of us do clearly know more about this issue than you do, so not sure why you are continuing in this manner.

Because four times now you've said "I know more than you" and have provided nothing of substance to back your claims. I know this is HN and "what you say" means more than "what you do", but hipster bravado will only get you so far.

Other people in this thread have pointed out the erroneous assumptions in your comment. In this particular example, you are showing your ignorance of the discussion and continuing to respond in a spoiled manner. Please don't contribute to HN this way.

Re: Why Lisp is now an acceptable scripting language

#110
post #79
post #78

Earlier quoted context omitted.

If you want to compare Lisp Live Coding and you know Python, then let me compare it like this: How much faster can you get things done using something like ipython vs. a compiled static language like C(++/#) or Java? I don't want to go into a flamewar against the other languages, of course. Yet, if you favor an ipython repl against the compile/build/test cycle, then Lisp gives you just about the same order of magnitu…

What are the bread-and-butter (aka not sexy and cutting edge, but mature and stable) lisps used for web development?

We built kindista.org with SBCL/Hunchentoot.
Post reply on HN