Diabolical dependencies
4 February 2008 - 10:28Linux advocates like to boast how their operating system is superior to Microsoft's Windows. This is certainly true of one particular irritation. Linux has addressed the problem of "DLL hell" - the situation where one Windows application won't run because another more recently installed one has replaced shared dynamic link libraries with other, incompatible versions. Linux installers carry out dependency checks to prevent this kind of situation from occurring. But the result can be to make it completely impossible to install a piece of software on a particular distribution because it just won't let you.
Under Windows, it was always possible to work around DLL incompatibilities by putting a copy of the required version in an application's own folder to give it its own private copy. It was simple enough to do that you could even instruct customers over the phone to do it.
Linux' solution is to make you recompile the application from the source code. But while this may have been a reasonable answer in the days when programs were relatively simple, many Linux programs now give nothing in terms of complexity to their Windows counterparts, and compiling them is a challenging exercise even for an experienced developer. First, you have to install copies of all the development libraries that have been used: KDE, GTK, GTK2, QT2, 3 or 4 or whatever - and that's just for the GUI. The task is even harder if the application has been developed in something other than C or C++, because while C compilers are either installed under Linux or easily installable, other development tools aren't as readily available.
Most Linux distributions get around the dependency problem by providing application repositories where users can download versions of popular free programs that have been precompiled for the exact libraries found on their distribution. But the flaw in this approach is those two words: popular and free. I'm a radio ham, and ham radio applications are not included in the download repositories of many distributions because they aren't that popular. Where they are listed, the provided copies are often old versions. I'm also interested in commercial software since, after all, that's how I make a living. Commercial developers can't simply provide a binary download that people can install on any Linux version, like Windows developers can, creating a major obstacle to add to the many difficulties facing anyone thinking of trying to sell Linux software.
The result is that Linux satisfies beginners and enthusiasts, but frustrates those whose needs and knowledge of technical matters falls somewhere in the middle. Its traditional supporters - geeks and free software advocates - know what to do if and when a dependency conflict occurs, and don't see what the problem is. End users, those who just need a basic computer with office software, email, a web browser and media players, will be perfectly content with the choice of software provided with their distribution, and will love how easy it is to add and remove applications. But those in the middle, the "power users" who are not operating system geeks or developers, who want the latest Linux software and not just those applications provided by the distribution vendor, are quite likely to end up frustrated at the difficulties involved in getting these programs running on their particular system. Some of them may well end up bad-mouthing Linux and going back to Windows.
Trackback link:Please enable javascript to generate a trackback url
Leave a comment