Re: Forth Frustrations



On Apr 13, 12:21 pm, John Passaniti <n...@xxxxxxxxxxxxxxxxx> wrote:

There are multiple ways to look at simplicity. In Tester,
implementation simplicity is paramount because the code has to be as
small as possible. But again, I also feel this is linguistically
simpler as well.

So, I've never had trouble with users understanding that the phrase
"defname :" attaches "defname" to the following code. For the users'
viewpoint there is no "input buffer": there is only language.

But that's not the issue. The issue is that I can tell users that *all*
words consume zero or more items on the stack and return zero or more
items. Once they understand that rule, they then know what to expect of
all other words. There are zero exceptions to complicate the discussion.

Yes! Although I had to admit to users that some words might pass data
using variables, so that there's no stack effect but still hidden data
transfer. Still, getting rid of parsing words makes it simpler.

It's also not an issue that your users or Forth users "have trouble"
understanding how Forth or LSE64 works. There are lots of computer
languages which have insane syntax that programmers have learned to
internalize. The question is conceptual simplicity. Syntax is just a
way to encode intent. It's the underlying intent of the programmer that
matters more than syntax, and by eliminating concepts that get in the
way of that intent, I end up with a simpler language.

Yes! Amen, brother!

Your LSE64 has immediate words and "sooner" words. Hard to understand?
No. But it remains just another little thing the programmer has to
understand in order to use LSE64. Tester doesn't need immediate words
and certainly doesn't need "sooner" words. I spend zero time explaining
the concept because it doesn't enter into the language. You spend
non-zero time. Is it much? Probably not. But add up all the little
non-zeros, and... well, there you go.

Yes, exactly! Thank you, you're saying it better than I knew how to.

.



Relevant Pages

  • Re: Forth Frustrations
    ... *all* words consume zero or more items on the stack and return zero or more items. ... it clearly describes the language and says little if anything about the underlying implementation. ... The language offers words that only ever consume and leave items on the stack. ... The model I would use to implement LSE64 in Standard Forth is to construct a thin portability layer. ...
    (comp.lang.forth)
  • Re: Forth Frustrations
    ... *all* words consume zero or more items on the stack and return zero or more items. ... it clearly describes the language and says little if anything about the underlying implementation. ... I'm not sure how this relates to my description of Tester. ... I would first create a thin portability layer and express the swap in terms of that layer, ...
    (comp.lang.forth)
  • Re: Setting based 1 Arrays
    ... However after the inconsistancies of vb6 I'm quite happy to have everything in zero based if it's consistant. ... For BASIC-like language, in principal these are based 1 indexing. ... VB.net developers might accept 1 based arrays but C# developers will be anything from annoyed to outraged. ... I am 100% sure that he will want to re-use some of the WCC code in his VB.NET code. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: May the Fourth be with you
    ... Pick zero ... I'm an above-average programmer, but hardly unique. ... Employers are looking for someone younger. ... programming language. ...
    (rec.arts.sf.fandom)

Loading