When it comes time to upgrade to a new version of proprietary software — take the Windows OS, for example — many users are less than thrilled. Upgrades can mean an added expense for anything more extensive than a bug fix or minor feature upgrades.
Even free minor version upgrades of a software product can cost a considerable chunk of time backing up files, uninstalling the older version and then installing the newest version. Then there is the added joy of importing saved data and learning how the new features work.
Linux users, on the other hand, often look forward to upgrade time like they look forward to their birthday. With a new distribution of KDE (K Desktop Environment) or Gnome, for example, cool new features and functionality to the user interface are free. Unlike upgrading Windows programs, Linux program upgrades are handled by the operating system itself.
Linux users usually can sit back and watch the Update Manager handle the task. Upgrade time for Linux apps is a happy occasion. Open source software developers give their users a gift that keeps on giving.
“Most open source projects make new releases fairly rapidly. This process is community driven, even when there is a commercial entity involved. So users tend to look with anticipation for new features. But there tends to be less surprise. It is harder to keep new features secret if the developers are always talking to the user base. The process is very transparent,” Dave Roberts, vice president of strategy and marketing at Vyatta, told LinuxInsider.
The constant discourse between users and the development community for an open source project lets product users plan whether they want to do the upgrade or not. By contrast, proprietary companies are driven more by their own will than the direct input of users.
It takes at least 12 to 18 months for a new version of a proprietary product to reach market. Open source software may see several version upgrades every few months.
In the open source world, users are closer to development. The upgrades are more granular, according to Roberts. The cost of release is much smaller and often just involves posting the new release for download, not burning CDs for widespread distribution.
Despite the user expectations for frequent “presents” of new features in their favorite programs, software developers often have ambivalent views over the process.
“Frequent release cycles are both a curse and a blessing. Software developers are creating fixes and patches all the time. The downside is the developer doesn’t want to do upgrades all the time,” Barry Klawans, founding member of the Open Solutions Alliance and CTO at JasperSoft, told LinuxInsider. “Commercial vendors in open source are not always doing this process as frequently.”
The upgrade process in Linux is supposed to be fairly seamless. Upgrades to the OS happen automatically in many Linux distributions through an upgrade manager somewhat like that used by Microsoft. Software applications are also tracked through the upgrade manager, so the user usually has nothing to do but click the OK button and enter the password.
In most Linux distributions open source software, called “packages,” are prepared into the required format for inclusion in repositories by the community. The installation scripts are automatically handled by the OS and added to the upgrade manager program list for automatic checks for upgrades whenever they are available.
However, the user has to manually start the installation script that came with an application package from sources outside the community repositories. The initial installation and future updates might only work via commands the user enters at a terminal window. This is somewhat reminiscent of the DOS boxes in earlier versions of the Windows OS known as the “DOS (Disk Operating System) prompt.”
“Some software companies do a better job than others in handling upgrades. This is even more true with commercial companies,” Klawans said.
Sometimes the upgrade process can be disruptive to users. There are no definitive guidelines that open source developers follow in determining when an upgrade requires the user to remove the earlier version and reinstall the new version. For instance, Ubuntu 7.10 requires that the user already have the latest version installed. Missing an upgrade — which is entirely possible when new versions pop up in such fast succession — means the user has to perform two or more operations instead of just one — or just reformat the hard drive and start from scratch.
“Some product upgrades are less friendly to install, so the user has to start over with a full reinstallation,” Klawans explained.
When this happens, the cause is often the result of radical changes in the application, not a lack of sensitivity to user inconvenience. Often, this is not just an open source issue.
“The sometimes rapid pace of developing software, especially for Web 2.0 applications, results in incredibly complex components,” Bdale Garbee, chief technologist for open source and Linux at HP, told LinuxInsider. “Having to deal with sometime inconvenient upgrades of a product motivates customers to analyze their needs and decide when and if to carry out the upgrade.”
When OS and major software reinstallations are required, the end result is better performance. For example, with Linux, upgrades to the kernel and other parts of the basic OS are not always related to features. The goal is stability, robustness and scalability, so forward compatibility is in good shape, Garbee explained.
Software that has been around for a while is well behaved in the upgrade cycles, so the developer can make upgrades as seamless as possible, according to Garbee.
“You don’t tend to run into DLL hell with Linux the way you do in Windows. Dependencies among programs in Linux are under better control,” he noted.
For users, open source is a renewable gift, Garbee noted.
However, forced reinstallations do occur in some software cycles. Developers make decisions, for example, to change the interface. This requires reinstallation when upgrading. Open source programs are not uniquely free of hassles that their proprietary counterparts experience. Major transitions can occur, Garbee said.
JasperSoft releases new open source versions whenever necessary. The Pro version is done two or three times a year. This gives users the latest open source tested version, according to Klawans.
In the case of a major upgrade or feature shift, the product might need a full re-installation. A less-than-routine upgrade can happen when an open source company provides a user with an upgrade from the free version to the commercial version of the same application. The company handles this with installation scripts that it makes a part of the upgrade distribution.
“Application vendors really need to concentrate on providing install scripts or at least an easy export path to save and reload existing data. This is critical in CRM programs, etc.,” he said.
Vyatta uses a time-based release cycle. The company releases major upgrades twice per year and may issue minor releases every eight to 12 weeks, according to Roberts.
“This process for us is self-imposed. We can be faster moving at a smaller scale,” he said.