Live data from Hacker News

Why We Should Teach Python instead of Racket

acbart.github.io

41–50 of 69 posts

Re: Why We Should Teach Python instead of Racket

#41
Great read. I’m a senior studying comp sci at University of Delaware, and I couldn’t agree more! We learned Racket freshmen year - and I can confidently say that Racket had no perceivable advantage to my computer science education over any other language. In fact, the course introduced python towards the end of the semester which made it more of a headache since we had to take a final exam in both syntaxes. It would’ve been better to have used python from the start.

Re: Why We Should Teach Python instead of Racket

#42

Earlier quoted context omitted.

There is no reason computer science needs to be steeped in academia. The only reason why it is so popular in the first place is because it is so practical and applied. Easy to profit from. If you worship your ivory towers, feel free to become a mathematician.

I think computer science has every reason to be steeped in academia.

By your logic, the creators of PageRank should have chased after the tenureship rat race like every upstanding academic instead of trying to commercialise.

Re: Why We Should Teach Python instead of Racket

#43

Earlier quoted context omitted.

I think computer science has every reason to be steeped in academia.

By your logic, the creators of PageRank should have chased after the tenureship rat race like every upstanding academic instead of trying to commercialise.

> By your logic

That does not follow, in any shape or fashion, from what was stated.

Re: Why We Should Teach Python instead of Racket

#44
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…

It doesn't matter it’s slower than C/++ or Java . In fact, that’s an advantage; you want your algorithms to be fast because they’re actually good, not just because your hardware is fast. I think you completely missed the point on what algorithms are.

You might look at this answer: https://www.quora.com/Why-is-Python-not-a-suitable-language-...

Re: Why We Should Teach Python instead of Racket

#45

Full disclosure - I took 3 classes in Racket: Intro to CS, Programming Languages, and Compilers. > Racket is not a very popular language in teaching communities This list of schools with introductory Racket classes isn't accurate, because the author did not look beyond the naming of the courses on the Github page. My school was missed. > Students are unlikely to have had prior experience with Racket This is good beca…

There is no reason computer science needs to be steeped in academia. The only reason why it is so popular in the first place is because it is so practical and applied. Easy to profit from. If you worship your ivory towers, feel free to become a mathematician.

Please don't take HN threads into flamewar. It leads to predictable places, therefore tedious ones, therefore off-topic ones.

https://news.ycombinator.com/newsguidelines.html

Re: Why We Should Teach Python instead of Racket

#46
post #17

Earlier quoted context omitted.

Right. And doesn't that apply to programming languages too? Aren't the ways that Python is irregular to support real-world needs (the Zen of Python even says "Practicality beats purity") worth CS students studying?

No, because this is computer science and not software engineering. The best introductory language is the one that allows to express the concepts that are presented in the cleanest way possible. If you want "real-world needs" then drop out and work for a software company. The purpose of universities is not to cater to the needs of industry - to pump out code monkeys.

Just to make sure I understand you correctly - you're arguing that it is not the place of universities to address real-world needs? History and economics faculty should have nothing to offer to politicians? Biologists in universities should study model organisms, leaving the study of humans to the medical industry, and biology degree programs should not pump out health monkeys? Law professors should discuss specially-constructed legal systems that are not used by real-world jurisdictions so that concepts can be presented in the cleanest way possible? Music programs should avoid teaching actual Bach chorales because his real-world music sometimes included parallel fifths?

Re: Why We Should Teach Python instead of Racket

#47
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?

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. Ra…

OK, so you're saying that in universities that teach linguistics (instead of teaching languages), they do in fact strongly prefer to teach in idealized conlangs like Esperanto and avoid working with irregular real-world languages?

Can you give me an example of such a university curriculum?

Re: Why We Should Teach Python instead of Racket

#48
post #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.

These articles are very good on topic:

http://loup-vaillant.fr/articles/deaths-of-oop

https://medium.com/javascript-scene/the-forgotten-history-of...

https://www.yegor256.com/2016/08/15/what-is-wrong-object-ori...

Re: Why We Should Teach Python instead of Racket

#49
post #46

Earlier quoted context omitted.

No, because this is computer science and not software engineering. The best introductory language is the one that allows to express the concepts that are presented in the cleanest way possible. If you want "real-world needs" then drop out and work for a software company. The purpose of universities is not to cater to the needs of industry - to pump out code monkeys.

Just to make sure I understand you correctly - you're arguing that it is not the place of universities to address real-world needs? History and economics faculty should have nothing to offer to politicians? Biologists in universities should study model organisms, leaving the study of humans to the medical industry, and biology degree programs should not pump out health monkeys? Law professors should discuss specially…

I didn't say anything about areas whose research focus coincides with 'real-world needs', I specifically talked about programming languages and concepts. And no, universities should not teach micro services, enterprise Java code, or the latest frontend frameworks. But yeah, keep twisting my words around.

Re: Why We Should Teach Python instead of Racket

#50

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,…

Check out Composing Programs for an SICP in Python https://composingprograms.com
Post reply on HN