lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Mon, Apr 24, 2017 at 5:49 AM, steve donovan
<steve.j.donovan@gmail.com> wrote:
> On Mon, Apr 24, 2017 at 2:25 PM, Dirk Laurie <dirk.laurie@gmail.com> wrote:
>> If I had my way, beginners to programming would learn Pascal first,
>> in more or less its original form.
>
> I did program Pascal in the original form, and it did liberate me from
> Fortran-thinking.
>
> But it isn't a good introduction to Lua ;)  For one thing, static
> typing is extra overload for beginners, and second, the concepts don't
> match over that very well.
>
> Loops, conditionals, blocks, lexical scoping, functions, etc are all
> present in particularly clear forms in Lua. But  I think there's room
> for a very gentle intro that doesn't assume the shared vocabulary of
> programming.

I think I disagree with both sides of that. :P

On the one hand, I think that Pascal in its original design is too
alien from how modern code is organized to be a good choice.
"Structured programming" is out of style, and trying to think about
how to organize functions to only ever have one exit point is probably
more harmful than helpful to learning good style.

On the other hand, I think static typing is actually beneficial to
beginners. In my experience, a lack of restrictions CREATES problems
for novices, and the presence of restrictions provides the boundaries
to help define the universe of ideas. Pascal's insistence on
structured programming is built on the same concept.

I think of the modern languages I know, it's probably C# that comes
closest to the ideal teaching language in my opinion. It's not perfect
for the role because of a few places where it's a little TOO nitpicky,
and the standard libraries inherited a lot of ugly legacy Microsoft
design decisions, but I think that a C#-like language with a
well-designed set of beginner-friendly libraries would be an excellent
choice for teaching.

/s/ Adam