It is a beautiful language, if you can handle it.
It is a beautiful language, if you can handle it.
You have two very very global variables to arrange your control flow.
Nothing is pure and everything can affect anything. It is very hard to reason and to draw borders.
FORTH excels at control jobs and other embedded tasks.
As a side note, I've done image processing with forth: I helped build a commercial HD video camera with it that shipped in the mid 2000s, and I found it well suited once we had the problem reasoned out well enough to build our DSL. Overall the product ended up being composed of forth/C/hand written assembly, and a bunch FPGAs. We shipped things with < 10 people, and I think the interactive/extensible mindset that forth gave us helped us get the product out the door successfully.
I'm really curious how you did that image processing stuff but I suspect it is not in any public repository :)
So I have an idea of what is going on.
In C you cannot have a variable number of ints pushed as arguments to procedure call due to change in one func signature.
(I also know about C calling convention, you can have old code linked, right)
Most languages provide more protection.
There was a time every Sun and Apple computer came with a FORTH interpreter in ROM
And there's a reason they don't any more. It was a pretty interesting way of enumerating device capabilities, and a terrible way of abstracting device driver details, which was why it was there. Having tried to beat Sun OpenFirmware Forth into making SBus device drivers "easier", I guess I fall into the "too dumb" category, because it was a disaster.
It is a beautiful language, if you can handle it.
Says every language zealot, ever.