Post

I worked at Forth, Inc. for 3 months around 1980. It changed my view of programming far out of proportion to the length of time I worked there. Nice people too but the job was not really what I was looking for at the time.

I always remember Chuck Moore (Mr. Forth) writing a Battle of Midway simulation in Forth that ran in 8k bytes of RAM. It drove a raster display. The little ships even had country flags! Amazing.

This. I'm an assembly coder and am familiar with this order of operations, but I've never even heard of Forth and had no idea this was called a reverse polish notation. Then again I suppose this has to do with countries too, I don't think that phrase was ever in use in our school system.

(some) assembly languages are close to RPN, like this bad `strchr`-like function: strnchr: ; args on stack (chr, str, len) pop cx pop si pop al repne scasb mov ax, si ret But Forth generalizes it (at the cost of inefficient registers use)

its selling point was that - making a minimal implementation for a new architecture is relatively simple - it can be relatively efficient (worse than C but better than BASICs of the era) by using "threaded code" - the language is extendable by design - it has built-in REPL & JIT for interactive use

"But Forth generalizes it (at the cost of inefficient registers use)" This is at least one reason why RCA 1802 + Forth are a great match. The scratchpad registers make it a lot easier.

Being someone not saavy with that programming language, my thought after thinking about it for a moment was that it meant "one fourth is less than three". I = Roman Numeral 1 forth = 1/4 and misspelled for some reason ❤️ = <3 The intent may be wrong, but the inequality is true.

Explanation: Forth is a programming language that's notable for using backwards syntax, where the commands are placed in a different order than most other programming languages. So the joke is that he's saying "I love Forth", but he put the words in a different order to make fun of it.

More precisely Forth is a stack based language. So that sticker pushes l on the stack, then pushes Forth on the stack, then uses the heart operator on those two stack entries. It looks weird and backwards to humans, but that style of programming is extremely resource efficient on the computer.

THANK YOU! I am not very techy, and I stared at that cartoon for several minutes on Monday trying to figure it out before giving up. (I didn't even know how to Google what it could possibly mean.)

In college had the bumper sticker: Forth Love If Honk Then. On two occasions at stop lights, the driver of the car behind me knocked on my window to ask what it meant.

I never did forth, but I used to write raw PostScript back in the day and its if syntax was rather different (it would have been Forth Love {honk} {} ifelse). I was surprised to discover that the forth if syntax was rather different with the conditionally executed code after the if.

Mercifully I have only ever needed to use human-oriented languages which do IF cond true false ENDIF (in a variety of syntaxes). But I've never needed to shave 0.000042 picoseconds off the parse phase of a compiler.

Less about speed than memory. That’s why PostScript was RPN. It provided programmability without exploding the memory requirements (it still needed more RAM than, e.g. pcl but that was because the whole page had to be imaged before printing).

Used Forth 1983 with View Engineering applications (machine vision digitizing video input to make QC measures on production lines). Didn't mind the prefix notation really, though prefer infix and standard algebraic (hence liked TI engineering calculators rather than HP reverse polish).

When learning programming I was in awe of this language. I loved the Hewlett-Packard calculators and needed to learn Forth. Unfortunately I couldn’t use it anywhere

I don’t get it, may I have an explanation? I thought it was Yoda-speak, but that would mean 6, 7 8 (ate), in which case, if 7 8 6, 5 would have nothing to be afraid of

It's not Youda-speak, it is Reverse polish notation. It reorders "Operand1 Operator Operand2" into "Operand1 Operand2 Operator". For example 2+3 in RPN becomes 2 3 + And for the joke if "6 7 8" is considered written in RPN, then 8 us the operator and 7 was eaten by 6.

It has fun aspects, but the bottom-up approach is really problematic for anything that needs to be engineered, or maintained by more than one person. It's spiritual successor to me is Mathematica/Wolfram, where you build up a program from collections of lower-level functions.

Huh, as I was rummaging around, I saw that Forth, Inc. is still in business (selling Forth compilers for $3K USD for rad-hard applications as an extreme example). But perhaps more interesting is this article suggesting Forth will make a resurgence after the apocalypse. dl.acm.org/doi/full/10....

dl.acm.orgForth: The Best Programming Language for the End of the World? A Case Study on A.D. 2044 (1991) - Roland Pantoła’s Interactive Fiction | Proceedings of the 36th ACM Conference on Hypertext and Social ...

For better or worse, FORTH remains one of my favourite programming languages, although there is precious little reason to use it these days (I'm a bit surprised it never caught on for microcontrollers, but it most assuredly didn't). "I FORTH ❤️" for sure.