A few years ago, respected kernel hacker Dave Jones gave a highly amusing talk, "Why userspace sucks", which looked at the extraordinary ways in which userspace programmers wreck the performance of Linux systems--systems based on the kernel whose performance kernel hackers go to such lengths to improve.
There's no denying Dave's analysis. But, sucking can go in both directions, and there are some myths about the perfection of kernel development to be deconstructed. I'll take the specific example of programming interfaces--a place where kernel hackers inflict special pain on userspace. That leads to a parallel question: is code the only--or even the best--way to contribute to a project?
Audience: kernel developers, programmers using kernel-userspace APIs, programmers interested in API design, and anyone interested in the health of coding projects.