Imagine if thousands of people changing your code without documentation (like its mostly in opensource projects).
After sometime you will end up with a code that nobody can understand.
That is as far from the truth as you can imagine!
Look at proper projects like Smoothieware, MySQL, Postgresql...
Don't base your opinion on "hacks" like marlin or duet3d
Other thing is, why would plugin system "change the code structure" ?! The point of plugin system is that noone touches your code, you just provide hooks, if one want to put dll/so in your plugins dir those will work, if not, they don't, your code is unaffected either way
Im fine with that. But an "simple" API or scripting language would be very cool. Ill would write a simple code that sends a message over udp to an actor that displays if the print is finished.
Why invent a wheel. All three platforms Simplify3D work on (Windows, MacOS, Linux) support shared libraries in one way or another. What language users will use to write their plugins is up to them as long as they are able to compile them as shared library.