Hacker News new | ask | show | jobs
by timewizard 516 days ago
> Complexity has to live somewhere. If you are lucky, it lives in well-defined places.

This whole section makes me think of construction which has similar abstraction and hidden complexity problems. It strikes me that they solve it by having design be entirely separate from implementation. Which is usually the corner where all our luck as software developers inevitably runs out.

Our methods are still rather "cowboy." We have cool "modernized cowboy" languages that make it hard to shoot your foot off, but at the end of the day, we're still just riding old horses and hoping for the best.

2 comments

I've often thought this. It feels like there should be two languages, one for the implementation of the parts, and another to design/architect the software using the parts, allowing the design/architect language to focus on the high level architecture of the software and the implementation language to focus on the parts. We currently use the same language for both, and mix the two areas as we program
To be fair to our field fields like construction have literal millennia of history and development to figure out the best patterns. Even then it’s still evolving.

It’s crazy to see what we’re capable of building now vs even 15 years ago.

Construction is not built on a machine that has had exponential growth for those 15 years. So our capabilities have expanded but it seems like our problems have as well.