On Thu, 2018-10-04 at 14:02 +0100, Daniel P. Berrangé wrote: > On Thu, Oct 04, 2018 at 01:38:33PM +0200, Andrea Bolognani wrote: > > GTK+ does it, Qt does it; and I'm willing to bet there are more > > applications linking against either of them than there are linking > > against libvirt. > > I don't think that's a positive example. As a developer who has > used GTK for multiple apps, I *hate* their frequent API deprecations > during minor updates. It is a constant battle to keep app code > compiling cleanly even within a single releae, no to mention the > even greater pain of trying to do GTK2 and GTK3 in parallel. > > Sure, this deprecation and deletion of code benefits the GTK > maintainers, but the cost of creating ongoing pain for every > single application developer. That's not a net win IMHO as the > set of app developers is much larger. I think keeping up with changes in libraries you consume is simply due diligence for developers, and while of course that takes up some of your time and is for the most part hardly a glamorous job, it also ensures your application is in tip-top shape at any given time and is taking advantage of all possible improvements in the underlying tech by periodically reconsidering parts of its design, which will ultimately result in a better experience for users. Cleaning up the API from time to time also means developers won't have to figure out which one of the seemingly equivalent solutions to a given problem presents which particular pitfalls, which will reduce frustrations and once again result in better applications. And libvirt developers themselves not having to tiptoe around what is in some cases quite literally a decade worth of backwards compatibility hacks would allow them to focus on features and bug fixes that actually impact users in a positive way, all the while keeping the size of the library from growing out of control, with all the resource usage and attack suface consideration that entails. > As a counter point, Microsoft Windows never breaks its APIs and > that has many orders of magnitude more app developers than GTK/Qt How many of the bugs and crashes experienced daily by Windows users could be avoided if applications were forced to adopt newer, safer APIs over time instead of being allowed to lazily stick to whatever was available at the time Windows 95 was the new hotness? Your guess is as good as mine, but I'm pretty sure the answer is not "zero". > The fact that libvirt never breaks API is one of our greatest > selling points. I don't have hard data on this, but I suspect the success of libvirt is driven more by the great features it offers than its promise to preserve API/ABI compatibility forever; even more so considering that the majority of Open Source projects don't offer anything close to the latter, and yet somehow manage to thrive. -- Andrea Bolognani / Red Hat / Virtualization -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list