←back to thread

284 points borski | 6 comments | | HN request time: 0s | source | bottom
Show context
MontyCarloHall ◴[] No.44685710[source]
Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational?

LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching applied computer engineering, because it's essentially executable pseudocode for imperative languages, and imperative languages are the most common language a computer engineer encounters in the real world.

replies(18): >>44685819 #>>44685842 #>>44685939 #>>44686019 #>>44686088 #>>44686154 #>>44686222 #>>44686308 #>>44686321 #>>44686533 #>>44686596 #>>44686808 #>>44687195 #>>44687197 #>>44688209 #>>44688239 #>>44688473 #>>44688736 #
1. zozbot234 ◴[] No.44688473[source]
> 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.

replies(2): >>44689486 #>>44690206 #
2. gowld ◴[] No.44689486[source]
Python was invented as a language for newbies. It's come a long way!

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)

> It is intended for teaching or prototyping

replies(2): >>44691228 #>>44697374 #
3. leoc ◴[] No.44690206[source]
> 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/ 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.

replies(1): >>44698317 #
4. bmitc ◴[] No.44691228[source]
It was an attempt but a bad one.
5. ThrowawayR2 ◴[] No.44697374[source]
> "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.

6. adsharma ◴[] No.44698317[source]
I 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.