lua-users home
lua-l archive

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


On Thu, Apr 27, 2017 at 7:10 AM, steve donovan
<steve.j.donovan@gmail.com> wrote:
> On Thu, Apr 27, 2017 at 1:39 AM, Coda Highland <chighland@gmail.com> wrote:
>> ... But in terms of actually building engineering
>> skill, I think starting off with a statically-typed object-oriented
>> language is a better choice.
>
> A few points. The first is that many of us did not start off that way,
> and 'graduated' to such languages later. (Basic seems to have damaged
> very few minds, if any).  Now, I personally started off with Fortran
> (very vaguely typed in those days), but the following year had a most
> excellent course in Pascal with Judy Bishop for which I'm always
> grateful. Structured programming was just what I needed.

I certainly didn't start off that way either. I started with Applesoft
BASIC in 1987. Structured programming was certainly an improvement
over my self-taught designs, but we've had 30 years of refinement
since then and I see no reason to teach the structured programming
paradigm the way it was originally designed. Better to focus on modern
best practices.

> The second point hinges on the word 'engineer'. There are many people
> who need to script things, but won't become professional programmers.
> For instance, engineers using VBA, scientists using Python, and so
> forth. I suspect this group is larger.

Certainly so, and I believe that might be a fundamental difference in
what drives our opinions. I'm coming at this from the perspective of
educating people who want to make a career out of making application
software, whereas I fully acknowledge that there is a completely
different field of people for whom programming is an incidental part
of their career instead of the focus. For the latter group,

> People learn Java (badly) and follow all the Python
> examples, and get fixated on a particular kind of OOP.

Ugh, yeah, no kidding. There's a reason I said C# and not Java. Java's
become ridiculously cargo-culty, and Python... I detached from that
community YEARS ago and just write my own code my own way so I don't
know what they're like these days.

> There's a new
> breed of statically-typed languages which sidestep this, like Go and
> Rust. Very differ  ent (apart from some syntactical similarity) but
> both very different from the cartoon picture of OOP that comes
> illustrated with animals.

I need to learn Rust one of these days. Go... does not impress me, and
I'm a Xoogler. I just don't get it.

> In fact, I may agree just a little with Prof Dijkstra, if he had said
> instead that over-learning and over-applying a paradigm damages the
> ability of students to learn new things.

Absolutely! That's why I said Scheme is a great second language --
introduce it after the students have gotten past the "this is how to
make the computer do what you want it to do" stage, bring in some new
fundamentals, really broaden horizons.

/s/ Adam