++++
7/24/2024
  ++++

I have been looking into collapseOS, but instead of going 
too far with it at present, my attention has been brought to 
its use of the Forth programming language.

I have written before about how I seek a kind of holy 
minimalism when it comes to computing -- I seek it in many 
things, but I think I've only written about how it applies 
to computing on my phlog. And when it comes to Forth, I 
think that sort of thing is my bag, baby. 

It's hard to imagine a more simple syntax for a language; 
you write a word that is in its dictionary and it does it...
That's it. If you want it to be able to do something else, 
you write your own custom word... And that's really about 
it, unless we want to talk about how it enforces explicit 
use of a Last-in-First-Out stack... which we aren't going to 
today (ever?).  

For example, I installed gnu's version of Forth, called 
gforth, and to exit the interpreter loop, you use the built 
in word "bye."  Well, I don't want to have to type three 
whole letters to exit -- what horrendous, unnecessary 
bloat! -- so instead I have made a "q" a custom word to 
exit: 

  : q bye ; 

The colon is a reserved word saying a definition is coming. 
Then you put in the word you are defining, then whatever the 
word is going to do, ending your definition with a semicolon. 
(You have to have the space in front of the semi-colon, 
which is one of those super-noob mistakes I made the first 
hour or so I was playing with the language.

Gforth also makes it really easy type shell commands with 
the build word "system." And so I defined a word that let's 
me clear the screen, as seeing too many lines at a time is a 
kind of clutter I do not like: 

  : cl s" clear" system ; 

Nice. But don't I want my screen cleared when I get back to 
Bash prompt? Sure I do, so why don't I redefine "q" so it 
clears the screen and then exits?

  : q cl bye ;

I also have the custom word "my" which opens the file of 
custom words, so I can paste in ones that I want to add to 
the repertoire. 

  : my s" vim customDictionary.fs" system ; 

Okay, fine, you got me... I use nano. I just wanted more of 
you to be nodding your head at this point...

I recommend the entire article "Why Forth?"

http://collapseos.org/forth.html

as well as everything else you can click through on the 
site, but this quote speaks what I see : 

  | The base design of Forth is entirely built around a 
  | *primal* simplicity. Even better, the path of least 
  | resistance generally guides you towards simplicity. When 
  | a word definition becomes too big and complicated, it 
  | generally prompts you to reorganize your code toward a 
  | simpler solution that might not have occurred to you in 
  | another language. 


So, if you're tired of imposed complexity and bloat, 
perhaps it's time to say "q" to all that and embrace the 
elegant minimalism of Forth.

=

This work is hereby in the public domain. 
Do what you want with it.