Hacker News new | ask | show | jobs
by brightball 3798 days ago
Here is the exact quote from the article:

> Anyway, what did this mean for Rails and how does this principle continue to guide its evolution? To answer that, I think it’s instructive to look at another principle that was often used to describe Ruby in the early days: The Principle of Least Surprise. Ruby should behave how you’d expect it to. This is easily described with a contrast to Python:

> code snippet

> Ruby accepts both exit and quit to accommodate the programmer’s obvious desire to quit its interactive console. Python, on the other hand, pedantically instructs the programmer how to properly do what’s requested, even though it obviously know what is meant (since it’s displaying the error message). That’s a pretty clear-cut, albeit small, example of PoLS.

Nowhere in the above is he calling Python bad. He's using an example of how Python handles a thing to illustrate how Ruby handles that exact situation differently inline with his philosophy "Principle of Least Surprise". I'm not trying to get into a semantic argument here, just pointing out that he's making an illustration with a minor detail.

Calling Python "bad" would make no sense, because Python is wonderful. This is just a way to highlight how Ruby does things differently than others have chosen to do them.

2 comments

Unfortunately it seems like the argument is mainly semantic then - I find it reasonable to think that "pedantically instructs the programmer how to properly do what’s requested, even though it obviously know what is meant" is pretty much a detour to say it's not good, it's implied.

I just don't see why DHH needs to do this - ruby has so many things that make it stand on its own.

That's fair. Sometimes to put decisions in context you need to be able to compare it to something else, but I do understand where you're coming from.
I think his example is just very badly chosen then. In Python having something like "exit" execute program ending code is extremely surprising if you know a bit the language.