Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> How do Windows or Mac OS provide better support for commercial development?

They commit to long-term support for software distributed as shrinkwrapped binaries? You can buy a program written for Windows 20 years ago and it will work. If you try to run a program written for Linux 5 years ago it probably won't.



That's true for Windows, but it isn't true for macOS - Apple released its first x86 computer in 2006 and its last operating system capable of running PPC software in 2009 - no 2005 software could run on a 2009 Mac. Apple released its first operating system able to run x86-64 apps in 2007, and the last OS capable of running x86 apps in 2017 - no 2006 software could run on a 2017 Mac (and lots of post-2006 software can't either, because developers were in no hurry to switch to 64-bit builds).

My employer makes commercial cross platform software for Windows and Linux (and in decades past, various commercial Unixes). If you install the 32-bit libraries, you can run our software from 8 years ago just fine on modern Linux. If you also use LD_PRELOAD to replace a couple of C library functions with ones that don't take the `restrict` type qualifier on their arguments too seriously, then you can run our software from 16 years ago just fine too.

Commercial software didn't come to Linux in the volume that it came to Windows and macOS because the users didn't come to Linux in the volume they came to Windows and macOS. And the users didn't come because Mac and Windows mostly just work, that was far from the case for Linux in the late 90s and early 2000s when the total number of desktop and laptops in service was exploding. And these days Linux mostly just works - I can't remember the last time I had to futz with an X11 modeline or a kernel module - but its too late.


Rosetta was available until Lion, which wasn't released until July 2011.


You’re right; my reasoning was wrong - it’s not the last Rosetta OS but the first non-Rosetta OS where you can’t run old software anymore. But my overall point that in a Mac you can’t use software much older than a decade still stands. Decade from now a new Mac will probably only run AArch64 software.


Packaging systems such as Flatpak, AppImage, and Snap allow Linux apps to have extensive backward compatibility going forward.


Maybe. I don't think the Linux world has made a credible commitment to support all or any of those going forward. In 5 years' time we can try to run 5 year old apps in those formats and see whether they work; I wouldn't bet on it myself.


Flatpak is confirmed to work on 28 Linux distros, and is pre-installed on 9 of them: https://www.flatpak.org/setup. Red Hat Enterprise Linux is committing to a 10 year support lifecycle for its Flatpak runtimes: https://developers.redhat.com/blog/2020/08/12/introducing-th...

AppImage just works on any Linux distribution. There are no external dependencies, since the package bundles all of the dependencies and there is no runtime required. I don't see how an AppImage downloaded today wouldn't work in 5 years.

I don't like Snap because the server implementation is closed source and controlled by a single company (Canonical), but Ubuntu 20.04 LTS (which bundles Snap) is supported until April 2030.


The fact that you're mentioning three different systems kind of proves the point - maybe one of them will still be working in 10 years on some distributions, but I wouldn't want to count on all of them working on the distributions that matter in 10 years' time. I'm old enough to remember LSB, which was notionally supported by all the big distros, but turned out to be useless in practice.


Yes. Flatpak is a game-changer.


Can’t this be solved by statically linking everything to the binary?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: