Hacker News new | ask | show | jobs
by cogman10 439 days ago
From a Computer Engineering background, it's just as convoluted when you start talking about hardware design. There's a reason every 2 generations Intel ends up rearranging their socket, and it's not all just because they want you to buy new CPUs. It's because all the sudden this section of the CPU needs more power and the previous pin wasn't enough.

The reason things shift for software is because they can and because there's no 1 "right" solution to almost any problem. There's no 1 correct way to represent data. And when we've tried to do that in the past (see SOAP) it ends up in a wild spaghetti mess of standards that tend to hamper development rather than speed it up.

There's also the very real problem that users of software LOVE to work around standards to the point where they create their own standards that ultimately end up needing to be supported in software. I can't tell you the number of times a "description" field in some set of data has ultimately ended up needing special handling in our data normalization process because an end user has decided "When I mark foo with this, it's actually a bar and the system needs to handle it slightly differently". To which our POs are happy to oblige. Often because software we didn't write is what the users are interacting with to send us data and the "description" field is the only thing they have the power to change.