Live data from Hacker News

Why We Should Teach Python instead of Racket

acbart.github.io

21–30 of 69 posts

Re: Why We Should Teach Python instead of Racket

#21
post #12

Python is a terrible choice as a first language. Idiomatic python is just glue code that obfuscates the underlying algorithms. Object oriented programming (implementation inheritance) is increasingly regarded as an antipattern, and it encourages that too. The massive performance penalty of writing logic in python vs calling out to external libraries mostly forces developers to program by lego-brick assembling externa…

Object oriented programming is an antipattern?

Can you explain this? I am not a CS major, but I find using classes quite useful.

Re: Why We Should Teach Python instead of Racket

#22
Being in lock-down mode, I thought it would be a good time to finish reading (and doing) the "Structure and Interpretation of Computer Programs" that I started many years ago and abandoned. Ever since I read Paul Graham's essays on Lisp, I dreamed that I'd like to be able do build domain specific languages "when I grow up". Life always gets in the way, but I now decided to give Lisp another chance.

And now this. Hm, should I abandon SICP again? Maybe the guy is right that beyond all the grand philosophizing of the amazing power of Lisp there's little substance. On the other hand, I also know the website I'm posting this comment on is built on Lisp. I'm torn.

Re: Why We Should Teach Python instead of Racket

#23

Being in lock-down mode, I thought it would be a good time to finish reading (and doing) the "Structure and Interpretation of Computer Programs" that I started many years ago and abandoned. Ever since I read Paul Graham's essays on Lisp, I dreamed that I'd like to be able do build domain specific languages "when I grow up". Life always gets in the way, but I now decided to give Lisp another chance. And now this. Hm,…

That's not what he's saying at all. He's saying that it may not be the right language for an intro CS course for typical freshmen. One can argue back and forth about that. But if you want to learn deeper concepts about programming that go beyond a typical intro to CS class, SCIP is a great book and Scheme a great language, and I'm sure the author of this article would agree 100%.

Re: Why We Should Teach Python instead of Racket

#24

Being in lock-down mode, I thought it would be a good time to finish reading (and doing) the "Structure and Interpretation of Computer Programs" that I started many years ago and abandoned. Ever since I read Paul Graham's essays on Lisp, I dreamed that I'd like to be able do build domain specific languages "when I grow up". Life always gets in the way, but I now decided to give Lisp another chance. And now this. Hm,…

Unfortunately SICP isn't really all that suitable for learning Scheme (or Lisp).

Re: Why We Should Teach Python instead of Racket

#25
post #12

Python is a terrible choice as a first language. Idiomatic python is just glue code that obfuscates the underlying algorithms. Object oriented programming (implementation inheritance) is increasingly regarded as an antipattern, and it encourages that too. The massive performance penalty of writing logic in python vs calling out to external libraries mostly forces developers to program by lego-brick assembling externa…

Python has typing as of 3.5, although it’s limited to third party tools. Still useful.

https://docs.python.org/3/library/typing.html

Also why is OOP considered an anti-pattern?

Re: Why We Should Teach Python instead of Racket

#26
post #6
post #4

Earlier quoted context omitted.

That's ridiculous. It's computer science , not computer programming technician. You teach with the tool that most clearly distills the principles of what you're trying to teach. Racket and Scheme arguably do that much better than Python. In fact, Racket 15 years ago still has more cutting edge features than Python has to this day . There is simply no language that provides the breadth of features available in Racket,…

I thought the person that you're replying to made a very good point about Esperanto. Why do we teach linguistics with messy real-world languages instead of conlangs that most clearly distill the principles we want to teach?

> Why do we teach linguistics with messy real-world languages instead of conlangs that most clearly distill the principles we want to teach?

Because we're not teaching language science in that case, we're teaching proficiency in an actual language.

An industry language is fine for a software engineering degree, or a technician degree of some sort.

Re: Why We Should Teach Python instead of Racket

#27
post #11

Earlier quoted context omitted.

What is particularly more difficult about Racket, other tha maybe using a paradigm you are not familiar with?

Did you read the linked article? It is a pretty thorough explanation along with surveys of students. Only 22% liked racket!

So most people who know almost nothing about programming hate Racket. Can't say I find that compelling.

Re: Why We Should Teach Python instead of Racket

#28
post #6

Earlier quoted context omitted.

I thought the person that you're replying to made a very good point about Esperanto. Why do we teach linguistics with messy real-world languages instead of conlangs that most clearly distill the principles we want to teach?

> Why do we teach linguistics with messy real-world languages instead of conlangs that most clearly distill the principles we want to teach? Because we're not teaching language science in that case, we're teaching proficiency in an actual language. An industry language is fine for a software engineering degree, or a technician degree of some sort.

Just to make sure I understand you right - you're claiming that the academic discipline of linguistics is not "language science," it's "proficiency in an actual language", and a school with a "language science" program instead of a linguistics program would teach introductory language science in a conlang?

https://en.wikipedia.org/wiki/Linguistics

Re: Why We Should Teach Python instead of Racket

#29
post #6
post #4

Earlier quoted context omitted.

That's ridiculous. It's computer science , not computer programming technician. You teach with the tool that most clearly distills the principles of what you're trying to teach. Racket and Scheme arguably do that much better than Python. In fact, Racket 15 years ago still has more cutting edge features than Python has to this day . There is simply no language that provides the breadth of features available in Racket,…

I thought the person that you're replying to made a very good point about Esperanto. Why do we teach linguistics with messy real-world languages instead of conlangs that most clearly distill the principles we want to teach?

Interesting point. You are mixing up teaching language with teaching linguistics. Teaching linguistics usually includes phonetics, phonology, morphology, syntax, semantics, pragmatics, discourse, typology and semiotics. Quite similar to teaching computer science. The concepts are independent of the implementation. In this context using Python is bad because it has a very limited set of concepts that worth knowing. Racket has many more. In the context of working in the industry Python _experience_ might be more valuable, but it has nothing to do with how good it is to tech computer science.

https://ufal.mff.cuni.cz/~hana/teaching/2015wi-ling/01-Intro...

Re: Why We Should Teach Python instead of Racket

#30
post #11

Earlier quoted context omitted.

What is particularly more difficult about Racket, other tha maybe using a paradigm you are not familiar with?

Did you read the linked article? It is a pretty thorough explanation along with surveys of students. Only 22% liked racket!

I remember in high school when only 20% of my class liked math. We should stop teaching math, right?
Post reply on HN