Piradian Null Device Company
My Buddy Sol Gets an X-Ray

Linux is a mental disorder [May 20, 2010]

Okay, maybe that's a little dramatic, but there are some stark differences between any distribution of Linux and any other Unix OS. The kernel is good, but here are some things I've noticed about Linux... anecdotal stuff, I'm not writing a research paper. A lot of this has less to do with software than the people who are writing it.

  • The documentation is awful. The "movement" decided that man pages were no good, and so they started HTML how-to's and info pages, and some stalwarts still held out and wrote man pages. If you need help with compiling or running anything on Linux, you'd best make friends with Google. And, honest to God, any documentation for core Unix services, I get from the FreeBSD handbook. The pathnames are different, but so are the authors. If you're lucky enough to have a Linux RPM (or your favourite incompatible and mutually exclusive package manager) install without completely bombing on dependencies, you've got about a 30% chance of getting a manual with it. You're just supposed to know if it's on a web site somewhere, if it's in the man pages, if it's in LaTeX, info pages, /usr/share/doc/Play-Doh-Docs or if you're supposed to type ./command --help to get help. There is no consistency. Lots of times you'll get editorials in Linux man pages, if you're able to find them at all.

  • Runaway processes can take down the whole machine. This is true on any time-sharing OS, but it's been my experience that time-sharing is not very mature on Linux.

  • Obsession with MySQL. This is hands-down the worst attempt at a database I've ever seen. I may have been spoiled. I cut my teeth on Oracle, and even completed their OCDBA program for 8i Enterprise. MySQL not only has a dopey name, but it's also a very immature DBMS. Three years ago it didn't support nested SELECT statements. Now they're claiming victory for their "widespread adoption" and ubiquity. MySQL is running blogs. If it weren't for PHP, the "other" server-side include, you would never have heard of MySQL. If you're using MySQL for anything important, you're an idiot. If you want a good DBMS without paying for one, there's Postgres. The whole LAMP idea is for non-programmers. It's RAD, alright, but it's crap.

  • The Linux philosophy. Linux people write packages for certain "distros" (there are probably hundreds of these now) and package managers. There's no consensus on what constitutes a complete package (e.g. statically linked libraries, a manual, paths suitable for the environment it's going into, etc.). When I install a Linux package, if it works properly, I'll probably have a new set of directories that I'll need to create symlinks to (or, as the Linux people suggest, just alter my path one more time so that it searches the entire hard disk every time I try to invoke something). I have no idea if I'll get man pages, info pages, web pages, LaTeX pages, PDF manuals, or mailing lists to provide information on the new package. This model is chaotic at best. The philosophy of the package authors is, "Hey, it worked at my site, and it'd work at yours too if you were just running the x.y kernel with your PATH set to this and every user on your system creates symlinks to blah blah blah." If it worked once, somewhere, for somebody, it's ready for release. Chaos.

I confess to being a FreeBSD bigot. Building is easy on FreeBSD. Ports are easy on FreeBSD. FreeBSD is predictable because decisions are made by a group of people BEFORE it's released, and it's always the same group. I keep trying to like Linux. I really want to! I have used RedHat, Ubuntu, Debian, CentOS, Slackware, Caldera (when they were still alive), Suse, many others... it's no use. There's no consistency. But hey, there will be another new release tomorrow. I can wait until then.

 

Copr. © 2010 Piradian Null Devices