Quote:
Originally Posted by rgleason
Gerhard, can you explain how this happens in a little more detail so perhaps we all can understand?
|
What Gerhard says is technically correct (except the part about "bad developers").
Plugins often need the exact same libraries that
OpenCPN needs. But those function calls are not available via
opencpn.lib. Also, opencpn and plugins do not use shared libraries for a lot of things. They do share things like wxWidgets but special functions like NMEA parsing are not made into shareable libraries (dlls for Windows). So the exact same source code exists in plugins source trees and OpenCPN itself. As time marches on bugs are fixed in the source files used by OpenCPN but maybe not in some old plugins.
This isn't a design defect in OpenCPN. It is a matter of time and coordination to agree which functions should be moved into shared libraries or should be provided by opencpn.lib. Such a strategy might decrease the rate at which new features make it into O because each function change would have to be tested in every
plugin that used it. It would make regression testing a lot more onerous in my opinion.
However, these new bugs would still exist. They would just be found more quickly through rigorous regression testing. The same result can be had by testing and maintaining plugins on a more regular basis.
In any open source development it's all about the number of contributors and the time the
project leaders have to devote to product management. Since the developers are also cruisers I think we all (well most of us) can understand that there is a
trade off between time spent managing the product and time spent cruising. I don't think anyone should feel that equation is somehow inequitable. The developers have created an immensely popular package used in almost every country in the world. And there are many thousands of happy users. Plus there are very few if any debilitating bugs. So taken as a whole this
project has produced a popular product that many many people find useful. Ask yourself what other
navigation tool runs on windows, MaC, raspberry pi, Android and nearly every other flavor of
Linux? That's pretty incredible in my opinion.