5 ms·
Okay. He spent more time on his argument than you did countering it. Care to elaborate? It’s not self-evident to me that you’re right.
by hacknat 9y ago
Okay. He spent more time on his argument than you did countering it. Care to elaborate? It’s not self-evident to me that you’re right.
- DannyBee 9y agoTo be able to say something is an error in the sense the author uses requires the ability to determine objective, rather than subjective, correctness. The author asserts, incorrectly, that there is some objective correctness in choice of interacting language features and their interactions. No such thing usually exists. It is all subjective at some level. It is not more or less wrong to choose one spec for a language feature over another. It is just taste. The closest you can come to objective correctness or incorrectness is incorrectness of an implementation in implementing a language specification or inability of a specification to correctly describe behavior. Ie given a precise definition of how a language feature should operate, does it operate that way. Most criticisms of programming languages, including this one, try to take the fairly abstract goals of most language features and pretend that they can show, objectively, that the feature does not meet the goals. The problem, as mentioned, is that most of these goals are very subjective. So are the criticisms. They are not saying "Ruby claims to have the following algebraic specification for modules, but I prove that is impossible" they are saying "here is my subjective interpretation of the following be goal Ruby has. I can objectively show it does not meet that goal" Such a thing is still a subjective criticism, not an objective error.
- philwelch 9y agoI can see your point, but, to pick a couple specific points—it is strictly better to have thorough documentation than not to, and it is also strictly better to have a language with a defined grammar to support linters and the like than not to. These aren’t trade-offs, or else, I don’t see anything that Ruby has that wouldn’t be possible without the drawbacks the author notes. Perhaps you know of some features or strengths that Ruby has that wouldn’t be possible without these drawbacks?
- DannyBee 9y ago"I can see your point, but, to pick a couple specific points—it is strictly better to have thorough documentation than not to, and it is also strictly better to have a language with a defined grammar to support linters and the like than not to." These are still subjective choices, not errors. Think of it this way: It is almost always strictly better to use O(N) sort algorithms instead of N^2 ones. That does not make it an error to use an N^2 one, just a bad choice. "These aren’t trade-offs" Sure they are. They are tradeoffs in the same way N^2 vs N sort algorithms are. There are edge cases and weird situations where the N^2 ones are better. There are edge cases and weird situations where less thorough documentation is better. Are they common? No. I would venture a guess that most people, in fact, do not believe they are worth worrying about, and would roll their eyes. (IE imagine you have a super space limited device. Documentation that is not thorough and only concentrates on the "most important" parts may fit where thorough docs wouldn't) Same with defined grammars. Having a well defined grammar means people depend on it. It gives you less freedom. To be useful to others, it also often requires being LL or LALR or some variant, which limits how you can extend the language in the future. You are entirely welcome to say "all of the situations you present are super contrived and stupid". I would even agree. They are just examples i put 2 minutes thought into (ruby isn't my thing, i wrote some apps in it years ago and haven't touched it in probably 5 years). But the point is: They are still tradeoffs, even if you think they are obviously better or worse choices. "Perhaps you know of some features or strengths that Ruby has that wouldn’t be possible without these drawbacks?" Certainly you realize how subjective a thing this is? Even if the answer is "nothing would be worse" it doesn't suddenly make it objectively better instead of subjectively better. Everyone agreeing with an opinion does not turn it into a fact. Again, i think it would be reasonable to say "for the majority of ruby users, X would be better" and even "for 99% of ruby users, X would be better". But that's still subjective.
- philwelch 9y ago> Think of it this way: It is almost always strictly better to use O(N) sort algorithms instead of N^2 ones. That does not make it an error to use an N^2 one, just a bad choice. The distinction between an "error" and a "bad choice" isn't all that interesting to me, and this approach more or less makes it meaningless to criticize the design of literally anything.
- ouid 9y agodo you always defer to the longer argument? OC wasn't trying to convince you, he was just raising an objection.
- deleted 9y ago[deleted]