Hacker News new | comments | show | ask | jobs | submit login
More fully-featured, modern Lisps, pulleezz (axisofeval.blogspot.com)
37 points by xearl 2364 days ago | hide | past | web | 16 comments | favorite



There's a copious buttload of "understand foo" in this post. Is the author really recommending that a fledgling language developer should wait until they understand all of those things before they initiate a lisp language development exercise? It feels like putting the pedagogical cart before the horse to me.

Let's take languages, and therefore religion, out of the picture. Suppose someone was interested in text compression. Would it not be a good first exercise to write a Huffman compressor, even though the state of the art has moved on since? I just went through this exercise and found it to be very rewarding, despite the fact that I've understood the technique for decades. So what if some blowhard arithmetic compression fanatic on the Internet thinks I'm stupid for wasting fractional bits. Screw him. It's my exercise.


Good question. The point is that "early LISP" was royally screwed in some important aspects. If you repeat these errors, then that may be harmful, and you're missing out on learning "how to do it right". Which is why I wrote the post.


I grant that early LISPs were royally screwed. The main question in my mind is whether or not the cognitive footprint of the sort of language you are advocating is small enough to retain the same scope and approachability of the traditional ur-lisp exercise, even within an order of magnitude. By "cognitive footprint", of course, I'm including all of the research language esoterica you're saying that a fledgling language designer should understand before they crank out an ur-lisp.

Have you considered quickly knocking one out for us so that we can all see what a minimally-viable language that includes all of your essential features looks like? I confess you have piqued my curiosity, and I'd love to see a model to emulate.

Just so we're clear: I enjoy your writings on this subject. You rarely fail to expand my thinking.


See http://github.com/manuel/cyberlisp and http://github.com/manuel/ell for my takes on the subject. Judging from my experience, a full - but slow - Lisp compiler+runtime that does most of the stuff I wrote about should take about 5 KLOC.


I never underestimate the value of repeating well-known errors as a learning experience. Sometimes, a useful way to sink a new concept in is to address the original problem by yourself in the wrong way, and later apply the right techniques that were developed in order to solve it better. Design patterns come to mind.


This feels like a much more mature article than the very ranty post he authored before. A great run down of trade offs and features of modern lisps, with references.


The author pointed out in another post that his blog was not meant to be a series of articles, just his state of mind at a given point. I think it's fair to scrutinize his ideas, but we should not criticize a lack of article quality or references in someone's personal blog, if his personal expectation is that it shouldn't be read as such. Nonetheless, I'm glad for this follow-up.


Again I say, what if it happens to be fun? Do whatever the fuck you want! Even building tiny incomplete Lisps.


Sure. But don't stop there.

If you're interested in Lisp-like PLs, then also study what happened after 1959. It sounds stupid, I know, but a lot of people don't seem to do it, which is one of the reasons for the slow progress in dynamic languages.

(I'm the author of the post.)


then also study what happened after 1959

A better sense of history would do our industry a world of good! Heck, also be aware of what went on from 1960 through 1985. If there was some more awareness of this, a our industry would be years ahead of where it is now, instead of having wasted so many man-hours reinventing the wheel.


>> Compared to Haskell, Lisp is a big hack.

We're being trolled, right?

No substantive material here, just the assertion that building a minimal Lisp is worthless. If you really want to…what? Provide value? Do something worthwhile?…then build an entire language, he says.

I'm sorry, but I'll write my "hello world!" program as an MVP and learn what I can from it. If I want to become a pro at PLs, then maybe I'll build an entire language.

It's not harmful. Hair won't grow on my palms. Let me experiment.


While the last post from his blog certainly had the air of elitism to it that made it a huge turn off, I actually really enjoyed this one and disagree that it's not substantive. I don't think he claims that it's harmful on the absolute, he's simply noting the scope of evolution in the Lisp family of languages and the trade offs designers made. Implementing a simple 200 line lisp interpreter is a fine evening or weekend project, but macro expansion time and bindings are something that actual Lisp developers actually think about. (Or at least I have, as I've been learning CL).

Shrug. That post contributed to me better understanding the idea of Lisp and for that I think it deserves my upvote.


He said that it was harmful to build a simple Lisp interp/compiler. Not only that, but apparently he cast off the entire Lisp family without anything other than a "Haskell is just better, kthnx". Seems like a troll in the vein of the previous one, just more elaborate.


Follow the link on "Compared to Haskell, Lisp is a big hack." - http://axisofeval.blogspot.com/2011/01/why-lisp-is-big-hack-... - for a more detailled post.


As a writing technique, saying "someone should do steps 1, 2, 3 to do a proper X, but X is crap compared to Y" tends to cast doubts on your advice on X. It's one of those off hand remarks that tend to get stuck in the craw of the person reading it who likes X.


I actually liked the earlier article better. But I think it's good to see the paths that have been taken to get to where we are today. Just because you have seen what the original LISP was like doesn't mean you are forever doomed to believe it's the only way things can be! After you write your Ur-Lisp, check out The Art of the Interpreter: http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-....




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: