Hacker News new | past | comments | ask | show | jobs | submit login
Starting FORTH (1981) (forth.com)
101 points by tosh on Nov 19, 2022 | hide | past | favorite | 24 comments



I never read this book, and I never really learned Forth. But I did read Thinking Forth[0], and it has shaped my software engineering instincts more than anything else I've read.

[0] https://thinking-forth.sourceforge.net/


Out of interest, what other books (in this field) have you read, and would recommend?


Extreme Programming before the XP cult was even thought of.


Related:

Starting Forth: An Introduction to the Forth Programming Language - https://news.ycombinator.com/item?id=26677630 - April 2021 (19 comments)

Recommended Reading: ``Starting Forth'' and ``Thinking Forth'' by Leo Brodie - https://news.ycombinator.com/item?id=20193620 - June 2019 (1 comment)

Starting Forth - https://news.ycombinator.com/item?id=15164448 - Sept 2017 (5 comments)

Starting Forth - https://news.ycombinator.com/item?id=9855977 - July 2015 (68 comments)

Starting Forth – the classic Forth language tutorial - https://news.ycombinator.com/item?id=5909968 - June 2013 (32 comments)

Starting Forth - After yesterday's Prolog post, another awesome language - https://news.ycombinator.com/item?id=1980123 - Dec 2010 (27 comments)

Starting Forth - https://news.ycombinator.com/item?id=448303 - Jan 2009 (7 comments)

and of course:

Thinking Forth – A Language and Philosophy for Solving Problems (1984) [pdf] - https://news.ycombinator.com/item?id=18885493 - Jan 2019 (41 comments)

Thinking Forth (1984) - https://news.ycombinator.com/item?id=9842557 - July 2015 (31 comments)

Thinking Forth - https://news.ycombinator.com/item?id=3389286 - Dec 2011 (21 comments)

Others?


I took this book on a long (for me) trip to Minnesota the year that it came out.

It was a great read, trying to work out all the details with my eyes closed because back then computers didn't come on vacations with you. When I got back, I had a whole system to play with worked out in my head.

Forth was ultimately kind of a dead end, but it was a hugely educational one and it led me to bootstrapped versions of Lisp and many other wondrous things.


I've always been a bit sad that more Forth-inspired DSLs never became a thing. Assembler Forths and C Forths often feel like DSLs on top of their host languages/environments, so doing the same thing as a network or build-system DSL would be interesting. I do recommend folks play around with more mature, big Forths like gForth to see what building an application up in a Forth like system actually feels like.


Commercial systems are also now available for free for trial or non-commerical use, that offer native code compilers and IDEs and Graphic interface tools.

VFX Forth from MPE UK

SwiftForth from USA


How about Forth as a compilation target for other languages. But you can dig in and define words for common patterns and the higher level code will be compiled down to that custom vocabulary instead.


Forth is just not very easily optimized - it has a lot of indirect jumps that do not play well with today's instruction pipelines.

There are a few optimizing forth compilers, but I never have seen compelling evidence that they would be faster than an optimized c compiler.

Forth also has seen comparatively little work lately - only a small number of people use it (for better or worse). Micropython might be eating Forth's lunch on many embedded systems that have a lot more memory/ resources now.

As a counterpoint, I found https://www.1-9-9-1.com/ which looks like a lot of fun.


How I learned Forth in the 80s. Worked at FORTH, Inc. for a few years. polyFORTH was a cool system for the time, especially for what it could do on very small computers. I recall training classes of a dozen developers working at the same time, all connected via a terminal to a single IBM PC, running a version of polyFORTH taking only 64K of RAM (16-bit flag, not segmentation)


What did y'all implement in Forth? Always curious to hear old industry Forth stories.


I had briefly worked on a project using Green Arrays which implement Forth. Quite a different language when coming from the world of C like languages and such.

https://www.greenarraychips.com/


Are you able to say more about the project? Did you like working with their development board and GA144 chip?


I think this is a great example of a book for learning a language. The cartoon illustrations are both funny and illustrative. The characters are consistent, too - each one represents a different concept.

Most people probably won't be using Forth in the future, but you can definitely learn about teaching a programming language from this book. Jt is a great example.


I love this book, but many people seem to dislike the cartoons. It reminds me of Learn You a Haskell, it's very hit and miss. So would I recommend this for a textbook? No. But as a book that people are offered of their own accord, yes definitely. The cartoons worked for me and I learned everything I could get out of the book.


I've never done anything in Forth, but I have been captivated by it, and in particular in Jone's Forth. I would probably have been more motivated to use it were there a "Jones Forth"-like tutorial/compiler for MS-DOS or Win16. If I were to use a language whose utility isn't the best, I'd prefer it to be on a hobby system...


From Fortune:

The many versions of the FIFTH language reflect the sophistication and financial status of its users. Commands in the ELITE dialect include VSOP and LAFITE, while commands in the GUTTER dialect include HOOTCH and RIPPLE. The latter is a favorite of frustrated FORTH programmers who end up using this language.


This book is really fun. I am surprised that Forth never seemed to make much of a dent in education. It seems perfect for teaching programming because there is so little fanfare.


It's probably because you want to teach a language that people can use. There is very little practical use left of Forth.


But for the sake of argument, I don't see why Forth isn't appropriate for learning programming.

I started learning programming in 2001 with QBasic. Didn't do "real work tasks" like downloading some files from server or parse a PDF file and upload some of the content to Firebase, but by doing "boring" things like printing various forms of pyramid, maze solver, etc. I'm sure you can do that in Forth.

Well eventually I tried Forth, and still doesn't get it. At least for me Lisp is more approachable, on certain degree :)


It's not inappropriate, it's just never a better choice than languages that are actually used, because then everyone who learns can say "I know X". I know Forth really well but I don't put it on my CV, even though I work in probably the main sector it's still used (embedded).


I personally find this situation unfortunate. It returns us back to learning subverting requiring that something to be “useful” for some arbitrary definition of useful. It’s the same story of the failure of trying to make mathematics or philosophy or whatever appear “useful” or “practical” to students. It doesn’t work because the point of learning is not to directly get you a job or put something n your resume or be “useful”.


https://www.forth.com/starting-forth/ - The submission appears to be a PDF of this site. The page at forth.com includes a PDF link for the original edition if you're interested.





Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: