Friday, October 03, 2008

Features VS Stable

Sam Varghese wrote an interesting article about How often do we need GNU/Linux releases?. Basically, it describes the life cycle of an operating system and it's release cycle.

Some people said it's better to use long cycle and put everything interested on that build and release it as a big jump. This what happened in most Windows products. Every new Windows product always put huge pile of new features and sometimes it's too bloated and not everybody can afford to use that new product (i think i don't have to mention the product). This model is good when you (as the customer) are using very old version, since you can jump to that version and you will get a whole new system with new features. It's also has negative impact, such that you must learn to get used to it (mostly when the UI is totally revamped like what happened in MSO 2007).

While in the other hand, most Linux distribution tends to have iteration and shorter cycle, let's say every 6 months (this what happened in two big Linux distribution, such as Ubuntu and Fedora). People can have better estimates, since they can expect a new version every six months (even though it slipped, most of the time it's just one or two weeks). Unfortunately, this approach may suitable for those who have good Internet access, since downloading them is not a big problem. People who had slower bandwidth must wait until they can get from their friends or as a bonus on a Linux magazine. While they are trying to install this version, new version is already scheduled and things will change again. It's like your life is just meant to upgrade your OS every day big grin.

In most cases, you will see that in six months, lots of things have changed in the core of the OS. Take an example of Ubuntu. They are trying their best to integrate the latest technology on their products every six months (in the past, it was Mandriva and SuSE who did this). Sometimes, they don't have enough time to test all of those new fancy features and just pushed it out to meet the schedule. In the end, it may crippled the OS which supposed to be stable to be used for daily activities and production. In simple words, they are focusing on the technology. This sounds good at the beginning, but when the deadline draws near, they might get rushed and forget about the stability.

Lucky me that Slackware do not use this tradition. You will never know when will PV released next version of Slackware until he announced officially (even though you might be able to guess from the -Current changelog). For him, stability is the main focus of the Slackware development, not the bleeding edge technology that might caused lots of headache due to heavy load of maintenance and security problems.

In short, Slackware's motto about release cycle: It will be released when it's ready. This is a good example. Why? because the product should be stable enough until the next cycle of development. You can't ask your users to update everyday, can you? They got work to do. It's the maintainer's job to make sure that the OS is stable enough for daily usage. There are disadvantages of this approach (of course, nothing is perfect). You might not see the latest technology on Slackware, but i guess a working and stable system is better than a system with bleeding edge technology but not stable enough.

Well, it's my personal opinion (because i used Slackware), so it's normal if you disagrees with me for this matter (mostly if you used other OS). There's alway a trade-offs between features and stability. You want more features? Expect less stability and vice versa.