Reply 20 of 30, by Jo22
This reminds me of Kylix, the Borland Delphi version for Linux.
It was a neat piece of software, but the limited ABI compatibility of Linux killed it before it became successful.
IMHO, that's a general problem of *nix systems.
Everything focuses on the source code and portability.
Binary compatibility is an afterthought.
Even the executable format (COFF, ELF, PE etc) will vary over time and with different distributions.
What's also easiily forgotten is the dependency on certain packages.
But not only is the package at such important, but also its version!
If you have a Win32 program from the 90s, you can run it on the current version of Windows.
Some simple program like notepad.exe from Win95 will run flawlessly.
On Linux, that's not the case.
A program written aeons ago will also need the old packages from that time.
Or let's put it that way :
An old game/program was written to use SDL1, but your current *nix does ship with "SDL5" only.
So in order to get your old game/program working on the new systems you have these choices:
a) Modify the game/program for "SDL5"
b) Modify and compile SDL1 from the sources, so it will run on your system
c) Run your game/program an older, period-correct *nix from the era your program/game was made (you use them in an emulator)
d) Give up and use a substitute for your game/program
c) Is like the most feasible, because something like SDL has dependencies on its own.
In the end you'd have to essentially rebuild a whole *nix system, anyway, because the numbers are in the hundreds.
This "dependency hell" is the unix counterpart to the classic "DLL hell" on Windows:
Many different versions of the same library are required to be run on the OS.
Edit: Typos fixed, text cleaned up.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
//My video channel//