The biggest advantage to working in Linux for Wellington-based software developer John Hurst: “simply having the source code”. This ranks above any slight technical advantages in working with the operating system day to day.
First, source-code availability means you can verify how things are supposed to work, Hurst says. The developer can dive into the detail of, say, a configuration routine, and “figure out what the legal values are and how they’re used”. This increases understanding of the system and the chance of spotting productive changes that could be made.
Second, like anyone exposed to the detail of leading performers’ work in their discipline, you learn from it, he says.
Third, if there are bugs, you can find them and do something about them. Hurst has not, he adds, found any bugs in the distributions of Linux he has been using, chiefly Red Hat, but he has found them in early development versions of some ancillary open-source products:
“I’m not talking about production software, this was before-release-1.0 stuff.” With no external eyes on a closed source system, he says, bugs stand a better chance of slipping through to the production version.
“If I’ve got a problem in a complex application that’s built of several components, maybe from different vendors, and they are all closed source, I won’t know which component is at fault or which vendor I go to get it fixed.” With open source, he says, he could probably spot the fault and fix it himself.
In terms of programming ease, “I like it better than DOS or the various versions of Windows. For the server side, definitely, it’s cleaner and easier to use.” Some of this advantage, he says, is a characteristic of the whole Unix lineage rather than specifically Linux.
He cites the similarity in Linux and other Unixes between a network socket and a file stream. They are both treated as essentially identical I/O streams; the same routine can be used for either. In Windows, file I/O and network sockets are entirely different creatures, which increases the programming to be done and the knowledge required.
“I’m not really qualified to compare Linux with other Unixes,” he says, cautiously. But there seems to be a wider range of tools supplied “in the box” with Linux.
“When I was working with AIX [IBM’s Unix], I found I had to install Perl. It wasn’t there, and I can hardly imagine programming for a Unix and web environment without using it.” He sees “a good quality C compiler” as another essential, again provided widely with Linux distributions but a separate purchase for some other Unixes.
Linux’s bad points include a lack of commercial finish. “My biggest moan is using it on the desktop [for administrative work]. The office productivity applications written for it are just not the same quality [as those for Windows].
“The user interface standards are not as clear-cut. I like to use the keyboard rather than the mouse. You might expect that Linux would be friendlier to keyboard users than Windows is. But I find the reverse.” Linux developers do not have the vast design resources that Microsoft has in the user interface arena, he points out, so the interface has its shortcomings.
But on the server side, Linux is still the least expensive — essentially free — alternative, he says. “And very reliable; I’ve had a web server of my own running continuously for 18 months, except for the few times I deliberately brought it down to fix or change something.”
Linux can be run on any old PC, Hurst says. It doesn’t need huge resources to manage a GUI that for embedded applications won’t be needed anyway. One of his current clients is working on a device that has its own physical user interface, in the style of a jukebox. It is currently running on Windows, “which means he’s got all that GUI in there and hardly anyone is ever going to see it or use it. If we can get it running on Linux there’s an immediate cost saving of $200–300 per device.”
There is excellent quality software available for Linux, such as the Apache web server. Networking is secure and you have kernel-level firewalling, he says.
The database software in the open source world is a little more disappointing, he acknowledges. “MySQL is the big-name open source database, and it has [crucial] bits missing. Or it did when I last worked with it. You couldn’t create views. It’s very hard to work with a relational database where you can’t do views. And there’s no sub-select — the way of nesting one ‘select’ statement inside another in a query.” Two-phase commit and rollback are or were also lacking, he says.