[ prog / sol / mona ]

prog


Thinking Forth

1 2021-09-18 13:41

Thinking Forth by Leo Brodie. What does one gain by reading this 1980s book? Is it obsolete?

2 2021-09-18 13:54

>>1
verisimilitude has a brief review here: http://verisimilitudes.net/2019-06-15 The homepage of a project to retypeset it (much like existed with SICP) has some advertizing print on it: https://web.archive.org/web/20051216163615/http://thinking-forth.sourceforge.net/ I don’t believe there is sufficient difference between Forth 83 and ANSI Forth so as to make it obsolete, and you likely wouldn’t be reading it to learn Forth anyway. Then again I have not read this book and do not know Forth.

3 2021-09-30 05:14

>>2

Then again I have not read this book and do not know Forth.

then your opinion is invalid

>>1
older computers will use the forth shell as a bootloader. one of them is called openfirmware, but this is basically abondoned nowadays for shitty firmware.
so if you have to program or interact with these older computers than you will need to know forth to do more than running a simple command like boot.

besides that forth has not been used that often. i dont think forth is obsolete and prefer it to disasterous programming languages, but in the view of most people yes it is obsolete and outdated.

you will gain knowledge of how to write programs in smarter or better ways that are small and efficient to maintain compared to ungodly big programs that just keep growing and growing after time and become difficult to maintain.

4 2022-01-08 22:12

>>2
As the author of that review, I suppose I'll comment. I'll improve that review at some later point.

I don't use Forth for anything. The language is generally tedious and difficult to program. I prefer APL, which has some similar characteristics, but without the drudgery.

Regardless, it's a very good book, and has influenced my programming. I mostly think back to a single passage, but it's a very important passage:

You often see such applications that don't check input until you press ``return,'' at which time the system responds with an error message such as ``invalid number.'' It's just as easy-probably easier-to check each key as it's typed and simply not allow non-numeric characters to appear.

5 2022-01-09 23:55

Nothing is ever obsolete. Not even Aristotle's physics is obsolete.

6 2022-01-11 04:36 *

>>5
There's no dichotomy of being obsolete with being practical in the real world. It's okay for older techniques (and tools) to become obsolete with advances over time, the new tools do not mean the old tools will immediately break.

7 2022-02-27 21:45

what about Starting Forth? is it any good??

https://www.forth.com/starting-forth/

8 2022-02-28 11:34

Starting Forth is the standard tutorial for Forth. Thinking Forth is for actually using Forth as Forth in projects (i.e. "advanced" techniques), from what I recall.

9 2022-03-06 14:18

IIRC I skimmed through (a part of) it some time ago; it has some interesting (albeit rather naive) thoughts on DSLs and program design. In general, I do think FORTH as a language is obsolete in favour of Factor (for practical purposes) and Joy (for concatenative langs theory), as well as their numerous descendants.

10 2024-07-31 09:33

The Forth books are good and interesting and prescribe a '''sane''' mode of writing Forth code: that you keep your definitions short and many, rather than ALGOL-shaped like you just want to write inside-out C code.

These books also talk about performance in the era of single-core machines much simpler than what we use today. I think the reality of Forth is that you need some kind of JIT compiler or the constant JMPing will tank your performance.

Also, Forth per se is terrible; you generally don't get so much as an array type out of the box, which might be okay for an exercise or for some chip that has <1k of RAM or something, but is a waste of time otherwise. Concatenative programming is great, and most of the good parts of Forth are applicable to Factor.

11 2024-08-16 17:00

>>7
It's great.

12 2024-08-24 15:02

For learning, EasyForth is pretty gud ( ˙꒳​˙ )
https://skilldrick.github.io/easyforth/

13


VIP:

do not edit these