Live data from Hacker News

Clever ideas that failed (2010)

yacoset.com

21–27 of 27 posts

Re: Clever ideas that failed (2010)

#21
post #16

Earlier quoted context omitted.

Yagni is a duality though (like a trinity, but two). You've just met Yagni's other face, You Are Going To Need It.

An important corollary to this is "0, 1, many". Any time you are storing data, the acceptable number of items to handle are none, exactly one, or a number limited only by machine resources. Don't design a container to hold, say, up to 5 items.

I don't understand. I would just about never want to use an unbounded buffer, for example, for a channel.

Re: Clever ideas that failed (2010)

#23
post #16

Earlier quoted context omitted.

An important corollary to this is "0, 1, many". Any time you are storing data, the acceptable number of items to handle are none, exactly one, or a number limited only by machine resources. Don't design a container to hold, say, up to 5 items.

I don't understand. I would just about never want to use an unbounded buffer, for example, for a channel.

Yes but that is an artificial limit and not an architectural limitation. i.e. a feature added to code that was once / would have been infinite otherwise.

Re: Clever ideas that failed (2010)

#24
post #2

This is superb. YAGNI may have it's own Wikipedia entry, but that doesn't mean that we remember it when a brilliant idea comes to mind. https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it

All hail YAGNI, the god of code.

In the beginning, KISS and YAGNI created DRY, but it was corrupted and gave birth to DIY and NIH.

Re: Clever ideas that failed (2010)

#26
post #5

> "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." This is brilliant.

Twice is extremely optimistic though... Especially if you give it a couple of years to forget your original thinking.

Re: Clever ideas that failed (2010)

#27
post #16

Earlier quoted context omitted.

Yagni is a duality though (like a trinity, but two). You've just met Yagni's other face, You Are Going To Need It.

An important corollary to this is "0, 1, many". Any time you are storing data, the acceptable number of items to handle are none, exactly one, or a number limited only by machine resources. Don't design a container to hold, say, up to 5 items.

On the other hand, instantiating/specializing a container to hold up to 5 items can be a perfectly reasonable thing to do, depending on the application. It might be a design requirement that a safety-critical program never has to restart due to heap fragmentation, for instance.
Post reply on HN