This article is ok as far as it goes, which isn't very far. Embracing implicitness can give benefits in the way that DHH describes. It can also lead to violations of your expectations.
Now, raise your hand if you honestly think that the answer is "embrace implicitness" or "embrace explicitness" full stop. In that context, it's worth noting that the Tao of Python was written well after the language was constructed, as a summary of the choices that were made. It was not originally intended to be a design document.
What determines the cases where one side of the tradeoff is good, and the other is bad? Show me cases where Rails does better than Django or some other framework and vice versa, and tell a story about how you identify those cases and judge whether the tradeoffs are worth it. That would be an article worth studying.
See, the thing is that even in this example he wasn't 100% implicit. Could rails magic up those has_many and belongs_to in method_missing? Absolutely. Do they? Of course not since that's "too implicit." For whatever reason, rails decided that columns are boilerplate and relationships should be declared.
I got bitten by a similar pluralization issue when I tried to use Rails. I spent a good amount of time messing around to try to figure out what I was doing wrong that was preventing Rails from pluralizing ETA like it did with my other classes. Turns out that to Ruby/Rails the plural of ETA is ETA... I haven't touched Rails since then.
I don't like over-explicit code like Go forces on you, but if I was forced to choose between over-explicit and over-implicit, I wouldn't have to think twice about going for the explicit language.
Now, raise your hand if you honestly think that the answer is "embrace implicitness" or "embrace explicitness" full stop. In that context, it's worth noting that the Tao of Python was written well after the language was constructed, as a summary of the choices that were made. It was not originally intended to be a design document.
Sometimes implicit behavior is easy to understand, predictable, and saves lots of time. In those cases, it's good. In others, it borders on madness: http://stackoverflow.com/questions/12488705/incorrect-plural...
What determines the cases where one side of the tradeoff is good, and the other is bad? Show me cases where Rails does better than Django or some other framework and vice versa, and tell a story about how you identify those cases and judge whether the tradeoffs are worth it. That would be an article worth studying.