4 ms·
Back in the day, Forth wasn't so much software, as an amazing idea for how to make software for platforms where you had no tools/or terrible tools, which was mo
by eschneider 4y ago
Back in the day, Forth wasn't so much software, as an amazing idea for how to make software for platforms where you had no tools/or terrible tools, which was most personal computers or embedded environments.
Once you groked how Forth worked, it was quite practical to put together a language kernel in ASM or machine code and you were off to the races.
- kragen 4y agoi think maybe a lot of the difficulty i had understanding forth was that i mistakenly thought of it as a programming language, and considered as a programming language it's not that great, much like bash
- eschneider 4y agoForth is definitely a language, and depending on what you have available, it can be a great option. These days, when you can download gcc cross compilers for almost anything, there's less need to roll-your-own Forth, but it's still pretty interesting to study.
- kragen 4y agoforth definitely has a language in it but i don't think the language is what led people to prefer it to, e.g., c or a nice macro assembler (i'd say 'leads' but there don't seem to be a lot of people doing things in forth these days; duncan's 01988 estimate of 50000 'serious' forth programmers seems two orders of magnitude higher than seems likely today) i think the appeal is that in 16k or 64k you get a repl which (unixlike) doubles as a scriptable ui, a sort of source-level debugging, interactive variable inspection (and i/o port poking, memory dumping, etc.), instant turnaround for changes (no 'my code's compiling'), multithreading, virtual memory, an assembler and disassembler, an extensible compiler with a turing-complete macro system, and dramatically better code density than machine code all of that makes a pretty appealing package, especially for certain kinds of tasks, and it's only loosely coupled to the language qua language as duncan points out, part of the appeal is that the development environment is a lot more integrated than something like turbo pascal