There seems to be a lot of ForthPessimism
floating around lately, on pages such as ForthIsDead
and probably more to come.
probably not. --
I think this criticism is rude and unjustified. It is certainly not ConstructiveCriticism
. I can only imagine that the person who is offering it is probably being forced to use Forth by his boss and is feeling vengeful. Or maybe he just wants to destroy something beautiful.
1. ConstructiveCriticism is not possible in Forth Land because, as soon as you start suggesting things, a Forther from around the corner is going to come and ridicule your idea on the grounds that Joe Hacker tried three variants of it eons ago, and while they were order of magnitude better than your idea, he decided against them because no one needs it, anyway.
- So it's just like PlanNineFromBellLabs? Yay.
- I would agree that the crowd on comp.lang.forth is not very helpful, open to new ideas, nor tolerant of newbies. They even ridicule ChuckMoore's current work. But they do not represent everyone who uses Forth. -- KrisJohnson
2. It is certainly worthwhile to also point out deficiencies of one's favorite language, otherwise there would be no rational explanation to its lack of success given all its strengths ;-)
3. Some light, tongue-in-cheek remarks shouldn't upset Forthers, unless they were only lurkers or C trolls, in which case:
"light, tongue-in-cheek remarks"? If your goal was to demonstrate some sort of lighthearted love/hate attitude or grudging respect toward Forth, I think you've failed. I've responded to your comments in those other topics because you have made some outrageously negative and misleading comments about the ForthLanguage, and I felt is was important to provide some balance for readers who don't know the facts. Forth isn't perfect, but it's not the completely useless tool that you have made it out to be, and its users are not as clueless as you make them out to be. -- KrisJohnson
? Forth is influential. It is not a language like Java which you can download and use and which acts the same wherever you put it. It is more of a philosophy than a language. It's an idea about how simple a powerful language can be - and how fast you can get from "close to the machine" to "close to the problem". As I've said before, real programmers can write Forth code in any language. Thus Forth is alive and well.
? Portability is not important for some applications, such as embedded applications. If you're writing code for a specific microcontroller which will control a specific motor in a specific tractor, there is no need for it to be portable. It is more important that it be developed on time and that it work correctly. Portability in those cases serves only to invite industrial espionage (and to add layers of abstraction which achieve portability at the expense of efficiency).
? Depends a lot on how well it's written. BadCodeCanBeWrittenInAnyLanguage
is a non-issue when the code is well-factored. You'll find that well factored code has only a hand-full of system dependent words. The remainder of the software is expressed in terms of those words. The end result is that it usually
takes no more than an hour or two to port any Forth program to any platform. For those rare occasions where it takes longer, you'll invariably find the reason to be precisely the same reason why it takes so long to hack C code to work on a foreign architecture (usually unexpected endianness issues or word size issues that weren't properly factored out). Forth words double not only as functions, but they serve the same purpose as C #define macros. Therefore, as with C, "porting" Forth software involves only changing those words/#defines that need to be changed. The remainder of the software is agnostic to its surrounding environment.