2017-04-24 9:44 GMT+02:00 steve donovan <steve.j.donovan@gmail.com>:
> On Mon, Apr 24, 2017 at 8:39 AM, Bill Kelsoe <wildbillkelsoe@gmail.com> wrote:
>> Array (and associative type)
>> Argument
>> Calls(Function Calls)
>> Constructor
>> Compiler
>> Class
>> Chunk
>> Data structure
>
> Yes, this is the basic vocabulary of programming language concepts.
> It's surprisingly hard for a non-beginner to remember their original
> difficulties (often called the 'expert problem').
>
> I did a few searches and this material is scattered all over the
> place. Often the introductions make the mistake of illustrating
> concepts with a whole bunch of programming languages, which is
> confusing. Hitting Wikipedia all the time can be frustrating.
>
> There's definitely a need for some introductory material here that
> defines these terms informally, illustrated with Lua.
>
> For instance, it is a little strange at first that we 'call' a
> function and 'pass' it 'arguments'.
If I had my way, beginners to programming would learn Pascal first,
in more or less its original form. Then Lua, starting with the sentence
"Lua looks a little like Pascal, but is a lot more powerful." After that,
concepts get explained in terms of how they differ from Pascal.
As a bonus for this idea, Free Pascal currently offers a Lua module.
First C, then Lua. Those that drop out didn't want to be programmers. That's a difficult message to receive when you're 8, but it's a harsh world. ;)
-Andrew