To paraphrase one of the best “Star Trek: The Next Generation” episodes, “Best of Both Worlds“, both Arch Linux and Slackware represent the best of all the OS worlds: the power of traditional Unix, the elegance of BSD and the ease of mind of Mac OS X. This is an article outlining the differences between –what I believe– are the two best Linux distros around today. Mind you though, “best” doesn’t always mean “easy”.
Installation & Fist Steps
Both distros feature text-based installation that are quite equivalent in terms of features and ease of use. However, I will give Slackware a slight preference here because of all the networking/package installation that’s done by the installer, while Arch requires the user to use a text editor to edit the /etc/rc.conf to its liking, as this requires some extra knowledge.
Winner: Slackware (by a slim margin)
Configuration & Usage
While the installation of Arch by editing rc.conf might baffle some, the same rc.conf makes the system configuration of Arch a breeze, after you finally get it installed. Having a single central point where you can edit daemons, modules, networking, hostname etc, it’s just convenient and easy to remember. Adding/removing daemons especially, is really easy, much easier than in Slackware, (the Slack book has… forgotten to mention those).
Slackware comes with better defaults though. /dev/dvd nodes (when applicable) and Alsa sound restoration, gstreamer’s plugin registration, right permissions for /proc/acpi/event (for laptop users) etc, all happen automatically, while with Arch you need to go tweak those yourself. It’s convenience that makes Arch lose points here. For the sake of calling itself a “distro for advanced users”, it’s missing some no-brainer conveniences that should have been there by default.
Another problem with Arch is the fact that Gnome, KDE and especially Mozilla are installed in /opt/. I had a fair share of applications that just couldn’t find the Mozilla SDK to compile against in /opt, even if the /etc/profile.d/ was updated. Monodevelop, Blam! was some of them. I believe that not having to dump everything on /usr is a good thing, however the Arch implementation doesn’t always work as expected. Instead of basically replicating /usr on /opt/, some innovation would be welcome, just like Apple does with its /Applications folder.
Despite all this, Arch wins this configuration and usage category shootout, because despite some of its initial troubles, after you get it up and running, it is much, much easier to change and configure things in it than it is with Slackware. In my experience with both, messing around with things on /etc/ for configuration, it’s just easier to get by with Arch than with Slackware overall.
Slackware’s original package management system doesn’t support dependencies, but the great thing is that within the Slackware community, you don’t really need the feature. Just like with the Windows or Mac or Be developers, the Slack third party packagers make sure that either everything is included in the package, or that the needed extra dependencies are available to download from the same web page. That’s truly zero hassle, and this was one of the reasons that I became hooked to Slackware last year.
Personally, I use Swaret with Slackware. Without it, installing new packages from Slackware-Current was just painful. Thank God for Swaret!
On the other hand, Arch’s package management, Pacman, supports dependencies and it’s as easy to install new packages as is with Swaret, if not even easier. Pacman works well; however, in my opinion, its main problem has to do with the creation of new packages. I found that using “CheckInstall” with Slackware (or even Ubuntu and Debian) would install and create the package automatically for me. It would be awesome if the Arch guys added Pacman support to checkinstall and made the creation of Pacman packages automatic. Both Swaret and Checkinstall ship with Slackware, but on its /extra tree.
Winner: Without Swaret/Checkinstall, Arch Linux is the big winner because it has a larger package selection & dep support. With Swaret/Checkinstall in place, Slackware is slightly ahead because of the convenience these bring.
Stability, Bugs & Recognition
Slackware (along with Debian) represent the ultimate form of stability in Linux regarding all their shipped packages. Nothing enters the -Current tree if it’s not proven to work well. Stability in Slackware happens because of the no-patch policy: very, very few apps are getting patched. If something needs patching for this or the other reason, it’s just not considered stable, and so it doesn’t enter not even the /testing branch! Saves hassle for both the users and the Slack developer!
Arch is also good regarding bugs and stability, but not to the level of Slackware. Many packages from /extra or /current (trees that people use daily to enrich their Linux experience) are just not well thought or well-put together in terms of the way they interact with the rest of the distribution or other packages. I also had Arch die on me twice while using udev (devfs was rock solid).
Another thing with Slackware is that it is a more popular distro, and so third party application writers are more likely to have ready packages for it, or even have support for its system backend, like in the cases of CheckInstall and NetworkManager.
I also found Slackware much more proactive and fast in delivering security updates than the Arch developers. In fact, Pat is very careful to provide new packages that fix security issues almost immediately, while Arch can lag several days for these, because some of these packages are maintained by less active Arch packagers. This is a decision-making point for those who want to run servers.
Winner: Slackware (clear win)
Speed & Optimizations
Arch wins this one. It is an i686 optimized distro, and the fact that comes with kernel 2.6.x by default gives it an edge. I have personally seen a much better sound latency with Arch than with Slackware. With Slackware (on the same machine), there were times that I would do something heavy and it would disrupt my audio playback, while doing the same with Arch results in no disruption, just as I experience with BeOS, XP and OSX: like nothing has happened. Arch also turns off my machine automatically too, while with Slackware I have to manually turn off using the power button. Little things like that make a difference.
Slackware has more users, and this results in much more documentation available, more Google results, more users on IRC/forums to help you out if you are stuck. Arch is still a small distro with its main developers working on it for fun. Slackware has an established business around it, so professional, fee-based help is available too.
Developer Activity & Vision
Arch wins this one easily. It’s a very actively developed distro. Application packages are updated daily and Judd Vinet takes care of the system part of the distro fast and nicely. Sure, not all security holes are updated in time, but the user can have more than enough new packages daily to toy with. This makes Arch a better desktop solution than Slackware.
Slackware hasn’t seen any major change/innovation in its subsystem for years. This is a let down for me, because while I love stability, I also want to see new things that fix existing usage problems instead of just lying to ourselves “that’s how unix works” and leave the things unchanged just because we are afraid to think outside of the box. Being conservative is a has its merits, but if you overdo it, you are risking that your project will be left behind in many areas. And Slackware is close to this classification.
Overall, both distros are great. In my opinion, overall, these are the two best distros around today. They are not the easiest to use and configure, but after the average user would go through the initial “week of pain”, he/she should be happy with the result, as speed, stability and package support is adequate.
I would pick Slackware if the machine I were running were an older one (like my brother’s AMD K6 300 Mhz laptop) and if I wanted super-stability on all the supplied packages and the system. I would go with Slackware if I wanted a server or if I needed a distro that’s somewhat recognized and supported by third parties.
I would pick Arch if I were running on newer hardware, and if my internet connection were faster than dual ISDN (because updates happen more often, you will find yourself in the situation of upgrading almost daily). I would pick Arch if I needed a desktop and new apps to toy with.
So, overall, it’s a tie. Depending on your needs, it’s either Slack or Arch. But in no case –at least for me– would I choose the bloatware that is in other distros. Sure, these well-known ultra-popular distros provide some user-level conveniences, but the price you pay afterwards (because of their crazy bugs and overall slowness), doesn’t make them worthwhile. Ubuntu and Debian are interesting choices, but also not as fast or flexible as Arch or Slack, while I personally keep away of the likes of Gentoo (used it, got the t-shirt and hated its long compilations and “let’s patch everything” nature).
So, try Arch or Slack, or both, and then decide which one to keep. They are actually pretty similar in terms of philosophy anyway.
Distros were tested over a period of 10 months using three machines: an AMD Duron 1.2 GHz LinarePC, an AthlonXP 1.4 GHz MicroTel PC and a 2.8 GHz P4 laptop: Special Thanks to LinuxCertified for providing the laptop to try out the distros.