Obviously I get that something that is written in ‘portable C’ for Linux-flavored POSIX plus GNU tools is going to be harder to get working on Windows than on m68k Linux. That’s not in dispute.
It’s more the way that people act like targeting Linux-flavored POSIX with ‘portable C’ both A) is the be-all and end-all of portability and B) entitles people who have got Linux-flavored POSIX environments and C tool chains up and running in arbitrarily weird contexts to full support.
There are other environments. Some of them are very widely used. Acting bemused by the idea someone would want to run your software in somewhere other than a Linux context, while being unsurprised that people want to take that Linux context and run it in arbitrarily weird ways is the double standard I am confused by.
Obviously it’s not universal - there are plenty of open source projects that take different paths and philosophies towards portability - think of Python, say, or Firefox.
But there is a persistent attitude that because Linux can run ‘anywhere’, supporting Linux is portability.
To be fair, software written against Unix-flavored POSIX runs on almost every commercially supported operating system out there, from Linux and QNX, macOS and all the way to z/OS, which is a certified UNIX operating system (incredibly).
The only significantly used OS that’s not there is Windows. Also, IBMi, Unisys’s MCP and Atos’s GCOS and GECOS (surprisingly still supported). And OpenVMS too.
“Why are you complaining that you can’t use this software on Windows? It’s portable - You can run it on a zMachine! Heck, it even runs on BSDs”
Windows is not some obscure platform nobody uses. Wanting to run software on it is reasonable.
And I feel I should point out I am saying this as a lifelong Mac user, not a Microsoft shill. Parts of the Linux-centric community’s blind obstinate insistence that Windows just isn’t relevant because it’s non-POSIX just looks petulant.
> Windows is not some obscure platform nobody uses. Wanting to run software on it is reasonable.
If the maintainers don’t use Windows, it’s kind of not really their problem. If the user wants to use Windows and wants the software to run on Windows (and not under WSL), then they can fix it. Patches are usually welcome.
On the Mac side, it’s kind of in a sweet spot: the GUI is good, lots of excellent software for it, AND it’s a good Unix. When working on a Mac, I very rarely need to resort to a virtual Linux environment the way I do on Windows.
It’s more the way that people act like targeting Linux-flavored POSIX with ‘portable C’ both A) is the be-all and end-all of portability and B) entitles people who have got Linux-flavored POSIX environments and C tool chains up and running in arbitrarily weird contexts to full support.
There are other environments. Some of them are very widely used. Acting bemused by the idea someone would want to run your software in somewhere other than a Linux context, while being unsurprised that people want to take that Linux context and run it in arbitrarily weird ways is the double standard I am confused by.
Obviously it’s not universal - there are plenty of open source projects that take different paths and philosophies towards portability - think of Python, say, or Firefox.
But there is a persistent attitude that because Linux can run ‘anywhere’, supporting Linux is portability.