How I feel when symlinking a library to act as the "correct" version so my executables stop nagging. Spongebob angrily shouting "You are going to load my shared libraries, and you are going to like it!"
you are viewing a single comment's thread
view the rest of the comments
[–] 9 points 1 month ago* (last edited 1 month ago) (1 child)

COM solved all this stuff over 30 years ago. When you're making breaking changes to an interface, you create a new one while still keeping the old one around (at least for a while). Both interfaces are shipped with the same DLL. Software written for the old interface continues to work, while newer software can take advantage of the extra features in the new interface.

You can do something kinda similar in Linux with sonames, like libfoo.so.1, libfoo.so.2, etc. but there's still a bunch of use cases where you need to use LD_LIBRARY_PATH, and they're entirely separate libraries vs the COM approach where both interfaces are in a single library.

Modern software keeps poorly reinventing the same concept. Software like Home Assistant has breaking changes between releases because they don't have a consistent interface.

  • source
  • parent
  • hideshow 1 child comment