3 ms·
I think a better title would be: How Desktop GNU+Linux sucks for desktop developers: Zoom edition Windows will happily run GUI apps written 20 years ago. GDI
by RcouF1uZ4gsC 5y ago
I think a better title would be:
How Desktop GNU+Linux sucks for desktop developers: Zoom edition
Windows will happily run GUI apps written 20 years ago. GDI is still supported. MFC Apps still run. Likely VB6 apps still run.
Desktop GNU+Linux switches graphics engines, breaks backwards compatibility, ships something with performance and driver issues, and complains that user software doesn't work.
Frankly this post turns me off towards even thinking about developing any type of native Linux app and if I need one, just use the browser or Electron.
- Filligree 5y ago> Frankly this post turns me off towards even thinking about developing any type of native Linux app and if I need one, just use the browser or Electron. Electron apps haven't worked on my system for a while. Since I switched to Wayland, they come up as black rectangles instead of displaying any graphics.
- matheusmoreira 5y ago> Windows will happily run GUI apps written 20 years ago. Don't think this is true anymore. Old software on Windows just isn't guaranteed to work anymore. Last time I tried to play an old game on newer Windows versions, it didn't even start up despite automatic and manual installation of a ton of dependencies. I suppose the Raymond Chen stories about heroic bug fixing in third party code is a thing of the past.
- badsectoracula 5y agoYou need workarounds but you can make it work. Though you can say the same thing for Linux too, it is just that Windows coming out of the box with a much richer API (e.g. for GUI functionality) makes things easier.
- AnIdiotOnTheNet 5y agoGames are an especially difficult case as they have a habit of bypassing higher level APIs and abusing undocumented behavior for performance reasons. Still, a shockingly high number of games from 20+ years ago work out of the box on the latest Windows despite things like the shift from 32 bit to 64, all without recompilation. Linux Desktop's compatibility story is laughable by comparison unless you count WINE, which works so well in part because Windows APIs are so stable.
- matheusmoreira 5y agoMicrosoft also used to have a history of maintaining bug compatibility with applications, including use of undocumented data structures and functions. I've read the stories: once they tried to change some data structure only to revert the change when some proprietary software broke because it did insane things like put data into unused bits of some internal data structure. At some point all this must have been lost because I don't see Microsoft going out of its way to fix memory allocation bugs in games for our benefit anymore. I did try playing the game on Wine and it worked, ironically. Wouldn't be surprised if it eventually became the best way to run older Windows software. The ABI compatibility situation of Linux user space sucks. Apparently the kernel itself can run binaries from the 90s with no problem. The more dependencies you have, the worse the situation gets because in the free software world people seem to make it a point to avoid caring about binary compatibility since everyone is supposed to have the source code to everything in order to recompile software as needed. Because of this I've personally resolved to eliminate all dependencies in my own code by using Linux system calls directly.
- ModernMech 5y agoI can't find it now, but I remember there was a video of someone upgrading windows from like Windows 3 all the way to the latest Windows... maybe it was 7? I forget how long ago this was. But each time they upgraded Windows, they showed that the programs installed in the original OS still worked. I think they did it with Doom installed in 3, and showed that it still worked after 20 years of upgrades. That's some impressive backwards compatibility. Does anyone know the video I'm thinking of? I'd love to watch it again.
- matheusmoreira 5y agoI remember there were several games in my Steam library that didn't survive any upgrades past 7.
- int_19h 5y agoThere's many such videos on YouTube these days, but I believe the most famous one is https://www.youtube.com/watch?v=8WP7AkJo3OE https://www.youtube.com/watch?v=8WP7AkJo3OE
- chmod775 5y agoA Quake 3 binary compiled in 1999 still runs on Linux today. How much backward compatibility do you need? > Windows will happily run GUI apps written 20 years ago. Your best bet at running 16 bit Windows applications on a modern OS is running them via Wine. The same is true for some older 32 bit software. I wanted to relive some memories replaying my copy of GTA (the first one) on Windows 10 the other day, gave up after about half an hour after multiple step-by-step guides for getting it to run failed, and just installed it on my work laptop that's running a flavor of Linux with Wine. The latter required one extra step - installing some library by ticking a checkbox in winetricks. For all of Windows' touted backwards compatibility I wasn't exactly impressed. It seems to be little more than a meme at this point. What Windows does better (than other OS) is play modern games, which is why I keep it around on my desktop computer. I'm not sure it deserves credit for that though. I don't even know what you mean by switching "switches graphics engines". The X to Wayland migration? The former has been backwards compatible for more than three decades and the latter can host the former to remain backwards compatible. Wishy-washy terminology aside, are you absolutely confident your opinion is formed from an informed position? There's valid criticisms to be made of desktop Linux, but I don't think those are it.
- badsectoracula 5y ago> Your best bet at running 16 bit Windows applications on a modern OS is running them via Wine. Fun fact, you can use a WineVDM-based 16bit emulator on Windows[0] that translates 16bit calls to 32/64bit calls and install it system-wide thus allowing the use of 16bit programs in 64bit Windows. Here are two examples from screenshots i have around: Microlathe[1], a small utility to build 3D models by rotating a line around an axis (i also made my own clone[3] of it) and [2]a free Smalltalk environment (Smalltalk Express - which i actually consider one of the simplest Smalltalk environments since it only contains a small subset of what you'd find in a modern one thus making it easier to grok). [0] https://github.com/otya128/winevdm https://github.com/otya128/winevdm [1] https://i.imgur.com/e26mqWP.png https://i.imgur.com/e26mqWP.png [2] https://i.imgur.com/r5aQNyJ.png https://i.imgur.com/r5aQNyJ.png [3] http://runtimeterror.com/tools/lila/ http://runtimeterror.com/tools/lila/
- int_19h 5y ago> VB6 apps still run. Not only that, but Windows 11 ships with msvbvm50.dll and msvbvm60.dll in \WINDOWS\SysWOW64