Jonathan Blow weighs in.
There’s a Hacker News thread about this tweet, and the amount of denial and wishful thinking in that thread is not any less than it would have been 10 years ago. So I predict that game development won’t ever get better on Linux barring some asteroid-strike kind of event.
But it got me thinking about what it would take to ship reliable software on Linux. My understanding is that Linus understands the importance of interface stability and that the kernel itself is pretty stable; the problem is the giant mound of userspace garbage that is all dynamically whimmed.
If you can make an exe that doesn’t use libc, and that talks to the kernel itself, you could probably ship something that works everywhere. Certain tasks like opening a window would be much more annoying, but you could certainly program the minimal amount of functionality you need, and after that it’s probably nicer than using the actual libraries you’re supposed to use.
I have no idea how to talk to a hardware-accelerated 3D graphics driver under these conditions, but maybe that just means software rendering is the thing on Linux.
All of this seems super hard / annoying, but if you are making a new programming language, the least you can do is keep these things in mind and not build your structure on the currently-existing userspace shantytown.
On my programming livestreams, once in a while people ask what I would do if I made a new operating system, and I don’t totally know, but I did say you could do a lot of good with a relatively small amount of work just by using the Linux kernel and deleting all of userspace and starting over, no compatibility whatsoever, to build a system that makes sense in 2020 and minimizes complexity in an appropriately hygienic way.
“Makes sense in 2020” probably means you can run a binary without “containers” or whatever else the kids are inventing these days in order to overcomplicate the job that static linking already did in the 1960s.
The other thing I should mention … for people who think “Linux just had an especially buggy couple of years, it just needs more time in its now-stable state and it will take over on the desktop and everyone will love it,” look, that is what people have been saying since 1992; for a long time the reason Linux didn’t take over was supposedly because evil Microsoft was pulling dirty tricks to prevent it.
But Microsoft just spent TEN YEARS seemingly doing everything they could to make their desktop OS unusable, and hostile for shipping software, and many other bad things, and Linux is still in the same relative position it was before that time (probably declining, actually?)
What you see today is the end-state of what shipping software looks like on an ecosystem built the way Linux userspace is built. It ain’t going to improve unless the system itself changes its philosophy in a fundamental way.
I know I am going to get tons of mild Twitter harassment from Linux fans for saying this stuff, but look … I want to switch to Linux or something like it. …
The Windows train is obviously going to a bad place. But, you know, I need to be able to write software that I can ship to people. I need to be able to work on a stable machine, and so forth. Make that possible and I will happily switch, and quickly.