Still a good talk on software quality
Jonathan Blow - Preventing the Collapse of Civilization
@cstrotm I love listening to Jonathan Blow, even if I don't always agree with everything he says. You can just copy a program to a system on linux, it's called AppImage. And his comment about the OS layer... without it there's a lot of things you couldn't just do across those systems, like accessing the hard drive would be different on each system if you tried to go direct instead of through the OS. Same for shaders. You would shift it from metal/hlsl/glsl to Nvidia/Intel/AMD/Adreno/Mali.
@kazriko metal/hlsl/glsl are software abstractions on hardware. It is at the same level as an OS.
The abstractions could be made the same API.
But the companies that create these abstractions do want to make it hard to create games that are cross platform
@cstrotm Yes, but each OS vendor decided to make their own. So on Windows, hlsl is to allow all apps to use whatever graphics card on windows. On Mac, Metal is for allowing apps to use whatever graphics card. on Linux, GLSL allows you to use whichever graphics card. But you then to achieve compatibility to each would need to implement each of those separately. If you didn't have those, then you would need to implement Nvidia, AMD, and Intel's languages directly.
@cstrotm This makes perfect sense to Apple or MS, since they make it easy to just develop on their platform whichever GPU. Makes less sense when you get to the whole stack level, because now you're stacking abstractions on abstractions. Os abstracts the cards, then the engine abstracts the abstraction layers.
@cstrotm also, Vulkan has a similar idea called SPIR-V. There's platforms that shut Vulkan out though, like Apple's platforms.