| Forth is great fun to play around with. I love the way you can extend the language to create new constructs. They're like Lisp macros with the safety catch off. I found it difficult to reason about how immediate words will be executed and embed code the way I want it to. In the hands of an expert, Forth can look like a Haiku. For anyone else: not so much (to put it politely). In the end, I just want a solid programming language like C. Forth advocates can also sound a bit mystical in their utterances, and how they need only 1% of the code of everyone else. They're like Zen riddles: universal truths that no-one really understands. Um, OK, they're undoubtedly right from their point of view, but I doubt that the developers of the Linux kernel wrote 99% of the code for no real reason. I played with colorforth a couple of times, but could never figure out what the living fark was going on. Sure, it works for Charles Moore, but I'm not Charles Moore. I did see a guy on YT that actually used colorforth. He seemed really happy and productive with it, although I couldn't help but walk away with the sense that it was a bit of a mystery to him too. I don't think that Forth is that great for microcontrollers either. C's model of edit-compile-upload gets the job done. I think that the difference between Forth and conventional languages is this: you can write specific solutions to specific problems in Forth, whereas conventional languages are better at generality and scale. Each has their place, but the reason you'll see more of the general-purpose language artefacts is because, well, they're more general-purpose. |