Hacker News new | ask | show | jobs
by rektide 1090 days ago
Nothing else involves as much invention. We know intimately everything that goes into buildings & have built very similar buildings that serve very similar used millions of times. Each software has unique intent & is hugely hand crafted.

You cannot overbuild for software. You can over scale. But we don't have plumbing, electricity, foot, space, structural capacities as numerical behavioral properties that we can overshoot.

Both are complex but code is arbitrarily complex. The ways things can go wrong is unbounded.

3 comments

> Nothing else involves as much invention.

That's quite a unique take.

> You cannot overbuild for software.

What does that even mean?

> But we don't have plumbing, electricity, foot, space, structural capacities as numerical behavioral properties that we can overshoot.

Sure we do. Ask Texas how the Winter was the past few years. Ask Arizona how their water's doing.

The brother doest protest too much.

To me, it is exceedingly clear almost every other industry of this planet has far far better developed industrial practices and standards. They can go to school & learn how to do the thing.

There's simply no common accepted curiculum for how to actually build good software. There's too many possibilities, too many ways to success, and so few common threads that actually winnow down succes or failure. Software has a couple cobbled together Christopher Alexander style Design Patterns that can kind of inform some repeatedly usable ideas. And we have millions upon millions of libraries, each of which probably could become a library that is in the top 10% of usage, if conditions were right. But there's just so little rhyme or reason to it all. Software is all happenstance.

You can try to snark your way out of this & shade the difference out, but it should just be so obvious & clear. Software is not as mature. It's practitioners have infinitely more possibilities & exponentially less constraints. Most of it ends up working fair, in such a degree that it's near impossible to judge how far from optimal or how much better it could be working. Almost nothing else is so adrift, so unable to measure & understand how sucessful it is. This should just be clear & obvious. Your protests don't move me. It should be obvious.

The idea that there is some finite, known set of things that can go wrong when you build in the physical world seems naive at best.

If anything, software is more bounded than the physical world. A software program is composed of discrete states. The number of such states is finite and bounded by the memory of the computer (you can only form so many different program states in a finite memory space). In contrast, just cutting a board to length has an uncountably infinite number of ways for it to be wrong.

> Both are complex but code is arbitrarily complex. The ways things can go wrong is unbounded.

I've heard this before, shortly before an architecture astronaut is invited into a meeting sans biscuits.