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

Every time you create an abstraction to remove duplication, you're tying two pieces of code together and creating a common dependency. The more dependencies you have, the harder it is to change code, because a change in one place reverberates in many places.

To me, that's the cost. You gain a decrease in code size and verbosity at a cost of making localized changes more difficult.



I call this a distinction between "inherent sameness" and "incidental sameness".

Yes, right now, those two servers have the same number of processor cores. But who's to say that after a hardware update that will still be true?

Conversely, the fact that every processor has a certain number of cores is inherent to the way we represent a processor.

In my line of industrial automation, it's almost always cheaper to pay the cost of complexity up front, and assume that every conveyor VFD might get replaced with a different model, or with a contactor, somewhere down the line. That duplication is cheap when the line is on the integrator's shop floor. Any downtime later on, when enormous dependencies have come to rely on that line, is more costly.




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

Search: