Hacker News new | ask | show | jobs
by kazinator 2933 days ago
This is not really an opinion question. It is intended to test the basic understanding of what idempotence is, not whether it is a good idea to use and in what situations.

"Useful" doesn't mean "preferred over other alternatives". You're overthinking the test due to having more advanced qualifications.

Idempotence, as you know, allows operations to be retried without the maintenance of state to detect duplicate operation, and so the correct answer is simply B.

A is somewhat of a distractor since use of idempotent API's is possibly relevant in building scalable systems. Idempotence isn't the cornerstone of scalability, though.

C is nonsense; and D is opposite: idempotence allows clients to freely send duplicate API requests. Prevention or detection of duplicates is required when idempotence doesn't hold.

I don't see the point of including E; only a complete moron would not guess among the other answers to have a chance at being right. Very odd to see "I don't know" in a multiple choice test.

1 comments

You are incorrect in stating that this is not an opinion-based question, since the dictionary definition of the word itself is not the correct answer.
So, if I understand this correctly, because Merriam-Webster or Oxford give only the mathematical definition of "idempotent", neglecting the one from computer science or distributed systems, that makes the question about idempotency a matter of opinion?
The question "why is this useful?" is akin to "why do we like a thing?" and liking a thing is an opinion, and the reason for liking something carries a motivation, which differs from simply knowing what a thing is.

Why is it objectively useful? Well, it's not. Idempotency is neutral. It can be as useless as it is useful. Knowing what it is matters more than a cargo cult desire to find utility in a vocabulary quiz.

Should a test verify that an individual's opinion aligns with a trend expressing a point of view, or should it verify awareness of concepts?