News for hackers. Stuff that matters.
Re:World of Goo Update, 10 Years Later by gambiting on Thursday May 02, 2019 @04:49AM (#19805943)
The main difference is that most Windows apps are statically linked. A game from 1998 will very often come with its own set of .dlls that were built with the game and unless the underlying Win32 api changed, they should "just work". On Linux it's also possible to statically link libs, but it's far less common to do so - most apps rely on the libs in the system. Which in theory is a great thing, your app will always use the latest, safest version of whatever library it needs(while the windows app continues using the unsafe 1998 version of libs for instance). But of course in practice people who make the libs can't test their changes with every single app in existence, so inevitably the back compatibility gets broken, and Linux does have the issue of "oh I installed some system updates and now this app that always worked doesn't work anymore". Again, in theory apps are supposed to say which libs they need and package managers should respect that. But theory and real life are not necessarily the same.
Re:World of Goo Update, 10 Years Later by badsectoracula on Thursday May 02, 2019 @09:20AM (#19807575)
> The main difference is that most Windows apps are statically linked.

No, the main difference is that on Windows the GUI libraries (USER32.DLL, etc) are considered part of the OS and have an API that remains backwards compatible. The applications are not statically linking the GUI libraries, they are dynamically linked against them, pretty much like on Linux.

However on Linux the GUI libraries do not care a bit about preserving backwards compatibility (see Gtk1, Gtk2, Gtk3 and soon Gtk4, see Qt1, Qt2, Qt3, Qt4, Qt5 and soon Qt6 - although in Qt's case they cant do much thanks to C++'s ABI issues and TBH i wouldn't expect them do since Qt is primarily made by a company with interests in providing a crossplatform UI library, not the native GUI library for Linux).

Windows simply provides a much richer API than Linux as a standard that applications can rely on.

Re:World of Goo Update, 10 Years Later by v_lisivka on Thursday May 02, 2019 @09:43AM (#19807801)
There are *-compat[1] packages for backward compatibility. You are welcome to support them, if you really need them.

[1]: https://pkgs.org/download/-compat

Re:World of Goo Update, 10 Years Later by badsectoracula on Thursday May 02, 2019 @10:20AM (#19808146)
Compat libraries are band-aid to the real problem that is the developers of the libraries not caring about backwards compatibility and the only fix is to cultivate a culture of caring about backwards compatibility instead of writing excuses. Compat libraries are only applicable to a few libraries (where are the Gtk1-compat libraries?) and all they do is freeze the API in time without any updates to the provided functionality (where are the SDL1-compat libraries that work seamlessly with alt-tab in desktop environments, like SDL2 does?).
Re:World of Goo Update, 10 Years Later by v_lisivka on Friday May 03, 2019 @08:54AM (#19817943)
> where are the Gtk1-compat libraries?

Here: https://github.com/openSUSE/gtk1-compat

> and all they do is freeze the API in time without any updates to the provided functionality

Yep.

> where are the SDL1-compat libraries that work seamlessly with alt-tab in desktop environments, like SDL2 does?

It's open source. If you need it, take care about it, OR pay to a somebody else to take care about it. Nobody will work for you for free.

It's like roads. Roads are free, because lot of drivers are using it every day, so they are paying taxes to build and maintain them, but road to your house in the middle of nowhere is not free, because nobody shares it with you. However, road making tech is open sourced, so you can build your own road if you need it.

Of course, you can use paid road, if you want, because they are providing better service for small pay per ride, or you can hire developer company to build private road to your house and then payback loan to a bank. It's up to you.

But statements like "free and open roads are bad, because road to my own house costs lot of money for me" is just childish play. Roads are not free to build and maintain. Roads are free and open to use, but only because they are paid by someone else. For your own private road, pay with your own labor or money.

Re:World of Goo Update, 10 Years Later by wolfgke on Thursday May 02, 2019 @07:00AM (#19806566)
> The main difference is that most Windows apps are statically linked. A game from 1998 will very often come with its own set of .dlls that were built with the game and unless the underlying Win32 api changed, they should "just work".

Delivering a set of DLLs is not static linking.

Re:World of Goo Update, 10 Years Later by Sahhaese on Thursday May 02, 2019 @08:26AM (#19807097)
It's almost like the D in DLL stands for something.

That said, it's not strictly static linking but it is closer to it in effect than the global assembly cache or the shared DLLs which resulted in the kind of "DLL hell" that windows 95 was famous for.

Re:World of Goo Update, 10 Years Later by SmellyGeekBoy on Thursday May 02, 2019 @05:04AM (#19806017)
Day-to-day Linux system updates won't change major version numbers of libs in most distros, though. These breaking changes only seem to occur in major releases in my experience.