Hacker Newsnew | past | comments | ask | show | jobs | submit | andrevan's commentslogin

There are billions of dollars SAVED by strategic use of tech debt as well.


"The criticisms above are not matters of taste" Actually, yes they are.


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.


To 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.


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 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?


"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.


> 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.


"The distinction between an "error" and a "bad choice" isn't all that interesting to me"

I definitely wouldn't agree personally, but to each their own.

" and this approach more or less makes it meaningless to criticize the design of literally anything."

I can't fathom why you think this. All i answered is what the difference between the two types of criticism are. The only problem with this criticism is that the author is trying to claim these things are objectively wrong, repeatedly, and they are not. In fact, the author doing that just makes the author look silly, for starters.

I can't see why that would make it meaningless to criticize the design of anything. It would, IMHO, be much better than current situation where the author pretends his criticisms are not subjective, when they very clearly are.

Remember that objective things are true for all observers. So the author presenting it this way also means they claim it can't be viewed another way. That's not exactly an invitation to a discussion about the tradeoffs.

It would be perfectly reasonable for the author to say "I disagree with these choices for these reason, and i think my choices are better for these reasons". Awesome! Let's talk about it.

It's like writing an article claiming that choosing random pivots in quicksort is an error versus choosing median of 3. Or even better, claiming that using median of 3 is an error compared to median of median of 3. They aren't errors, and claiming they are is honestly not a very useful criticism.


So, let me provide another example.

Let's say I write a C compiler. The C specification says that certain things have "undefined behavior", which technically means the program could do anything. So my C compiler somehow outputs programs where many of these "undefined behaviors" actually result in reformatting the hard drive.

If you define "error" by "deviating from a written specification", this is not technically an error, because "undefined behavior" can be anything. Yet, if someone actually used my underhanded C compiler to compile mission-critical production software, I feel comfortable characterizing that as an objectively bad decision--and so would the soon-former employer of that poor fool.

You might say my example is contrived, and so is yours, so where does the truth lie? I think it goes back to my original point: it is strictly better to have thorough documentation than not to, and it is also strictly better for a language to have a defined grammar to support linters and the like than not to. Semantic quibbling about what is an "error" and what is "objectively wrong" aside--I think all (reasonable) observers would agree with these two points, which brings them as close to objective truth as we can get as far as this question is concerned.


do you always defer to the longer argument? OC wasn't trying to convince you, he was just raising an objection.


Exactly, you know the least amount about the problem when you first start.


Science!


science!!


science!!!


Science!!!!1


Suggestion: 3D scan and release as open source 3d models of everything in the British Museum as well.


You'll note that the Jenkins guys were able to recover all their work. They also use a non-standard branching and access model.


Did they? Last I heard, they were having trouble with a few repos, because the hashes they got from github weren't quite right.


yeah, but did you read about what they were doing? granted the breaker of it all did something he shouldn't have... but its still terrifying to hear of these things.


I actually made money in the mid 90s making websites for people and I was born in 1989. I made websites for local teachers and the middle school. I had lots of walking around money as a kid in high school because I had a recurring payment from work that had begun in 2001 at the height of the dotcom era.


Funny that he started the article seeming like he was going to show using math that the lottery was a good investment idea, when in fact it isn't according to his own estimation.

As to the entertainment value of dreaming that you've won the lottery, obviously nobody should be told they CAN'T enter. But what some call a dream I call self-delusion. We have a pervasive idea in this country that we're all going to become rich eventually and it's simply not true.


Why are we apologizing for and defending Tim Cook? The fact is that the difference between Cook and Jobs wasn't that Cook apologized for putting out an incomplete product -- it's that he would put that product out to begin with. Jobs was infamous for signing off on and testing his products himselves. This version of Maps would clearly never have been released by Jobs -- that's why he would have never apologized for it.


The hagiography of Jobs.hasn't been approved by the Pope yet. So we don't have to ignore Jobs' mistakes yet.


Yes, someone had to do something, except Cook /hasn't/ done anything except put out a shitty map app. Unless you count apologizing and pointing to Bing Maps as doing something. Why not tell people to buy a Microsoft phone as well?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: