Skip to content

Comment on Clever ideas that failed (2010)

Comments

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.

I find that YAGNI is usually used to justify hacking something together without thinking about the design of the system you’re working on.

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.

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.

You sound lucky, not to have tried arguing someone down from building a platform that would be able to implement both the system you're working on and any related hypothetical future systems as well.

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

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.