4 ms·
I have a strong dislike for the now-nearly-meaningless terms "beautiful", "eloquent", "elegant" &c. but for me the deciding factor between Ruby and Python for a
by rue 16y ago
I have a strong dislike for the now-nearly-meaningless terms "beautiful", "eloquent", "elegant" &c. but for me the deciding factor between Ruby and Python for a project (assuming no constraints from libraries required and such) is Ruby's internal consistency. Python is a bit more haphazard; the infamous `len(str)`, to wit.
- masklinn 16y ago> Python is a bit more haphazard; the infamous `len(str)`, to wit. There is nothing infamous about it. It's a multimethod, the designers of Python decided that mandating the same function for everything (via a common protocol under the covers) was better than risking people implementing a thousand different method names. They did the same with the iterator protocol.
- rue 16y agoI think that is a poor argument since the same is not true of every function. Therefore, it feels inconsistent to me, which is the only basis I can make judgments on.
- masklinn 16y ago> I think that is a poor argument since the same is not true of every function What is not true of every function?
- binomial 16y agoI think the GP was referring to "mandating the same function for everything (via a common protocol under the covers) was better than risking people implementing a thousand different method names".
- adambyrtek 16y agoI wouldn't call Python haphazard, it's just a different approach. Ruby was designed from the ground up as an object-oriented language, and the fact that everything is a method call (message) gives it a touch of consistency. This is different from Python which is a multi-paradigm language. In fact the early releases didn't support objects-oriented programming at all. On the other hand Python may feel more consistent because of the fact that, in contrast to Ruby, there is one obvious way to do something[1]. [1] http://www.python.org/dev/peps/pep-0020/ http://www.python.org/dev/peps/pep-0020/