Why Linux needs .app
A little over two months ago I started using RedHat Enterprise Linux 5 as my primary desktop. I won't lie, I prefer Ubuntu, but I didn't really have a choice. It was my work desktop. It was a neat experiment, learning to live with Linux everyday.
My biggest frustration was installing, updating, and removing applications. It's 2008, why is this so hard? Well I'll tell you. I don't even know where the application lives, let alone any of its files or dependencies. Did I mention it took me three days to get Firefox 2 installed?
The problem here is that software is complex. There's a million languages. There's too many dependencies. Where should the help files go, and which format are they in? Honestly, it's out of control. Linux it's time for you to nip this one in the bud.
I know a lot of people suffer from the not-invented-here syndrome, but I'm curious, has anyone solved this problem? I mean, who's taken UNIX-like operating system and made it easy to manage software? Anyone? Oh yeah...there's that one Cupertino, CA company that came up with something. They use folders. Any folder with ".app" in its name. There's a standard for where things go in that folder for all types of resource. Nice and simple. But there's a problem. My application depends on Java 1.4.2 or Python 2.4.
Well 1 Infinite Loop has a solution for that too. Any folder ending in ".framework" in the frameworks folder in the root of the system. These framework folders have a folder for each version. For example Java 1.4 and 1.5 each have their own folders. As minor versions are released symbolic links are used, for instance: Java 1.4.2 is the current version and the 1.4.2 folder has the latest release, while 1.4.1 and 1.4 are just symlinks to 1.4.2.
Don't even get me started on Apple's elegant solution to storing software settings. I'm not saying copy Mac OS X. Wait, yes I am. Seriously folks, just do it. Can you imagine how nice it would make life in Linux? I could actually delete an application and know it's gone. I could easily restore application settings to the defaults. Applications could use different versions of dependent software, without making me care or worry about it. Updating applications could be trivial and automatic. Nobody friggin' cares about doing software updates. This is why the web does it so well: software updates are completely transparent to the user. Tell me you want anyone to spend even a second thinking about software upgrades and you're wrong.
I remember each of the last few years being touted as the year of Linux on the desktop. Sadly until the complexity and sheer ugliness of its current state is changed, this will never be the case.
P.S. I think there's a an opportunity here for the least likely party to win with Linux. Microsoft. I'm not even kidding. Just take a deep breath and think about it. Remember Mac OS 9? Remember what a piece of shit it was? No true multitasking, no protected memory, etc. Do you remember how Apple solved that problem? They just took FreeBSD and put their GUI on top of it.
Microsoft won the desktop OS war long ago. Today more and more software is web-based. This means the desktop OS is dying slowly. Stop wasting time and money Microsoft, just take Linux and make it usable, because honestly, all users want to do with their OS is launch the browser and hit the web. The best way to do that is probably make a few smart acquisitions here and there (and let them keep their brands and attitudes) and redistribute your resources accordingly (by maybe spinning off certain products that have no long-term future as separate companies, Wall Street will totally fall for it).


