January 22, 2010

toasters and computers

There has been speculation all over the internet about the soon to be released, Apple Tablet. I would like to toss my opinion about the tablet in the ring for discussion. I might just shave my hairy finger in order to use one (recall that I’m a monkey).

The two articles that have “nailed it” the most for me are this piece by Diaz at Gizmodo, and Gruber’s piece. Both articles are definitely worth a read.

Both discuss the need to move past traditional desktop OS paradigms. There are lots of benefits gained by not exposing the file system. Hierarchy is often conceptually difficult unless one is trained in dealing with it. Although in principal, “regular users” shouldn’t need to have to deal with files and folders on Windows, Linux and Mac OS X, unfortunately files are still the standard way of moving things around and organizing. Heck, you need to manually move files to install new applications on OS X. That’s a mess for newbies.

In ten years, I believe it will essentially be standard for computers to not have the file system exposed. Of course, there will be a pocket full of nerds who will still prefer access to the filesystem, just as there are still computer scientists who live at the command line, but they will be few and far between. To be honest, I think most nerds can survive quite well in sandboxed environments, even doing programming language related tasks. Stick your compiler in the sandbox and you can survive. And for the non-nerd tasks that remain for them, the simplicity that will be necessary for the non-nerds will improve their experience as well. Computation in a sandboxed environment is still universal computation. It’s just only universal in the sandbox.

The article by Diaz discusses so-called “appliance-based computing” conceptualized by Jef Raskin. The idea is that a computer could allow to use disjoint appliances, where the interfaces for each are completely adapted to that particular appliance. And indeed, a touch screen is the perfect mechanism to lay out an unlimited number of different appliances, which themselves only do something conceptually very simple. And one can switch appliances and have the interface adapt fluidly to the new appliance. And on the iPhone, the app store allows to have a massive number of different possible appliances. Desktop operating systems really don’t fulfil this objective with the physical keyboard and mouse, and with the exposed filesystem. In order to successfully apply appliance-based computing, it helps to have a touch screen, where the controls adapt to the appliance.

The consensus seems to be that Apple’s tablet will have a 10” touch screen. But what will the OS look like? What of the interface? On a phone, you mostly are “using” one app at a time, partially as a result of the small screen real estate. But when we scale the screen up, in principal, we could have multiple windows or apps that one could use at the same time. Is there a screen size where appliance based computation should switch from one full screen app, to multiple apps side by side simultaneously? I suspect that indeed, there is some size where it becomes ridiculous to run everything full size. Certainly, on a 23” screen, it is easy to fit two web browsing windows side by side, and I suspect, forcing everything to go full screen becomes harmful. So, likely there is some size where this should change. At 10”, I believe they will have found that it still has more pros than cons to run every app at full screen. This helps cement the “appliance-based” computation paradigm, and reduces complexity to the user. When you split the screen in half, there is a lot less that you can do, and user input becomes significantly more complicated as well.

One of the other benefits of appliance based computation on the iPhone is the reduction in complexity between “switching apps” and “quitting apps”. There is essentially no such difference in user action. You hit the home button, and start a new app. This is what you would want to happen if the OS was really just collecting together disjoint appliances. I suppose if the world was full of happy fairies, it would make sense that every appliance have the option of whether or not to continue to run all the time. But this simply does not scale from the perspective of engineering, even with more beefy hardware. And indeed, many users have 100 apps installed (on average, iPhone/iPod touch users have downloaded over 30 different third party applications). Having this number of apps is better for everyone, but having all these apps running all the time is absurd. Moreover, managing the distinction between quitting apps and hiding apps creates additional interface and conceptual complexity (we’re talking about grandma here).

Right now, the standard behaviour on the iPhone is that hitting the home button “almost always” quits the app. Well, that’s kind of messy, isn’t it? All third party apps, and most Apple installed apps quit the application when you hit the home button. There are a few background processes that do keep running though. For example, if you leave the iPod application, it does quit the iPod app (it really quits), but there is a small process that stays open in the background that doesn’t have the iPod interface loaded, but just plays the music, and displays a small menubar icon while other apps are run. There is also a little background app that stays open receiving messages from some Apple server, so that when apps quit, their servers can pass messages to Apple’s server and then on to your phone. This allows only one, very small background app to run instead of every app staying open to receive messages. So there are two little processes that stay open. There are a couple of easy ways to extend this concept without having every app be open.

  • OS wide audio player - Right now, if a music playing app other than Apple’s iPod app quits, the music stops. I suspect that in the Tablet, and the next iPhone OS, third party apps will be able to tap into the background app that plays iPod music, and continue to play music in the background. Then, the apps themselves can be unloaded from memory, but it will appear as though it is still running (the iTunes store app seems to do exactly this on the iPhone, as you can play streaming podcasts over the net in the background with the same menubar icon as the iPod app).
  • Location aware apps - For some apps, it makes sense to have events triggered based on your location. But it is also not nice to run your battery down and have the GPS running in the background. However, Apple knows where you are already, roughly anyways, with cell phone tower triangulation, and also with your nearby wifi routers. The cell phone triangulation is “always on”, and the router location is on, if it looks for wifi signals. So, it seems likely, that apps will be able to tap into both of these, on both the iPhone and the tablet. In the background, it will be able to tell within a large radius, where it is all the time, and every 15 minutes it will be able to tell within a smaller radius with wifi (I don’t think it will have the battery to sustain a constant wifi connection, but if it can, then that’s even better).
  • There may be some other limited background processing that is allowed. For example, right now, if you get a phone call, your current app quits, and the phone app starts, and then when your phone call ends, it re-opens your previous app. The app itself usually tries to recover as gracefully as it can, after having it’s computation cut-off. In the future, if there is enough RAM, I think that apps will be able to “suspend” while tackling urgent processes, and then resume, without removing everything from RAM. This helps too.
  • Time triggered apps - The clock app appears to be running in the background as well on the iPhone, but I suspect again, that the Clock app itself does quit, and there is something running in the background that triggers based on time (this is perhaps just launchd like on the Mac). I suspect that third party apps will be able to tap into this as well, and trigger events based on time. No extra third party apps need to be running then.

Are there any other classes of apps that would benefit from background processing? Maybe. But how much will they be benefiting? I don’t think much, as long as apps launch and quit very very quickly and sensibly (which gets much better with every hardware improvement). It will be hard to tell that they are essentially not running all the time. There is some nerdy things that I wouldn’t mind to do in the background, like heavy duty computation, but I think that will be reserved for much bigger screens with more horsepower. We don’t need to introduce that complexity for a screen 10” or smaller. Perhaps they will allow apps to suspend, and periodically wake up to do something, but that might be reserved for later.

Other than that, I believe the tablet will look largely like the iPhone OS. There will likely be many more supported gestures, which become easier to perform on a larger screen. There will obviously be the app store, which is crucial with appliance based computation. The input method is the big open question. I suspect it will be a large on-screen keyboard where you can touch type. I’m very doubtful there will be anything stylus-like that ships with it. It’s just too slow. There will be a third party market for them which will be important for artists, and specialists, but other than that, it will be all keyboard. Will there be a physical keyboard that one can use with it? I don’t know about this. It depends on how much Apple wants to encourage people to get used to typing on the screen. Sometimes forcing users to do something is better than giving them what they want.

Thus, in terms of physical predictions, I think it will look like a big iPhone. I think it will have a wifi only version like the iPod Touch, and a 3G+wifi version. I think the cell companies will sell tiered plans such as a “very lite” plan of 100MB/month for $15/month. This would be perfect for older folk who want a home computer with internet and could successfully serve as their only computer, and the only internet they’d need.

All in all, I think the tablet announcement will be very important as the first occurrence of large-screen appliance based computation has been brought to the market. As I suspect that this will become the standard in the years to come, it is a pretty big deal.

Comments (View)
blog comments powered by Disqus