3 ms·
I'm one of those young developers in the Linux space that doesn't go near the kernel with a 10 foot pole, for four reasons: 1. It is a monolith. The actual ker
by zanny 13y ago
I'm one of those young developers in the Linux space that doesn't go near the kernel with a 10 foot pole, for four reasons:
1. It is a monolith. The actual kernel parts that matter for an executing preemtive virtual memory virtual fs operating system are probably 1/100th the code base - most of it is device drivers. That core stuff has been chizzled to a fine point, and I'm not a device manufacturer so I'm not working on drivers. If I were to get involved in any part, I'd have to worry about leaking into other parts, and interacting with a massive developer web.
2. It is C. As a C++ guy, whenever I have to write out each type handler of a function I'd rather write as a template I want to beat my face on the keyboard. i just can't write C anymore because every 3 lines there is some productivity boon or maintainability gain I could have from modern C++ I miss too much. In the general case, not many young developers want to write C. They either like their Rubies and Pythons, or want a broader native language to work with than strict imperative.
3. I can better invest time and make a difference in more modern projects. I contribute a lot to KDE and game emulator projects, rather than try to fix the low level stuff that other developers are significantly more well versed in than me. Which also (in the LInux world) is also all written in C. Except GCC, but they have guidelines on what C++ features you are allowed to use which really limits the utility of the language in some places.
4. The learning curve is a mountain. I had a project in my BS to implement a simple system call and compile a custom kernel, but anything beyond that has broad reaching effects and a requirement to read thousands of lines before even starting, at least in the capacity I would feel safe writing code for something executing in the highest proecessor state with complete system access without worrying about mucking it up.
I'm wondering if in, say, another 10 years, we see a microkernel with userspace drivers pop up the way LLVM has become popular against GCC not only because of the licensing and Apple backing but also because it is deeply modular and much easier to implement new langauges on compared to GCC. Maybe the magnitude and pressure in Linux might one day become unbearable and force a transition to something in the same capacity.