Hacker News new | ask | show | jobs
by kenhwang 2885 days ago
And Python is taught in the intro to programming course in just about every college in the world.

Dumb simple languages make better teaching tools, but unlike Lisp and Smalltalk, Python was also good enough for widespread professional use.

So almost everyone is exposed to Python, many people never bothered to learn anything better. Inertia is a hell of a force.

2 comments

> And Python is taught in the intro to programming course in just about every college in the world.

Why do you think that ended up python instead of ruby? Something about the language or it's uses, or just a coincidence of history?

I have no idea myself.

I think ruby and python are about equal level of both "simpleness" (neither is very simple, actually; although it depends on what you mean by 'simple') and "good enough for widespread professional use" (both are, and especially both were ~8 years ago). Or do you disagree and think they differ there?

I love Ruby, but I would still advocate for Python as a teaching language.

Ruby's grammar is objectively more complex than Python's. People generally get stuck on syntax issues when they begin learning programming. Python's significantly simpler grammar, simpler and fewer basic building blocks, and historically "only one way to do things" philosophy makes it easier to pick up.

Ruby's conventional control flow also doesn't translate well to lower level languages; Enumerable pretty much replaces all sorts of loops, functions/methods tend to be chained instead of wrapped (math style), implicit returns, and perlisms, all make Ruby more confusing for a first timer language.

When MIT stopped teaching Scheme (replaced with Python) a couple of years back, yet another essential concept in computing left the academy. This is exactly the kind of thing Kay means when he talks about computing pop-culture.

Anyone who's ever read The Little Schemer knows what I mean.