Hacker News new | past | comments | ask | show | jobs | submit login

Not the kernel, but the OS. Backwards compatibility and having GUI libraries LGPLed.

The Linux kernel has a rule not to break users, and for the most part, it is followed. This is not followed in userland where glibc and GNU GCC C++ library do break users with they accidentally do not follow the spec. GUI libraries like GTK and QT break binary and source compatibility every decade or so. Windows tries it's best to keep it and that makes people want to invest in it.

Now LGPL libraries, it is very difficult to write a self contained proprietary GUI binary on Linux. This is desirable because of the above, GUI libraries like to break compatibility every decade so you want to include your own so it can run in the future. Sublime has to write their own GUI frontend. Most proprietary developers use electron.

A solution to both is Iced, but it hasn't been out that long. Likely will try writing a small app in it later. Mit Licensed. Wayland and Vulkan support. https://github.com/iced-rs/iced




> The Linux kernel has a rule not to break users, and for the most part, it is followed. This is not followed in userland where glibc and GNU GCC C++ library do break users with they accidentally do not follow the spec.

I do think it's a bit harder when the spec is an external standard rather than just a de facto standard of your existing behavior. The kernel doesn't claim or aim to be fully POSIX compliant, so they "just" need to guarantee that they don't break their existing functionality. This isn't a small task by any means, but C and C++ compilers need to do this on top of ensuring that their behavior also conforms to the standards; it's essentially another guarantee they have to uphold beyond what Linux has to deal with. I don't have anywhere close to enough expertise to make any assertions of whether they've done a good job at upholding even the base guarantee of backwards compatibility though, so this point might be moot.




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

Search: