Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I agree a lot with this author, but after being in software for a long time, it still feels like one of the unique problems of software is we keep changing the details. I imagine constructing stairs is largely the same as it was 50 years ago. Most web development pretty much does the same thing as it did 20 years ago, but almost all the details have changed. So as a programmer it gets frustrating having to learn all nearly completely new details but the outcome isn't really that substantially similar than it was when I first learned Java servlet dev.

TBH, I'm not arguing so much against this evolution of software (it seems like the over-complication of web dev has been discussed as nauseum on HN), but more that just from a personal perspective I have less patience for figuring out a new way to take stuff from a database and display it in a browser window.



I agree a lot with both of you, and add that after seeing things through the lens of software I went back and started looking at the details of people building things and found that for some reason unknown to me, even those professions are constantly changing. New materials, companies vying to be the “one true solution”, governments changing codes for various reasons.. I wouldn’t be surprised if building a basic staircase was more than 50% different than 50 years ago.


50 years ago construction often required individual skill. My grandfather used to tile kitchens back when they still floated countertops using "mud" (dry-ish concrete mix) which resulted in a solid very level counter top (assuming skilled labor). Nowadays, you use concrete board or similar and hope the cabinets were leveled well (usually off about an inch) for cost. Most things are now some degree of prefab and plug-and-play built by less skilled workers so you can get by paying them less. They often have no experience in building and can't spot details that will cause problems. In some cases the technology makes for an overall better product or reduced waste, but often as not it's just less material resulting in flimsy construction. I'd be surprised if you couldn't get a staircase nowadays that was just a precut aluminum struts with pre-etched holes that you can tap out (or similar). Like an upscaled Ikea part. So that's what contractors use because otherwise they couldn't compete on labor costs with someone who did.

Oddly the overall costs for building a house have not correspondingly decreased for the consumer as banks and builders generally take a larger share. Though to be fair consumers also want larger "McMansions" as well so part of the factor is some of the savings do go into giving "more".


I think it sort of depends on what you count as different, but I think you're basically right. Power tools alone have made a big difference.

Still, I think stairs are conceptually almost identical, including in the internal details, in a way that software really isn't. Maybe the rise/run is a slight different ratio or the stringer is an incidentally different material, or the saw has a battery instead of elbow grease, but it's fundamentally similar.


Isn't programming all fundementally similar too? Ok, there are a few patterns you need to learn (functional, OOP, etc), and domain specific stuff. But that's also true of physical construction. Knowing how to build stairs is only going to get you so far if you want to build a wardrobe, and probably won't help much at all if you want to build a brick wall.


No, the programming that is fundamentally similar is carried out by a compiler or by parameterizing a subroutine. What's left over for the humans is the novel part.


I agree with Kragen here. I see what you're saying, but from my perspective as a person who can build both software and stairs, they aren't in the same ballpark.

Sure a CPU is still executing instructions somewhere deep down the stack, but the semantics and concepts I am working with to make a control appear on the screen and then do something are wildly different over time in comparison to stairs.

Take a time traveling web programmer from 1995 and ask him to look at some modern web app code. He'll be completely lost for quite a while. Take a time traveling carpenter from 1900 and have him look at some residential stairs built in 2019. His comments might include "why is this lumber so thin?" and he'd probably have opinions on the newer materials (mostly positive, not always) but he would be not at all confused.

I think it would be fair to argue that a modern web app (big, complex system) is not comparable to stairs (simple, subpart of a system), but I think you can extend the analogy a lot. If that 1900s carpenter saw a modern commercial construction project he'd be a little more out of his element, but only because the materials we use are different and it would include stuff like HVAC. Fundamentally though he could easily see "oh, that span is longer than I would have made because they have stronger materials than I had." I can't think of any particularly confusing aspect of modern construction because the physics never change.


It's only details from that perspective though, from an user's perpective they're essential because of cultural relevancy that's tied to images, popularity and familiarity, that's what counts for most. It's really important to understand that details change depending on perspective.

Many people just expect more complicated web apps because of the alternatives they use and are familar with (native apps).

It compares well with the stairs example of the article. If there are no people other than you that expect a stairway, you may just pile up some boxes, or use a rope and combine it with your workout. Do you really need and expect a stairway if it's only you?


A real world construction and software construction each has remarkable amount of detail. The thing is that things like stairs or pizza dough or other real world things have approaches that might be hard but follow specific principles, have their qualities circumscribed so to speak.

A given computer program is often stupidly easy, much easier than building a staircase really. But often, what's involved in the computer program is fundamentally new in contrast to the way each staircase is only somewhat new.

That situation gives programming it's wild, messy, unpredictable quality.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: