5 ms·
My only advice, to all programmers, is to print the following and stick it in a place where you can see it everyday: “There are only two hard problems in Compu
by nakkiel 15y ago
My only advice, to all programmers, is to print the following and stick it in a place where you can see it everyday:
“There are only two hard problems in Computer Science: cache invalidation and naming things.” – Phil Karlton
The variant mentioning off-by-one errors may be pleasant, and useful for beginners, but is hardly a problem.
When we'll have solved the naming thing we'll be safe.
The rest is just buzz-words and useless noise.
- shadowfox 15y ago> My only advice, to all programmers, is to print the following and stick it in a place where you can see it everyday: “There are only two hard problems in Computer Science: cache invalidation and naming things.” – Phil Karlton I am curious as to the reasoning here. Why are these 2 the only hard problems in computer science?
- haberman 15y agoThey aren't: http://news.ycombinator.com/item?id=2798475 http://news.ycombinator.com/item?id=2798475 I don't know if the person being quoted was being serious about this, but do not listen to anyone who repeats this quote intending for it to be taken seriously.
- carols10cents 15y ago"The variant mentioning off-by-one errors may be pleasant, and useful for beginners, but is hardly a problem." On the contrary-- I have seen many beginners struggle for a long time to fully grasp counting starting at 0, which leads to many off-by-one errors.
- nakkiel 15y agoThat's right but with some very basic rigour that kind of bug ever hardly bites. With high level languages this is less and less of a problem; Python for example let one write code without using i.
- gruseom 15y agoNaming things is a hard part of programming, but that doesn't make it a computer science problem. Computers can't name things for us. To solve the naming thing would be to solve the thinking thing.
- haberman 15y agoThis quote is fine to use for fun/irony, but should absolutely not be taken seriously. Some seriously hard problems in computer science: distributed programming (consensus, consistency, handling machine failure), parallel programming models, proving correctness of nontrivial programs, P?=NP.
- gaius 15y agoThose are all special cases of the cache invalidation problem.
- haberman 15y agoI knew someone would try to say that. If you take that line, then everything is cache invalidation. It's amazing the lengths people will go to to justify wise-sounding-but-wrong sayings like the above. Cmon, P?=NP is cache invalidation? Be serious.
- gaius 15y agoAll the distributed/parallel stuff is, yes. It's not meant to be a literal, pedantically correct statement, it's meant to be an insight, and enough people think that it is that this quote gets repeated. By all means print out your own page in 4-point text of what is and is not a hard problem and stick it on your own wall.
- haberman 15y agoConsensus is most categorically not cache invalidation. Consensus is about creating new information, namely a decision about which a group of machines/processes agree. It's not insightful if it leads people to the wrong conclusions. It would be more insightful to impress on people that CS is a large and diverse field with more hard problems than can be reduced to a single pithy saying.