2 ms·
In my mind the complication in this is: given you did X, and is using X to do A, when Y is proposed and is not compatible with how X works to do A then you have
by piva00 3y ago
In my mind the complication in this is: given you did X, and is using X to do A, when Y is proposed and is not compatible with how X works to do A then you have the cost of migration/adaptation of whatever is using X to converge to Y while still being able to do A, otherwise you end up in the same issue with competing standards.
This can be much, much worse if it involves anything that is not purely software, you can't adapt older hardware using a standard (let's call it notUSB) to iterate over an improved notUSB-with-appendages, and if notUSB-with-appendages required modifications incompatible with notUSB you just created 2 standards that don't solve a general problem.
Standards is something that a lot of people have thought about over centuries, any improvement on the process has probably already been considered by many smart folks so I don't think there's a simple coordination solution to it.
- samsquire 3y agoThanks for your reply and thoughts. I've tried thinking about the interactions of features and permutations from a programming language perspective. For example, targeting windows, mac, linux with the same code or the interactions between garbage collection, async, multithreading. If I import a library in a package manager and the library is updated, my code breaks. Or if there's a dependency to a dependency. Or if someone does an exception in a loop or switch statement and uses "break". It reminds me of the expression problem. How do you prevent all these cases leading to spaghetti code?