While randomly clicking today I saw this article with the fun title of "2009: software installation in GNU/Linux is still broken -- and a path to fixing it" by Tony Mobily.
As I don't have an account at FSM and don't intend to open one today, I will post a response here, where noone will ever notice it. Because that's how self-confident I am. I warn you, this response is full of proof-by-assertion and invalid generalizations, but hey, it's opinion.
It starts with an interesting claim:
And yet, software installation in GNU/Linux is broken. No, not broken… it’s terribly broken. Why is that, and what can be done to fix it?
I intend to show how there is one little problem with that statement: reality. As in "what's the most successful software delivery platform for 'normal' users in 2009, and why that matters here" reality (hint: it's not windows, it's nothing on a Mac).
I mean the iphone, and its App Store. And what he is proposing is abandoning something that works a lot like it, and go back to the cave-age "download this from the app's site" model windows uses.
He describes the usual installation procedure, be it apt, yum or pacman, almost all distros do the same thing nowadays, then starts describing the problems.
- Users need to have root access in order to install a piece of software; no per-user installation is allowed
This would have been a problem in the old days of shared computers. Nowadays, you are root, or (in some cases) root's mom. All modern distros use sudo so you don't need root access, you just use your own password (or no password at all).
So, this is a non-issue.
- It’s very tricky to install several versions of the same piece of software. Just think of the poor graphic designer who needs to install several versions of Opera and Firefox; Users are stuck with the piece of software installed system-wide;
How do you install iFart 1.0 and 2.0 in an iphone? Can you? Special users (like graphics designers) should be provided by special solutions, like portable firefox. Think there's a need for it? Go ahead, it's maybe one day of work.
- The software needs to be downloaded from the official repositories. Well, it doesn’t need to, but an average user wants to stay well away from unofficial repositories for technical reasons;
The iphone software needs to be downloaded from the app store. That has not hurt anyone (other than app developers, I mean)
- In some cases (especially when the user adds repositories or installs packages directly), the dependency-checking mechanism often fails and users end up with circular dependencies. They are nasty;
I have not seen a circular dependency since 2003. But hey, maybe they do exist. In that case, don't do that.
- A piece of software is bound to a specific distribution, and — what’s worse — to a specific version of that distribution too. It’s not trivial to install Openoffice 3.1 on Ubuntu 8.10. You can argue that you can install the bunch of .deb packages from OpenOffice’s web site. Tell that to your grandmother or your average inexperienced computer user.
Some iphone apps will not work without the 3.0 firmware. Solution? Upgrade your firmware. How's that different in Linux?
- It’s not trivial to “give” a program to a friend. To the end user, giving a program to a friend should be as simple as dragging an icon onto a memory stick; instead, files are scattered all over the system.
It'seven simpler than that: here, let me give you rst2pdf for ubuntu: "Tony, install rst2pdf, it's in 'universe'". I don't even need to give you a floppy disk or whatever kids use these days.
Oh, and "how do you give someone an iphone app?"
Then, he proposes solutions, which I think are worse than the status quo:
- Users should be able to install software even without being root
Users are root, or root's mom. This is not a problem.
- Users should be able to install different versions of the same software immensely easily
The only way to do this is to make everything static or freeze the systems libraries.
Do this for "portable" versions of specific apps if you want. Don't make the system suck, please.
- Users should be able to run either their own version of the software, or the one installed on the system (if any)
Fine by me. OTOH, how do you do that on an iphone? You don't. Please, stop diverging from what is working in 2009.
- It should be possible to download and install software even though it doesn’t come from an official repository
Again, the iphone doesn't, and noone cares. If you care, you are not the normal user you claim to advocate.
- Software just needs to work — unchanged — even if it’s a bit old and it’s run on a newer distribution
Yes, I want Quick Shot for iphones with 3.0 firmware!. Again, almost noone cares, except app developers.
You are acting like a Linux user, dude!
- It should be possible to “give” a piece of software to a friend by simply dragging an icon onto a memory stick
Just tell the guy the name of the app already!
All this is true with Apple’s OS X. They got software installation just right — although a few programs, lately, seem to come with an ugly installation process.
Noone chooses a mac for this. They choose it because it's pretty, or because they are told they are better, or whatever, but anyone actually saying "hey, on a mac I can give you Office by sharing this 800MB dmg!"? Not only noone does it, it's freaking illegal.
Besides, you give the dmg to your friend, and 92% of the time, your friend has windows or Linux and can't use it. So your chance of success is about 8%.
Imagine if it only worked if your friend's computer was an Acer? There you would have a 10.5% chance! (see here) Noone would say that's good!
No, sharin apps like that is not the problem.
Please, dear linux distro developers, look around you, and see what works in 2009.
Amazingly, what works looks an awful lot like what we have been enjoying since 1998 or whatever, so let's enjoy it and make it better, instead of trying to become like a mac, or like windows, old style platforms in the age of the smartphone and the netbook.