Thursday, April 22, 2010

Google, Apple and the Future of Computers

By now you've probably heard that Apple has completely banned Flash from the iPhone. They first banned it from the browser and recently have banned it from apps under section 3.3.1 of the iPhone OS 4 Developer Program License Agreement. I don't like Flash and I don't like the iPhone, but no one can deny that Apple and Adobe are shaping the future of computing. To be clear, Apple didn't just ban Flash from the iPhone; they are also banning any virtual or meta platform. This includes MonoTouch, Unity3D, PhoneGap (link), Appcelerator, Corona and other platforms that won't be created because of the new Apple Developer License. Apple has banned anything that is not written in one of the few Apple approved programming languages. No popular general computing device manufacturer has ever gone to such drastic measures. This is where Google and Apple have completely different fundamental definitions of a smartphone.

Google believes that smart phones are just small general purpose computers that fit in your pocket whereas Apple assumes smart phones are a new class of specialized computers and thus new rules and ideas apply.
This realization explains a lot of things. This is why the first android prototypes looked like tiny laptops complete with a full keyboard below a tiny screen.

Android's features similar to laptop's functionality: desktops with icons and widgets; default applications; folders, changeable wallpaper, an app drawer (Start Button), multiple screen-size compatibility, and no restrictions on what apps can be installed. This also explains why Google is selling directly to consumers; you don't buy your laptop from your ISP you buy it from Dell. Perhaps this also explains Andy Rubin's dislike of pinch to zoom in Google apps; that's just not how computers work.

On the other hand, the iPhone looks and feels completely different than a desktop computer and the original iPhone didn't even support 3rd-party apps. The iPhone and iPad still have to sync to a real computer to get content on and off the device. They are not computer independent like Android phones. In fact, Apples markets the iPhone as "three devices in one", not as a single device to do everything. There is, of course, a lot of overlap between the two platforms and more overlap is being added with each revision of their respective platforms, but fundamentally they are from different schools of thought.

This also makes sense from a business perspective. Google loves general purpose computers. They make the vast majority of their money from advertising on desktop computers, so as mobile devices become more popular they would like them to be as desktop-like as possible. Apple on the other hand has largely failed at becoming the desktop computer of choice among consumers, but excels at single use devices like the iPod. Apple has done amazing well with the iPod in a walled garden environment. But now Apple is trying to bring the walled garden to more general use computers like the iPad. Some people will even replace their laptops with an iPad. I have to admit the iPad looks really cool, but it doesn't have a place in the future of computers that I want. The iPad could signal the end of the open computer scheme that we have now and replace it with Apple's restrictive environment.

Lets take a look at the new section 3.3.1. If Apple would have announced this policy on their general purpose computers, their iMacs or MacBooks, it would kill those products. Apple essentially would be banning Firefox, all Unreal Engine games, Flash, Python apps, Java apps, AIR apps, and even the single most downloaded app on Macs. Now imagine that you didn't know any of those apps existed, would you miss them? Apple has ensured that you will never see apps like these on the iPhone. Of course, Apple is not doing this on its OSX computers, but mobile devices are the (near) future of desktop computing. Eric Schmidt (CEO of Google) is now preaching "mobile first." Mobile apps are no longer an after-thought. Mobile apps are being developed before their desktop counter parts. A new study from Morgan Stanley predicts that the mobile web will be bigger than desktop web as soon as 2015. In just three years smart phones will have the graphical power of the Playstation 3 and in five years your smart phone will likely be as powerful as the computer you are reading this on right now. There is no reason phones shouldn't be general purpose computers.

Very soon smart phones will be suitable replacements for your home computer. You will be able to hook up your phone to a multi-touch Bluetooth monitor and a Bluetooth keyboard and it will work just like your desktop does today without the loud, power hungry tower. Android will be required to make some changes similar to the new popover idea of the iPad, but Android already supports multiple screen sizes and resolutions and I wouldn't be surprised if some desktop-sized resolutions are supported by Android very soon. One of the best examples of the differences between iPhone and Android is in an app I've written for Android called Smart Lock. Smart Lock runs in the background and adds parental controls to your phone. Even under the new background apps API of the iPhone OS 4, Apple would never let a 3rd party app change anything about the lock screen, but Android lets developers be as creative as they want to be.

I think both of these smart phone philosophies are important in moving the mobile industry forward. Apple has without a doubt set the bar for what a smart phone is, but I don't want them to define what a smart phone can be. Android and cross platform technologies are the future of general purpose computers.

Update: Apple has updated Section 3.3.2 to Allow some frameworks like Lua.