Monday, September 3, 2007

Proprietary software on Linux

Tonight I finally satisfied my curiosity and decided to download and try out Nero 3 for Linux. Nero as most people probably know is a CD/DVD burning suite of software that is commonly run off of Windows. A couple of months ago I stumbled onto the fact that there was a Linux version. I had checked out the screen shots and read a little bit about the features of this version of Nero, expecting it to be some watered down piece of crap not worth the space it occupies. I was pleasantly surprised to see that not only did it use a native tool kit, but that it also used GTK+ 2.x and integrated nicely into the Gnome Desktop. It was something I hadn't expected, but screen shots are only half of the equation. I decided to take it for a little spin with the month trial it offered.
Another thing that I was actually blown away with was the way it was packaged. It offered 32 and 64 bit binaries in rpm and deb form. Rpm and Deb files are two of the most popular package managers for Linux, the Linux equivalent to a Setup.exe or a .msi file for Windows. Since I use the Ubuntu Linux OS, I decided to get the 32 bit deb to download and install. Installation was typical as most deb file installs are and running it was everything the website promised. I burned an ISO to test it out and it worked like a charm. It really appears that Nero 'gets it' in terms of writing GUI software for Linux.
This entry isn't really a review about Nero but I just wanted to open it up with an example of a piece of proprietary software done right for Linux. A lot of times it seems to save time and effort, proprietary software makers release a very watered down shit version of something that may be great for Windows or Mac. Some use a bundled version of wine to make it transparent while sacrificing performance, stability, and desktop integration while others may use a native toolkit or create their own from scratch but create a functionally crippled version. One has to ask themselves "what is up with this? ". It seems like they are paying lip service to Linux but not really taking it very seriously as something to write serious software on.
There are various complaints at to why proprietary makers don't bother with Linux or produce substandard work. One of these complains seems to be "We can't possibly support the 500+ distributions out there". To this I say that many people are looking at Linux the wrong way. There may be many many distributions out there but how many are the most popular. Things usually tend to even out into a duality or maybe with three popular implementations of the same thing. An example of this is the Desktop environments for Linux. The most popular desktop environments to date are Gnome/GTK+ and KDE/Qt. There may be many more out there but these are the two that most desktop oriented distributions ship with. A solution when picking a desktop environment is to look at these two and pick one. Most proprietary companies may be inclined upon reading into terms and conditions of using the tool kits based on these desktop environments to choose a Gnome/GTK+ implementation because of the licensing conditions of commercial usage differs between Qt and GTK+, with GTK+ being more permissive. Desktop problem solved. As far as Linux support goes companies should likewise choose the top two or three distributions out there and write their software based on their libraries, package managers, and criteria. In the case of Nero, rpm and deb files were used, which cater to the most popular demographic of Linux. Those that don't fit the most popular demographic will usually have to settle for a harder to install file or have to figure out a way to install the software and are usually the more technical users who have the ability to do so.
There are other more legitimate arguments as well such as the case against photoshop being ported to Linux. Standard Font support, toolkit enhancements, color display standardization come to mind. I believe that instead of ranting on Linux distributions not having these things or bashing Linux in these areas adobe should really bring the complaints to the dsitributions and the respective authors of the libraries and systems in question. Perhaps working with them and giving the authors of GTK+, Gnome, Xorg, popular distributions, etc constructive criticism, could hold a step in the right direction. I don't think the standardization problem is as big as many make it out to be.