Live data from Hacker News

Python should not be taught as a foundational language

thedropout.dev

1–10 of 82 posts

Re: Python should not be taught as a foundational language

#2
I loathe Python, but I still disagree.

Python is important learn, for one thing. I don't know of anyone using Java or JavaScript for statistics.

For another, being unlike C is a strength. I would modify the argument to be, "Python should be taught as a foundational language, along with [insert C-like, non-GC language here] and something in the OCaml family."

No one should learn CS or programming as a trade with only a few languages in the same syntax family.

Re: Python should not be taught as a foundational language

#3
Absence of clear types is what driven me mad (and my ex), when my ex tried to learn python via interactive online courses. Constant questions like: "why this thing named a is a number and this one thing named "b" is now a list and this other thing does stuff". Switched to java, all problems immediately disappeared.

Re: Python should not be taught as a foundational language

#4
post #2

I loathe Python, but I still disagree. Python is important learn, for one thing. I don't know of anyone using Java or JavaScript for statistics. For another, being unlike C is a strength . I would modify the argument to be, "Python should be taught as a foundational language, along with [insert C-like, non-GC language here] and something in the OCaml family." No one should learn CS or programming as a trade with only…

"No one should learn CS or programming as a trade with only a few languages in the same syntax family."

This is a fine ideal, but I bet there are tons of professional programmers who only know a couple of languages all from the syntax family set of { C, C++, Java, JavaScript, PHP, Swift } and it's not a career problem at all.

Re: Python should not be taught as a foundational language

#5
Python is far simpler than Java in its essence; you aren't required to write class and access control boilerplate if you don't want to, you don't have to explain type systems, and the syntax is much cleaner. I would personally recommend Racket/Scheme as the foundational language for computer science and software engineering over Python as it is even simpler, but I can understand why Python has displaced Java as the default teaching language at many universities.

Beginning programmers don't care about any of this stuff about the version split or strings, and the syntax and semantics argument is completely subjective.

Re: Python should not be taught as a foundational language

#6
None of these things are specifically related to teaching programming. This is just the author's personal list of things they hate about Python, and they're using "what language should we teach newbies?" as an attempt to make it seem like more.

There's nothing wrong with having an opinion about Python, but for this to really be a valuable insight into teaching Python, there needs to be some introspection into why dynamic typing is bad as a foundational language, etc, and also needs to analyze the other side of the coin: the many things that do make Python attractive as a first language. Without it, this is just a rant #34929865 about Python's lack of typing and curly braces.

Re: Python should not be taught as a foundational language

#8
All I see is a list of complaints about warts that Python has, and no real foundational reasons for or against using Python, such as the ecosystem, long term cost of ownership, ease of iteration, or ability to manage a codebase at scale. I think this blog post is not named accurately.

Re: Python should not be taught as a foundational language

#9
I started with Java originally, but the school where I learned has since switched to Python.

For those who learned Python as a first language, how well did you do with typing? My guess is that learning Java for me enforced thinking about the types for everything, and the compiler gave me useful errors, rather than at runtime. I could see a student getting frustrated with runtime type errors, especially for things returned from their own functions, which can snowball easily into a mess.

Re: Python should not be taught as a foundational language

#10
Somewhat reasonable title but poorly written content.

> For instance, what is called an "Array" in pretty much every mainstream language, is instead called a "List" in Python.

Because it is a list rather than an array (as in C).

> Another issue with Python is that it is essentially two different languages, there's Python 2.7 and Python 3+.

It's 2020, you are not supposed to teach Python 2 to newbies.

I was expecting more in-depth discussion, and the whole article is just way too superficial.

Post reply on HN