Matthew MacDonald
2 min readAug 22, 2019

--

Thanks for sharing such a detailed response! You are no doubt right about Dijkstra, although that doesn’t tell us much about the premise of the argument. Here are a few of my thoughts — not meant to contradict your experience, but to offer a bit more context about my own.

First, Pascal. It was rhapsodized when I first encountered it, but I must confess that I was disappointed by the version I learned on. I don’t remember what that version was, but I do remember it was slow, it lacked the ability to do any of the things I thought were “cool” as a kid (say, interface with a sound card), and I had no idea how to deploy it to a friend’s computer. Contrast that with a JavaScript page… well, you can see the appeal of being able to develop something you can immediately share with peers. Want to write a personality quiz (like my girls)? A fortune teller? A really simple game with the HTML canvas? The ability to show anyone what you’ve done is powerful, for kids and adults.

Second, Logo. I am a bit of a Logo skeptic, despite its much-touted grounding in psychology. My first exposure to computing, long before I had a computer of my own, was Logo in a computer workshop. I understand how it’s possible to teach algorithmic basics (loops, conditions, etc.) with Logo, but it always seems to me like a series of exercises rather than a real programming experience (which to me means building a creative “thing” that you can share with someone else). That said, I’m sure Logo is a great tool in the right hands and for the right students.

Now back to JavaScript. Without doubt, it’s full of potential pitfalls. The question is can you safeguard those enough to make a reasonably modern programming environment for a new learner. You write “I think that teaching beginning programmers JavaScript as their first or second language could introduce habits and patterns of thought that would actually be harmful to them in their careers.” This is, of course, the interesting part — and the most difficult one to weigh in on conclusively. But people have had similar criticisms about plenty of other languages, from COBOL to VB. If I look back at my first steps in code, I’m sure I’ll find it littered with GOSUBs and other nightmares. But many of us begin hacking at the edges of our knowledge, and gradually move toward better organization, structure, and encapsulation. I don’t think that’s a bad way to learn — it might be a sub-optimal way, but I’m not sure about that either.

Now, could JavaScript provide new learners with such a bad beginning experience that it sets them back or discourages them altogether? Maybe! And I’d welcome reading more of your (or anyone’s) thoughts and experiences on that subject. If nothing else, JavaScript puts up some hurdles that teaching languages do not. But I still think there’s a path forward.

--

--

Matthew MacDonald
Matthew MacDonald

Written by Matthew MacDonald

Teacher, coder, long-ago Microsoft MVP. Author of heavy books. Join Young Coder for a creative take on science and technology. Queries: matthew@prosetech.com

Responses (1)