There are lots of applications like 3ds Max, Maya, etc that allows you to use plugins, where even the default nodes are created as plugins.This is all good but if the developer changes the class/type name of any node, then all the files using the previous version breaks.It's like you commit to a name and that name cannot be changed. I am not an expert in designing these systems but wouldn't it be better to use some other info like a GUID for every plugin to create this link between which plugins are being used in a file?So if you have a node like deform, and later you realize bend is better, and you rename it, then everything still works fine. Note that in these systems, there are class/type names and Labels, I am talking about the former, as changing Label names doesn't break anything.But the node class/type is still used everywhere in the app visually so seeing deform in those places but bend in a few other UI elements would be confusing.I just thought GUIDs would allow you to basically bind the type/class of a specific plugin to its instances used in files without the issue of collision with other plugins.
What's the best way to store class/type info in a plugin system in your software?
design;class;type systems;user experience;system