Conversation
Notices
-
Here Chuck is talking about how he got tired of all the various loop construct and says that what he is doing today is just recurse into yourself if you need a loop.
What he is describing is basically a named let and a tail call. Very cool. The similarities, or maybe duality, of !scheme and !forth have never been more obvious.
> (Jeff) You might point out that your semicolon after WORD results in tail recursion and converting the call in WORD to a jump and that is how it functions.
> (Chuck) So there is no reason to make that a call since you are never going to go anywhere afterwards so you just make that jump. In fact in all my latest Forths semicolon kind of meant either return or jump depending on the context and it's optimized in the compiler to do that. It's a very simple look back optimization that actually saves a very important resource, the return stack.
http://www.ultratechnology.com/1xforth.htm
-
What I love about Chuck is his unyielding conviction. I would love to hear this talk, but unfortunately it's only available in the store that no longer sells things.
Chuck Solved Software in the 80s, and then he wanted to Solve Hardware:
> First the software problems were solved. It was easy to write applications, trivial to write applications. All the problems lay in the hardware. Hardware was awkward and messy and unreliable especially if you were dealing with a custom system that someone had built for which they wanted custom software. It became a real drag to try to debug the hardware for them. And it became clear that the hardware engineers weren't doing a very good job. Better than the software engineers in the industry but not as good as the software engineers in Forth. So I thought I would see what I could do to address the hardware problem. That might have been a mistake. Forth is a lot of fun to work with, hardware is not so much fun.
I particularly like this excerpt of the excerpt:
> And it became clear that the hardware engineers weren't doing a very good job. Better than the software engineers in the industry but not as good as the software engineers in Forth.
:-D
-
It's here!
https://www.youtube.com/watch?v=NK0NwqF8F0k
-
@solderpunk No, that's exactly what I feel too. Love the guy, love his conviction, he has obviously done some awesome stuff, but two parameters is all you'll ever need for a function? Really? Everybody is writing 10x too much code? Let's see you implement an optimizing JS JIT and an HTML5 implementation.
Not saying there's anything right with JS or HTML5. But sometimes you need to implement these things.
After reading the transcript and then watching the video, I'm impressed that he presents more like Mr. Rogers and less like Alex Jones. So he's got that going for him. :-)
I think when he Solved Software back in the 80s, he really solved Modern Real World Problems by just not having them. He mentions he did embedded a lot, where you own a lot of the environment yourself. He keeps advising against solving generic problems. And maybe we should all stop doing that. Maybe we all just brought this mess upon ourselves by not developing with Forth The Methodology. Too many layers, too much compulsive reuse?
It's not easy though. Worse is better.