Comment by RandomGuyDTB

5 years ago

It's odd to highlight that Forth is 50 years old, considering C is 48 years old and still in very heavy use in operating systems development.

Collapse OS was initially written in assembly for the Z80, a microprocessor first launched in 1976. The fact that Forth is 6 years older than the Z80 seems interesting enough of a step further back in time to be hightlighted.

I suspect that a lot of readers have no idea how old it is.

(I, on the other hand, have to be reminded that 50 years have passed.)

It's odd to compare C and Forth. They are so different.

Edit: as someone below mentioned there can not be a 'Standard Forth'. You just write your own one as you see fit.

Perhaps Forth has changed less than C in that time. The C of 48 years ago can look quite different from modern C.

  • There has never been one Forth. In a world with N Forth programmers, one can expect roughly N implementations of Forth. Perhaps closer to 2*N. An ANS spec exists, but most Forth programmers would say it misses the point.

    Forth is a collection of ideas and philosophies toward programming as much as it is a language. Two stacks and a dictionary. Threaded code (direct, indirect, token, subroutine, etc...). Collapsed abstractions. No sealed black boxes. Tight factoring.

    C has changed. Forth is everchanging.

    • Well, shit... I've been a lil frustrated by a lack of a clear resource and consequentially haven't gotten far on a couple half-hearted attempts to learn it. I can just make it up myself? A little late in the weekend for a new project, but I'm suddenly interested again.

    • This is a slightly off topic question for you, do you think the attributes you named are required for having a “Forth” or are they just the most common implementation characteristics? My current pet language project certainly looks Forth-like, with different semantics and a modal dependent type system, but is not threaded nor does it have the traditional stacks and dictionary. I don’t know if I’d call it a Forth, but maybe it is?

      3 replies →

  • Not really. Function definitions look different, and we can declare variables in the middle of function bodies, but those are surface-level changes. The language itself hasn't changed appreciably.