Hitting that App Installation Nerve
Judging by the responses both here and on various comment sites, my last blog about application non-installation seems to have hit a nerve with a few people. Hey, that's a good thing, and I thank you for participating in the discussion.
As usual with a blog like this, the comments ranged from "you're absolutely right" to "you're an idiot." That's ok. Over the years, I've learned to respect all comments because there's usually at least a few grains of truth in every perspective, and I need not agree with a person in order to gain greater insights toward my own goals.
BTW, my main point is that we really should avoid going down a road of ever-increasing system size and complexity.
If you understand systems and "systemantics" then you know that complexity kills systems. This is why my TV satellite box crashed five times last week and even why my iPhone wants a 250 MB download every few weeks. (I do not consider that a non-trivial download for a mobile device running simple applications.)
Is OS X The Answer?
Many of the OS X guys in the crowd stood up and took a bow for believing that they have the right answer, and also took a few shots at me for not pointing it out. (Some even claimed that I had never tried it, oddly enough, not knowing that I once worked for Apple as an OS kernel designer, have owned and used dozens of Macs since 1985, and now own a few OS X boxes, one being what I would call my favorite "personal computer" -- a term of special designation.)
Even before OS X, the Mac had an advanced concept of resources used for both data and application. Although the forked file implementation of resources was problematic, the general concept was powerful, but also easy to use and understand. I have to admit I liked the concept, but not the fork.
On OS X, resource forks are gone and file bundles are used to hold all of the necessary components for apps and data. As long as that's all an app needs to run, it seems pretty good. But, I have to admit I've never tried installing new apps just by copying their bundles, nor have I tried removing apps by deleting their bundles. Nor have I tried to overload runtime DLLs with app-local copies, assuming that's possible, which I imagine it must be. I suppose I'm just overly paranoid.
Are there other systems out there that also work toward solving this problem? Certainly, and if you read the comments to my post, you'll see quite a few mentioned.
BeOS/Haiku, Syllable, Starkits, JARS, Citrix, and others all aim to solve or minimize these installation problems, using a few different methods. Check the comments for details.
Personally, I tend to like approaches that minimize the effort on the end user's side, especially if it makes application management trivial. I can't stand wasting time installing apps. If you're asking me to download a 50 or 100 MB app system to do that, then it's not really as minimal as I'd prefer.
And, finally, that brings me to...
Does it Matter?
I guess we really need to ask that question, don't we? Is the traditional concept of an app just a dinosaur dying off? The concept of web-based apps is building faster than ever now that the web has gotten a bit smarter -- finally recognizing the great advantage gained by using the power of the client, what we've been pushing for quite a few years.
As a result, the requirement of installation has been replaced with just reloading the app whenever it's called for. Not very efficient is it? But then, for those who are not programmers nor system experts, who else really cares? Yeah, I know, that's heresy, but most users can just get right to using the app, not deal with app installations and related problems.
Yes, I suppose not very many people care, as long as they've got a good, fast, and cheap connection to the Internet. They will be online at all times and all places with pages and JS scripts that download quickly, network requests that have no latency and are transported by IP carriers that will give you all the bandwidth you want at no extra charge.
So, those are rock-solid guarantees for the future, right? Most computer technologists would say so. Just like bankers would about banks that are too large to collapse. Call me a techno-skeptic. Ultimately, everything changes. Like the CDS derivatives that brought down financial market giants, when you build a house of cards based on complex mechanisms that are difficult to understand, build, monitor, repair, improve, or remove, then ultimately, even a single glitch can bring it down.
Hmmm... it seems like I drifted from my opening topic. Or have I? Look, I just want a tool I can use efficiently, reliably, and at fairly low cost.
Now, I've got to get back to work. Let's see, where was I? Has my app install finished?