Ask HN: Why did Python win?
What concepts does a language <i>force</i> a new user to be aware of, and how reliable are user&#x27;s first intuitions about those concepts?<p>I would argue that Python dominates Ruby in this metric.<p>New users wonder how to call functions. They form an intuition (&quot;use parenthesis&quot;), but it&#x27;s unreliable. &quot;Oh, parenthesis are optional--oh, parenthesis are only optional sometimes&quot;.<p>New users wonder what a function <i>is</i> exactly. They form an intuition, but their initial intuition doesn&#x27;t encompass all 7 different types of callables in Ruby, so many surprises and frustrations await.<p>Python is much more boring in this respect, users are more likely to form accurate intuitions.<p>What follows is my subjective experience as I came to like Python but hate Ruby: I learned Python in the mid 2000&#x27;s while trying to script Asterisk. Asterisk had an existing community around PHP and Ruby, so I looked at Python, PHP, and Ruby with fresh eyes, Python appealed to me most. I remember being very confused about what Ruby &quot;gems&quot; were, I thought they were something like &quot;JavaEE&quot; that I&#x27;d heard about in passing at school, some kind of compiler plugins or something complicated. Python had &quot;libraries&quot; though, I knew what they were. I didn&#x27;t seek out learning materials for the languages, I only saw how people were talking about them in the Asterisk community. I&#x27;m sure the right material would have explained what a &quot;gem&quot; was very well, but those obscure mailing lists I was reading did not. I never did give Ruby a fair shake, so don&#x27;t take this as advice, these were merely my experiences as a new programmer looking at both languages with fresh eyes.