To learn, study. To grok, write.
Ever since I ran into Forth, the programming language, I’ve been intrigued and fascinated by it. Let me take you back to when it all started.
It must have been somewhere in the mid-nineties of the last century. I was a young (electrical & electronics) engineer, high on enthusiasm and low on experience. The 80’s and 90’s were a time of overwhelming technological advancement in the era of personal computing and embedded devices.
In the span of a few years, I was introduced to microcontrollers with EPROM ( aaah, remember those special casings using UV for erasing…), up-ended by EEPROM and finally the introduction of Flash programming – gasp!
I fell in love with RISC and the first PIC microcontrollers which came with a software simulator too! And being real men, you of course coded in nothing but assembly. Not that there was so much choice around but still…
Remember, the internet was in its infancy and the Web was seen dimly on the horizon. So datasheets were your best friends. Errata in those docs? Well, after spending a few frustrating days hunting down the bug, you finally decided to send the company a fax (yes, that is not a typo…) and within a few hours or days, you might get a solution (and apology) faxed back.
An electronic circuit you might have designed less than half a year ago, got obsolete in the blink of an eye as suddenly there was IC doing just that, what you had so carefully designed, made a pcb for and programmed. That and usually way more with just one-tenth of the number of components.
And then, of course, there was the ever-versatile 555 timer ic. It seemed like there was not a challenge big enough or it could be tackled by this most versatile of ic’s. Technology-wise, CMOS was the future-proof choice.
Bookstores were filled with computing magazines, all sprouting special editions with tapes, floppy disks and later CD-roms attached to the cover. Reading hardcopy was an essential part of developing yourself as an engineer, getting new ideas and connecting with the community. But also as a hobbyist, you were fully covered, be it via your interest in e.g. model trains, planes, and automobiles.
Still have fond memories of my subscriptions to Elex and Elektuur (now Elektor of international fame) and the countless hours I spent at the library reading the other magazines.
When it came to desktop computing power, the spectrum was again overwhelming. Commodore, Atari, Acorn, Apple, IBM and its many clones, NeXT, Sinclair, VAX/Unix clients. The Golden Days of Pioneering.
I won’t go any further down Memory Lane, but these were sure exciting times.
First Encounters and Detours
Back to Forth. I was mesmerized by it but never fully grokked it. I bought a course and kit from Forth Inc. I got the books by Leo Brodie, the two (now outdated?) classics “Starting Forth” (free online version) and “Thinking Forth” (free download from SourceForge). I even, for a short while, subscribed to the Forth Dimensions magazine (free online archive).
I found work in IT, seriously involved in the development of embedded software, firmware if you will, of different types of machinery (TV sets, printers, medical scanners….). I have never been the best and/or most knowledgeable engineer. I learned to code in C, abhorred C++ because of the complexity and found development mostly messy. I swiftly moved to process improvement and quality assurance, thinking that was the way forward for my coding brothers down in the ditches.
Yes, I kind of early got on the Agile bandwagon too. As a coach and Scrum Master.
Return of the Prodigal Son
But all the time, the love and fascination for Forth programming kept lurking somewhere beneath the surface. And once in a while, I would find a reason to get back to Forth, in my spare time. Over time that resulted in quite a collection of stuff and mini-explorations: The aforementioned course and kit of Forth Inc., polyforth by Forth Inc. a compiler from MPE for the TI msp430 launchpad, pygmy forth, gforth, pforth, eforth for the msp430 by Dr. Ting, the books by Leo Brodie – by now rare hardcopies, colorforth, 4tH, kforth, Retro, Holon forth and many, many, more.
But I simply never grokked it all.
Zen is a Path
Somewhere I am still an engineer at heart, with a deep longing to understand. There is that brief moment of bliss when you finally do understand something on a deep level. That is how I envision a moment of Zen to be.
And that is why I decided to stop trying to simply learn by studying, but instead to write, complete with my questions and hopefully surfacing answers. In short to grok Forth.
Just because I can.
More in-depth and serious answers in the next post in line
p.s. No, I won’t be writing my own Forth implementation. I am simply writing about my path to Forth Enlightenment, the Zen of Forth as someone once put it.