Disclaimer: All opinions expressed herein are my own and don’t necessarily reflect that of my employer. Caveat: I hold these opinions and make these recommendations specifically with respect to high school students (or casual hobbyists).
I have a friend in my neighborhood who teaches high school computer science. When she happened to mention that she was trying a new curriculum for one of her classes, I asked her which programming language she was planning to use in her class. She said that she hadn’t quite decided yet, but was leaning towards JavaScript, because it’s ubiquitous and (importantly!) runs well on her school’s Chromebook machines. Upon hearing that she was favoring JavaScript, I ran my mouth and recommend that she instead consider Python. Based on my professional experience with both JavaScript and Python, I feel comfortable stating that JavaScript has quite a few pitfalls in terms of learning, and has a non-trivial path to writing high-quality code. I also feel comfortable stating that Python has a number of educational virtues, and has a fairly strong path for students to learn to write high-quality code.
...