Skip to content

Instantly share code, notes, and snippets.

@ayshen
Last active August 29, 2015 13:57
Show Gist options
  • Save ayshen/9614497 to your computer and use it in GitHub Desktop.
Save ayshen/9614497 to your computer and use it in GitHub Desktop.
A shorter complaint about the monolithic nature of apps.

Apps are Functionality Ultimata

WARNING: Uncharacteristically strong language. See my in-depth analysis of contemporary human-computer interfaces for more professional reading material.

Every once in a while someone notices that an app asks for lots of permissions.

Usually this isn't really a big deal, but it is kind of suspicious if your flashlight app wants to read your address book.

Of course you can go find an flashlight app that doesn't want to be able to send text messages. But there's more to it than just "choice".

Why do we even need to have a big black shipping container full of Stuff to be able to control the camera flash LED? How do we know that the Stuff in that shipping container actually does what the label taped to the side says it will do? We can't just open the shipping container to see what's inside... Oh, and it's a hassle to send the shipping container back if the Stuff inside it doesn't do what the label says. And sending angry letters to the people who sold you that container won't stop them selling that sh*t.

Let's draw an analogy to the Android "permissions ultimatum" that everyone loves to hate. The modal monologue (1) that pops up before you can install an app is a final declaration of the Ways This App Will F*ck You in the A*s (2). Take it all or GTFO.

The apps themselves also do this. Here's a big blob of Stuff that might be able to do what you want it to do. It also has a bunch of other things that rub your fur the wrong way, but you can't just have the parts that Do What You Mean. This app is a final declaration of Things This Shipping Container Full of Stuff Will Do. Take it all or GTFO.

Each app is a functionality ultimatum. You get your content, your sniny user interface with Premium Swipe Gestures, and the app developers' overinflated egos all in one package. And if you don't like any part of it, f*ck you, deal with it. It's not like you have anywhere else to go after they've locked you into their hermetically sealed "ecosystems".

Look at our normal computers. The ones you can program without needing another computer or a metric ton of IDE app and a Bluetooth keyboard. The ones that we haven't software-lobotomized into toys (yet). If we want those computers to Get Stuff Done, we can get the software that does exactly what we want. And if we can't, we can either get the source for something that's close enough, or write it ourselves.

Now look back at our phones and tablets. How did we let this happen to us? Why did we give up on having things exactly the way we wanted them and settle for things that only Just (barely) Worked? (Yes, we're lazy.)

Tasker is a good example of trying to stop this vicious trend. You can make your phone do almost anything you like with it, if you make the right tasks. It could very well be the Last App You'll Ever Need. But damned if I'm going to learn how to use it. And if I, as a person with reasonable knowledge about how our phones and tablets work, don't want to learn how to use it, you can imagine how well it goes over with Alice and Bob, and little Joe's grandmother who got a tablet for Christmas. They don't need their phones and tablets to be computers; they just want to browse Facebook and play Angry Flappy Birds Crush Saga With Friends (TM).

Let's consider demanding the ability to put together the services we want, piece by piece. It doesn't have to be anything that exists today. It doesn't have to be completely new. It doesn't need to be one size fits all. Split off the people who want things to Just Work if we have to. All we have to do is demand the ability to have what we want, and nothing more. Is that too much to ask?

(1) Monologue, not dialog, because what you think don't enter into it.

(2) The Big Lebowski. Pardonnez le français, s'il vous plait.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment