Live data from Hacker News

Clever ideas that failed (2010)

yacoset.com

11–20 of 27 posts

Re: Clever ideas that failed (2010)

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

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

Re: Clever ideas that failed (2010)

#12

Earlier quoted context omitted.

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.

Re: Clever ideas that failed (2010)

#13
Most of these sound awful to begin with, except the first maybe. Not to insult this guy, but people who force ego projects like these in a company quickly end up looking like a charlatan.

Re: Clever ideas that failed (2010)

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

It is brilliant... but I think it's a false dichotomy. I'm sure code can be clever and easy to debug. If it's designed in a way that is impossible to debug is it really that clever? I've been using react and redux a lot lately, and the design patterns make the code much easier to debug, and I'm not experienced enough (and probably not even clever enough) to have written them myself. It's like saying that smart people…

There's probably a specific name for this construction, but I don't know it. I'd place it in a category of statements that are not meant to be read as literally true in all cases, but use comedic exaggeration as a warning against a common misstep.

Re: Clever ideas that failed (2010)

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

It is brilliant... but I think it's a false dichotomy. I'm sure code can be clever and easy to debug. If it's designed in a way that is impossible to debug is it really that clever? I've been using react and redux a lot lately, and the design patterns make the code much easier to debug, and I'm not experienced enough (and probably not even clever enough) to have written them myself. It's like saying that smart people…

In my circle of peers, and perhaps beyond, we use "clever" as a pejorative. It roughly means what you said in the last sentence, "more of a display of cleverness than actual cleverness." In other words, calling a piece of code clever, indicates that it was made too complicated to easily grok. We also have an explicit goal of making code not clever.

Re: Clever ideas that failed (2010)

#16

Earlier quoted context omitted.

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.

Re: Clever ideas that failed (2010)

#17

Earlier quoted context omitted.

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.

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.

Re: Clever ideas that failed (2010)

#18

Earlier quoted context omitted.

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.

I wish I felt that way. I’ve seen so much silly overcomplicated junk in my career, my inclination is always to keep it extremely simple.

Re: Clever ideas that failed (2010)

#20

The first one is basically the messaging system and a smart broker. I’m not aware of any brokers that would take into account how busy a particular node (they usually just use round robin approach) but surely the concept you outlined is far from being a definition of over-engineering, cron is almost always worse because it is hardly scalable (it is with some crutches and until some point when it becomes unscalabel ag…

It's less of a message broker and more of a scheduler, although considering that both of them have some kind of queue at its core, the distinction is probably more superficial than it seems (a FIFO job queue is basically a kind of scheduler).

Spark has a scheduler that takes data locality into account (although I don't have a ton of experience with it and have no idea how well it works on a fine-grain scale). That itself is probably inspired from Borg and MapReduce, both of which have some kind of data locality-based job scheduling logic.

Post reply on HN