----------------------------------------
Picking up forth
August 08th, 2020
----------------------------------------

I'm one of those people that like to pick up a new programming language just to
tinker with it for a while.  I have no problem learning something for a little
bit and setting it down knowing that I may never touch it again.

Yes, I don't get the full experience of getting a deep understanding of a
language, but that's not really the point of my play.  I want to try out a
language for a while to understand what it is like to approach it with a
beginner's mind: what is the experience of looking up documentation, of parsing
error messages, re-writing common programs in my undignified understanding of
the new language as a comparison to working in others.

It's this "feel" of the language that is important to me.  Like text editors,
programmers spend so much time with their tools playing with solutions to
problems that if a language and its ecosystem don't feel right to me then I'm
not likely to pursue it.  It's entirely subjective, but so is most things
associated with using computers.

So I recently read about Forth and using it to drive microcontrollers like
Arduinos.  I searched for some possible Forth implementations that work on the
various Arduinos I own and tried to load them.  That was a couple of days ago
and still nothing reliable is installed on any of those machines.

As a person who loves the Lisp family of languages, I felt a pang of anger that
I felt when starting with Lisps as well -- the language is sufficiently
powerful, but the language itself struggles from easily being able to get set
up and going.

So far, I've scraped the microcontroller Forths and have stuck to toying around
on "gforth"[1] (GNU Forth) as well as a fun relic of 64Forth[2], which is a
cartrige-based Forth specifically for the Commodore 64.

The latter comes with its own excellent documentation which includes a
mini-tutorial on basic Forth.  The former I am using the excellent (and
canonical) "Starting Forth"[3] as a guide.

I still haven't written anything of consequence, but that's okay.  Forth may
end up being an interesting experiment and something of a revelation when I'm
working in the languages that I use on a more regular basis.

-----
[1] https://gforth.org/
[2] https://www.c64-wiki.com/wiki/64_Forth
[3] https://www.forth.com/starting-forth/0-starting-forth/