Forth talk notes

Page created: 2022-09-23 , updated: 2023-07-16

Hello! 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.

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

  • go forth and die - dethklok

  • JE rules

    • 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:

examples: