
More fully-featured, modern Lisps, pulleezz - xearl
http://axisofeval.blogspot.com/2011/01/more-fully-featured-modern-lisps.html
======
pohl
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.

~~~
pwpwp
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.

~~~
pohl
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.

~~~
pwpwp
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.

------
yan
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_.

~~~
tiles
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.

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

~~~
pwpwp
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.)

~~~
stcredzero
_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.

------
ihodes
>> 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.

~~~
yan
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.

~~~
ihodes
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.

~~~
freakwit
Follow the link on "Compared to Haskell, Lisp is a big hack." -
[http://axisofeval.blogspot.com/2011/01/why-lisp-is-big-
hack-...](http://axisofeval.blogspot.com/2011/01/why-lisp-is-big-hack-and-
haskell-is.html) \- for a more detailled post.

------
ericbb
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-...](http://repository.readscheme.org/ftp/papers/ai-lab-
pubs/AIM-453.pdf).

