Due to Hail, I found myself away from kernel full-time and thrown into the userland. I am giving a good look to it, and I have to say, it's damn comfortable. I especially like the interpretive languages like JavaScript. After 17 years of C programming, I'm somewhat sick of it. Also, the dazzling array of tools like debuggers, profilers, not counting the esoterics like Valgrind. Even simplest things, like the ability to run as many instances of my program as I want. For kernel we need virtual machines to do that. For userland, kernel is all the virtual machine I need. The userland programmer's life is like the Russian proverb about a cheese who's rolling in butter.

There are some downsides, too. The main one is that I face a mountain of shit code sky-high, and learn to deal with it. It may be not apparent, but the kernel continuously reinvents or reinvigorates itself by rewriting. Userland hackers try it too, but their density over the code is smaller (maybe much smaller). X11 has Keith, Ajax, and...? GNOME maybe a dozen, if that. And kernel has hundreds. Just the first layer under Linus is more populous than most big projects except perhaps Mozilla. At least this is the impression I'm getting so far.

The end result is that I have to focus on better code without the cues I have in kernel. Berkely DB is shit, is Tokyo Cabinet better? Or maybe Bitcask? It's more frustrating than replacing IDE with libata. Still I'm enjoying it.