I found forth a pretty interesting language. Started collecting some useful links if anyone else wants to get started. <a href="https://github.com/owainlewis/awesome-forth" rel="nofollow">https://github.com/owainlewis/awesome-forth</a>
I still write some Forth occasionally, it's really awesome for embedded systems, as it runs on little MCUs like AVR. It's so cool to update the program without reflashing the MCU, and have potentially have an interactive interpreter on such low resource processors.<p>I think becoming proficient with Forth has also made me a better programmer in other languages; for example stack based iterative replacements for recursion come easier, as well as other stack based algorithms. It also makes understand the CPython VM a lot easier.
Learning Forth from the OLPC XO boot prompt is one of the most fun things I have done with a computer. Great tutorial here: <a href="http://wiki.laptop.org/go/Forth_Lessons" rel="nofollow">http://wiki.laptop.org/go/Forth_Lessons</a>
Nice. Been meaning to dabble more with Forth since stumbling across the Forth Haiku Salon: <a href="http://forthsalon.appspot.com/" rel="nofollow">http://forthsalon.appspot.com/</a>
I've been writing a Forth Interpreter over the past weeks as a way to learn Rust. It's very motivating how quickly a working prototype can be whipped up; once the data structures are worked out it's basically done. There's a quiet beauty and elegance to Forth code that I can't really find anywhere else. At the same time, it's often frustratingly crufty.
FORTH is a very old and unique language. Different from all the others. You can find it even in the space-ships.<p><a href="http://www.forth.org" rel="nofollow">http://www.forth.org</a>
It would be so sweet if the "(" and ")" were defined as push/pop from a secondary stack. So "(+ 1 2)" would always be equal to "1 2 +".<p>: ABS (IF (< DUP 0)) (THEN (- 0 SWAP)) ;