But, this is my blog, so why do I want it. Here's where it gets a bit, well, esoteric. I do love gadgets, and I like the newest things. However, I don't like buying the "same thing" more than once. A case in point would be my iPod. I had a 3rd gen iPod that I got for $499. It was very cool, had 40GB of storage, and would allow me to connect it to any Windows system to use it as a hard drive. I bought this when some people from Apple came out to my place of work to show me how OS X 10.2/.3 (beta) would work with Active Directory. Well, it didn't, but that's another story. I did, however, become infatuated with this little device. They didn't have the 3rd gen, but they had 1st and 2nd gen units, and I was amazed by the simple brilliance of its interface, along with the fluid function of the whole thing. So, I bought my own and used it.
Now, that unit had miserable battery life, and would frequently crash when it was in my jersey pocket during a ride, but I didn't hold that against it. Later, I bought an iPod interface for my Alpine stereo, and some other stuff. After a bit of time, I found that I was going to have to fly more often, so I got the iPod with Video (5G). Here is where things started to sour between me and Apple's consumer electronics mentallity.
I already didn't have much fun with Apple as a company, due to the most of the people I had to "work" with in getting their software to function in mega-scale, hardened, Windows environments. Over time, I saw this same refusal to understand their shortcomings, or even bother with simple patching. They would rather make the user (no matter what size that user might be in scale) wait for patches on their schedule, and many times those updates were simply called the new version of whatever it was you had to begin with. So, with the iPod 5G, there were several things they tweaked, but rather put all of them on the hardware that could use it via a software update, they gave us some of the things, and released a "5.5G" with everything. This also extended to their Directory management application, and rather than just fix it once and for all, it's been dragging along over the course of several OS changes. All the while, there is no admission of "fault" or "failure," rather a thin glossy veneer over the problems and big shining lights on whatever gimmick was being "added."
This process, as witnessed by many millions of customers, is what leads to/feeds the insance treadmill of product cycling that we do. What's that? Need a few tweaks here and there? Just replace the whole device. I have preferred the Microsoft and Open Source mentallity of "if it can run it, let it go." In my case, I had a 1.6GHz Northwood class Intel CPU that was overclocked to 2.4GHz and ran that for a while. Then, I eventually just got a 2.4GHz with a new motherboard. I ran at this speed for around 6 years. No multi-processor, multi-core, or even hyperthreading support. Just a single CPU. The last video card I bought was an ATi Radeon 2800 (I think), and that was in April of 2003. However, this system ran XP and later Vista just fine. In Apple's world, they would just rather you dump whatever you had and replace it every year or two. You know, to keep them employed. Or something.
Here's where the phone part comes in. I kind of liked the iPhone at first, but I didn't care for the touch-only interface. I've had my T-Mobile Dash (as mentioned earlier) for two years now, I it's had one ROM upgrade from Windows Mobile 5 to Windows Mobile 6. It works pretty well, but it just isn't fast enough to run everything I like. Also, while I like the OS, it's clear that it is still carrying a lot of baggage from the PocketPC days (I had two of those from 2001-2003) and not quite as quick as it should be. However, it will still at least try to do just about anything that the hardware will allow. Want to overclock? Go for it, although it might not be stable. Bluetooth support? We do nearly everthing, including support Voice Command for application commands over BT. Web browsers? There are at least 5 different ones. Java? Yep, several JVMs are out there, depending on the ROM you get. After that, you can run any of over 100,000 or more applications (some might be touch only, which could suck depending on your device). Oh, and don't like the look of the QWERTY keyboard? No problem, there are probably 50 different handsets that sell Windows Mobile, and they have a variety of hardware configurations. After this, you still get support from Microsoft.
Apple? Well, you get their OS, with their hardware, on whatever network it might be chained to. Want applications? Well, if it's a flashlight app you need, you're in luck. Otherwise, you are only allowed to get applications from iTunes? Don't like iTunes? Oh dear... Any deviation, and Big Brother Steve Jobs will not love you anymore. So, drink the Kool Aid and stick with the iTunes ecosystem.
Android, along with the HTC G1, stand for something else. The first thing to stick out is the plethora of input options. Well, you get the capacitive (like the iPhone) touch screen. But, you also get a keyboard. And a track ball. And, an accelerometer. A compass. Bluetooth. Oh, and some hardkeys at the base. This unit has just about every type of input you can get. Communication? Well, you get the normal GSM GPRS/EDGE stuff, along with T-Mobile's brand of 3G (AWS). After that, you get WiFi and Bluetooth. Oh, and a lovely "enhanced" mini-USB connector at the bottom. You also get microSDHC for storage. What's more, nearly all of this crap is basic, standard stuff. So, in my case, I've sworn off devices that don't use USB/mini-USB connectors so I have a ton of cables and chargers for these things, and I even have a headset modified to use the mini-USB connector for audio (they didn't include a 3.5mm headset jack on there, but I'm OK with that).
The software is also a fairly standard, yet modular setup. For instance, while it's based on Linux, it runs all of the upper-level applications in Java. I like Java a lot, but I usually hate how poorly the stuff you see is coded, or how awful the JVM/JRE the apps have to run in are designed and implemented. Also, when a Google developer provided a coding example, he did it with Eclipse, which is a great open, and free, IDE. Most of this stuff follows Google's traditional model of form follows function, where things are streamlined. This provides for an initial experience that isn't awe-inspiring to most people, but brilliant to geeks who know what they are looking for. For example:
- The notificiation area is brilliant. Basically, you can do whatever you want, and when a new email, text, voice mail, IM, or whatever comes up, you can read about it at the top of the screen and then just "drag" that down and see all the notifications that you've missed. You can also interact with them at their level (if it's a text, you can directly reply, or call/send and email) without bouncing around to various applications on the handset.
- Multi "desktop" concept. You can setup two different views, with a home page using basic widgets, and two other spaces that have shortcuts or whatever else you like.
- The concept of "intents." Basically, this allows the core apps, along with 3rd party apps, to "publish" functionality and allow other applications to tie into them. So, if wanted to play a huge game of tag, you could write an app that uses Google Maps for wide-scale navigation, then drops to Street View or using the camera, provides "targets" that are drawn relative to your position (using the GPS and compass hardware, along with the accelerometer for handset position). During this, you can send texts back and forth without leaving the application.
What I am really hoping for, however, is to keep a phone for 2 years and not feel like I am missing out so much to other handsets that are running the same OS. This has been happening with my Windows Mobile device, as it's just so slow. However, the upshot is that Windows Mobile does work on many things, and while it's a bit bloated (clearly) it does support a lot of hardware. Better yet, when new hardware is introduced (HTC and Samsung have different accelerometers) you can code support for it using their SDK. On top of this, a person wrote a unifying class to allow developers coding for accelerometer support to use one chunk of code to interface with differing hardware implementations. Windows Mobile allows for this, while Apple would rather you leave the most of the hardware out of it and code against Safari, its browser.
I expect Android to go even further than this, considering the open nature of the OS along with the Open Handset Alliance (hell, "open" is in its name!) should allow for better hardware integration along with backporting support of newer applications to older hardware. Couple this with more regular OS and SDK updates, using free/cheap tools that work well, and you have a huge platform begging to take over and expand. Let's just hope that it works out. For me, at least.