HackerTrans
TopNewTrendsCommentsPastAskShowJobs

cdegroot

no profile record

Submissions

Show HN: I wrote a technical history book on Lisp

berksoft.ca
252 points·by cdegroot·5개월 전·100 comments

comments

cdegroot
·5개월 전·discuss
The book goes back a bit more, so you'd end at Church :-)
cdegroot
·5개월 전·discuss
There's now a list of errata which I'll keep working on, https://berksoft.ca/gol/errata_1.html
cdegroot
·5개월 전·discuss
Yup. They have a lot of resources available on how to do it but what gets printed is 100% the author's (or publisher's) responsibility.
cdegroot
·5개월 전·discuss
I went for the somewhat humbler reasons of "I can assume that my reader will know it at least a bit" and "simple to obtain" - a bunch of the examples will run in the browser :-)

But yes, JS' dynamic/LISP-y roots did make my examples simple to implement and thus simple to follow. No trickery was needed, it was all pretty straightforward.

(JS is a much maligned language and for very good reasons, it had a shaky past and still is too full of warts that should be excised at some point. But modern JS with the help of modern IDEs isn't actually _that_ terrible and traits like it being prototype-based make some otherwise complicated things easy)
cdegroot
·5개월 전·discuss
It's... "different". I think there are two big things going on: one is the fact that "refactoring" never ends, as you can mold the language around your problem. Ultimately that level of expressiveness makes the hard parts of your code more concise, more readable (as the code ends up being closer to the domain at hand), and therefore more maintainable.

The other thing, which it shares with Smalltalk and which I've seen pretty much nowhere else (Erlang comes very close) is the interactivity. You code inside a running system. Yes, other languages have things they call "the REPL", but they can't deal with classes changing shape, reloading code, etc. It makes the coding cycle much shorter, quicker feedback is better feedback, so you end up going faster (and iterating through complex stuff like that macro that will really nail how clean your top level code is will be much more doable)

When I mentor coders, I often talk about malleable code, like the clay on a potter's table. As soon as you stop working it, things start solidifying and your code turns into something unchangeable and brittle. I think Lisp's traits (which I otherwise only found in Smalltalk) help you push back that point, maybe indefinitely.
cdegroot
·5개월 전·discuss
Absolutely not. I created every mistake painstakingly by hand ;-)
cdegroot
·5개월 전·discuss
Yeah, you can't imagine how happy I was when first RPG sent me some of that material to help me out with background and then said yes when I asked him for permission to include them verbatim in my book. He's such a good writer.
cdegroot
·5개월 전·discuss
Thanks. An initial list of errata will appear this weekend (probably tomorrow). I think I'll add a RSS feed for it :)

W.r.t. actors and scheme: the whole thing is that Sussman and Steele started Scheme to figure out actors, did some hacking to do async stuff on top of Maclisp, essentially, and then found out that their stuff and (Hewitt-style) actors were the same. So I guess Scheme took "the same but a different" path early on, pretty much how Erlang and Golang are pretty much similarly powerful systems, expressing the same functionality in different ways.
cdegroot
·5개월 전·discuss
Yup, and the book mentions that, including the surprising result that (Hewitt-style) actors - which are not completely like Erlang processes - and Scheme's closures were the same.
cdegroot
·5개월 전·discuss
Didn't know about the planned GC tricks (I mostly treat LISP 2 in passing so it most salient superficial points: the syntax and the fact it never happened), interesting!

W.r.t. tutorials: the most code-rich chapter is the one about "the Maxwell equations of software". As a Smalltalker, I'm well aware of Kay's label of the code in the LISP 1.5 manual. It's a good exercise, especially for non-Lispers, but dare I say also for most Lispers, to implement this stuff to both see how powerful simple ideas can be and to see how this magic works in its bare essence (stripped of "noise" like parsers, etc). The rest is basically illustrations of concepts, and that's on purpose; I wanted to write a history book primarily aimed at techies, so code had to be there.
cdegroot
·5개월 전·discuss
Thanks. Even though I'm originally from Europe, the book has ended up somewhat focused on what happened on the continent where I now live. It's something I'm planning to fix for a potential second edition.
cdegroot
·5개월 전·discuss
Turns out that for me, Shopify was even easier, so that's sorted now. In any case, thanks for pushing me into the right direction.
cdegroot
·5개월 전·discuss
Darn, I had his name wrong and fixed it, but somewhere an undo button must have been hit. Thanks for pointing it out.

I'm more than happy to add corrections to an already "longer than zero" list of errata. I'll give the Scheme chapter and Wikipedia a once-over to see where I went off the rails.
cdegroot
·5개월 전·discuss
When writing a book, you can't make everybody happy. I wrote this for a somewhat general techie audience and already had debates about the amount of math material in the lead-up to LISP I :-). Especially here on HN, there's a better-than-average chance that people will want more, something more encyclopedic, and I get that but "ok for a cross-section of Lisp history" already fills a book, I had to stop somewhere. Too much for some, not enough for others, hopefully "mostly ok" for most readers, it's all I can aim for.

And +1 on a comprehensive Lisp history bibliography, that's a great idea.
cdegroot
·5개월 전·discuss
These days it's all "I am Groot" :-)

_waves a branch_
cdegroot
·5개월 전·discuss
Yup, you can now. berksoft.ca/gol has a link to a (DRM free) PDF version.
cdegroot
·5개월 전·discuss
I would expect it to be good - it's typeset with LaTeX and shipped as a regular (vector) PDF, the rest is on Lulu/Amazon but I don't expect issues there. To be completely honest, I'm still waiting for the author copy from Lulu, which I'm using as a final check before allowing wider distribution (channels that don't allow quick fixes). But I've ordered several books from Lulu in the past, and they were fine, to my (amateur) eyes looked the same as something from a regular publisher (the modern ones likely use the same/similar print-on-demand hardware).
cdegroot
·5개월 전·discuss
Thanks for pointing it out. It's on the edits list for the next round :)
cdegroot
·5개월 전·discuss
I'm gonna check it out, thanks.
cdegroot
·5개월 전·discuss
https://berksoft.ca/gol/genius-of-lisp-chapter-8.pdf is the chapter on Scheme, now on the book's site as a free sample. Hope you like it.