Forth talk notes
Page created: 2022-09-23 , updated: 2023-07-16Hello! These are my rough notes for these slides, which later became Forth: The programming language that writes itself: The Web Page.
"An effective oral presentation of a studio project begins with the general and proceeds toward the specific." (Which is one thing I learned from Dave Rupert’s 26 things from "101 Things I Learned in Architecture School".)
Incredibly, this seems to be nearly the opposite of this advice:
How to explain things real good (youtube.com) by the awesome Nicky Case.
-
what made you care (soemthing specific)
-
show then tell, concrete then abstract, familiar then novel (and PEA everywhere!)
-
"therefore" and "but" not "and then…" - show how one thing is a consequence of the previous
-
cut fluff - write draft, then remove 10%
-
do real tests early and often
Bang! Bullets!
-
Why i care: because of the legend of forth (so flexibile, you can redefine a number)
-
Also, stack-based programming because supposedly it great
-
picture, example And HP calculators with RPN are apparently morally superior, and definitely neat
-
and what’s this "concatenative programming" stuff all about?
-
but it turns out that flexibility and being stack-based are all just side effects. the real defining feature of forth is boostrapability! https://github.com/hsoft/collapseos/issues/4
-
seems like everybody writes their own, well it turns out writing your own is kinda the point
-
threaded interpreted, oh my goodness, why???
-
compact (like potentially MORE compact than the same thing written in assembly - what, how!?)
-
maybe more portable?
-
-
interactive - old skool repl, but super hardcore low-level
-
actually worse than assembly at first
-
hardware forths (144-computer https://www.youtube.com/watch?v=0PclgBd6_Zs of course)
-
books
-
actually implementing one - JONESFORTH
-
show examples of others
-
that one 1kb hand-written executable - show WHY it’s so cool
-
vulture the iooooooccccccc
-
the fasm one?
-
retroforth?
-
-
often virtual machines
-
-
wrong: gotta be an expert
-
wrong: somebody would have already done this if…
-
wrong: gotta use all your free time on this
-
find a starting place, learn stuff
-
make a prototype
-
do a "literature review" of existing things in this space - learn how they work!
-
-
me: porting application - 3 things you might learn: to lang, from lang, application
-
hand-draw all the graphics for this talk!
-
time to get going with tablet and krita again :-)
-
Useful resources, link dump:
-
http://worrydream.com/refs/Moore%20-%20Forth%20-%20The%20Early%20Years.pdf (note to self: i have this printed)
-
https://colorforth.github.io/HOPL.html (same as above, but minimalistic html)
-
https://www.cpushack.com/2013/02/21/charles-moore-forth-stack-processors/
examples:
-
OpenFirmware
-
forth in space! patchable! try doing that with your executable (that example from jack rusher’s Stop Writing Dead Programs https://www.youtube.com/watch?v=8Ab3ArE8W3s)