2 ms·
> Whereas Python is excellent for teaching applied computer engineering, because it's essentially executable pseudocode for imperative languages It's not that
by zozbot234 1y ago
> Whereas Python is excellent for teaching applied computer engineering, because it's essentially executable pseudocode for imperative languages
It's not that simple, Python is a fiddly, complex, high-level language that has accreted features in a very ad-hoc way. This makes it very hard to teach and learn in a way that's expected to pay even the most cursory attention to actual rigor. You could probably define a Baby Python subset of the language that's just as simple and rigorously defined as Scheme and teach that, but this isn't how the new MIT intro courses have been designed.
- gowld 1y agoPython was invented as a language for newbies. It's come a long way! https://en.wikipedia.org/wiki/History_of_Python#Version_1 https://en.wikipedia.org/wiki/History_of_Python#Version_1 > During Van Rossum's stay at CNRI, he launched the Computer Programming for Everybody (CP4E) initiative, intending to make programming more accessible to more people, with a basic "literacy" in programming languages, similar to the basic English literacy and mathematics skills required by most employers. Python served a central role in this: because of its focus on clean syntax, it was already suitable, and CP4E's goals bore similarities to its predecessor, ABC. https://en.wikipedia.org/wiki/ABC_(programming_language) https://en.wikipedia.org/wiki/ABC_(programming_language) > It is intended for teaching or prototyping
- bmitc 1y agoIt was an attempt but a bad one.
- ThrowawayR2 1y ago> "Python was invented as a language for newbies." Yeah, but so was BASIC. If Edsger Dijkstra were alive today to write an updated edition of his infamous "How Do We Tell Truths That Might Hurt?" essay, he'd probably just just reuse his quip for BASIC for Python.
- leoc 1y ago> You could probably define a Baby Python subset of the language that's just as simple and rigorously defined as Scheme and teach that Pyret https://pyret.org/ https://pyret.org/ started out with more or less that ambition I think. IIRC its author had previously tried to work with Python (and its dev team) but gave up.
- adsharma 1y agoI had a Twitter exchange with the author a few days ago on these topics. My approach is to do what pyret was trying to do while maintaining the python syntax (with minimal deviation where necessary). Making Python look more like Rust has a lot of support and could correct some of the his historical "injustice" :) Because of the strong support for keeping python as an approachable imperative language, this will unfortunately require forking.