Charles Hoy Forth Moore

Yesterday, we went to Vol 0×03: Language, Computation, Art of Software Developers Dialectic Galactic.

I had the privilege of speaking at the event last night, and wrote a talk entitled “Charles Hoy Forth Moore”. The first two events were tough acts to follow, so I consider myself very lucky to have gotten any reaction better than an immediate mass exodus by the participants/attendees. I had promised in the slides to put them onto the internet, so here are the slides that I was able to use during the talk, plus a collection of links and some explanatory comments, for the benefit of those that were present. It may be of interest to some that weren’t in attendance, but like any slide deck, it does not quite get everything across.

The topic of the talk was mostly about FORTH, specifically jonesFORTH, and was intended to convey at least a few things about language and computation in a more general sense. If you haven’t read jonesFORTH, I certainly recommend it!

SDDG

It’s a really interesting and unique meetup, and fits very well on this side of LA. Pasadena, where our offices are, is also home to NASA’s Jet Propulsion Laboratory and Cal Tech. Overall, tech here is nerdier than in Silicon Beach, which is probably why Supplyframe and Hackaday live here.

There aren’t any cameras at the meetup, the presentations are jumping-off points for open discussions, and although there are certainly plenty of engineers present, but also plenty of linguists, artists, students, musicians, journalists, and others. The discussion tends to be fascinating.

Slides

slide 001

slide 002

slide 003

The Giant, the Insect, and the Philanthropic-looking Old Gentleman is an excellent short story by Charles Hoy Fort, a very fun author and noted collector of strange accounts and crank science. This story in particular is about an application of a universal theory of everything to the snake oil industry.

This quote should suffice to give an impression of his writing:

I believe nothing of my own that I have ever written.

slide 004

Well, that explains the name of the talk!

slide 005
slide 006

Chuck Moore’s site is down; he has decided to retire from the internet. However, he gave permission to Lars Brinkhoff (the apparently tireless creator of the ForthHub community) to re-publish Programming in a Problem-Oriented Language.

slide 007

These are not the only FORTH-like languages, but they are two fairly mature ones. Joy is more FP-style, and Factor performant and very convenient.

Because I did not think that it would supplement the conversation much and because it sits in the uncanny valley between a conventional FORTH and some of the more autré stack-based languages, I didn’t bring up Pez, but digressions are easier to forgive in a supplement/addendum to a talk. Pez is based on ATLAST, though it’s gone off the rails from there.

slide 008
slide 009

I’m not kidding.

slide 010

Erratum: HERE behaves differently in Pez, so there is a bug here. See the jonesFORTH implementation of IF and THEN.

slide 011

I think there is something really cool about a langauge that can implement control flow from tiny primitives.

We didn’t get to go into some of the more interesting parts of the runtime, but there was a pretty interesting conversation going on when this slide arrived.

slide 012

This is Paul Graham’s version, ported to Common LISP, of John McCarthy’s specification for LISP.

slide 013

This code is really fascinating.

Urbit is another language with a very concise specification. I very highly recommend reading the author’s thought experiment about the language. I’d be hard-pressed to come up with a stranger programming language.

slide 014
slide 021
slide 022
slide 015

These slides are presented here in the order they were presented last night. This part of the slideshow ended up a bit chaotic because it spun off a lengthy essay I have started writing for my personal blog.

slide 016

The most relevant one here is The Rise of Worse is Better, a part of Lisp: Good News, Bad News, How to Win Big. It was very insightful and brilliant as a result was very unpopular at the time.

slide 017
slide 018
slide 020
slide 019

We talked a little about brevity, though I didn’t get to go into these examples in depth. Consider these four slides a teaser for a potential future presentation.

The rest of the slides I didn’t get to. Hopefully I’ll get to soon!

Links

slide 023

Reflections on Trusting Trust by Ken Thompson. There are several places to find this talk. This is one of the bits that I didn’t get to cover during the meetup, but the connection between this talk and the part in Ken’s talk about “teaching” the compiler should probably be easy to see.

Bytecode Interpreters for Tiny Computers by Kragen Sitaker. Very, very highly recommended reading. Another part that we didn’t get to.

This page intentionally left nonblank

slide 024

This slide is a bit redundant on this page, except for the ASCII-art rendition of our logo.