Hacker News new | past | comments | ask | show | jobs | submit
I have actually gotten a tremendous amount of value from PHP and WordPress: the via negativa! They showed me, in remarkable detail, how things should not be designed.

(I'm not kidding. If you take each element of their designs and invert it, you end up with a very solid design.)

On that note, I misspoke somewhat: I assert that PHP and JavaScript were not "badly designed", because that would imply that someone sat down, carefully considered how the different parts of the system interact, second order consequences etc. — and then somehow came to all the incorrect decisions. Rather, it's quite clear a serious design process has simply not occurred to begin with.

Once I recognized this phenomenon, I began to see it in all areas of life. Things are much worse than they could be, simply because nobody has designed them to be good. They just ended up the way they are now, by accident of history.

--

Polemic aside, I am fond of JS and PHP in many respects. I just think we should clean them up! "This mess has always been here, so it's too late to clean it now" would be laughed at in any other context.

We already broke compat with "use strict". Now we just need a "use sane" :)

> Rather, it's quite clear a serious design process has simply not occurred to begin with.

I don't think it holds with

> If you take each element of their designs and invert it, you end up with a very solid design.

The rule of thumb is "the inverse of stupidity is not intelligence". So, if we have an example where you can get a good design by inverting the bad one, we can't then state that the bad one was a result of a chance. The probability is very low.

I worked at a kitchen job one time. The place was, to use the tired phrase, full of toxic narcissists. People who didn't care about what was true, or good, but cared about shitting all over each other.

For example, in one case, the toilets were flooded, and they spent nearly an hour arguing about whose fault/responsibility it was. I snuck off quietly and solved the problem. (This offended them, presumably because then they couldn't bitch about it anymore!)

Anyway, I started keeping a list of complaints — all the ways that job violated my standards. At first, naively, thinking "surely if I show this to mgmt they will fix things!", and later, "ok, red flags list for next job."

At some point I realized I had actually created a spec for the perfect job, but with each term inverted:

Abusive assholes -> respectful colleagues

Total lack of process and communication -> a place that's actually functional and well thought out

Everyone hates their job -> people actually want to be there and enjoy what they're doing

Mindless drudgery -> creative and technical challenges

And so on. Amusingly, inverting the shitty kitchen job produced an almost exact description of VALVE corporation.

Anyway, I'm sure there's a term for this. Maybe "negative space"?