There are a lot of cool things about the G1, but most people don’t talk about he hardware very often. It has a pretty snappy CPU, a good amount of RAM, and expandable storage. The coolest thing about the CPU is that it is a CPU/GPU dual-core combo unit. That gave me some ideas.
I know that Apple is working on their OpenCL that will allow applications on Mac OS X Snow Leopard to leverage the GPU for tasks that use it to advantage, like say floating point math, etc… It abstracts away all of the lower level coding that one would normally have to do for this type of functionality. Nvidia has some APIs for this type of programming, and I believe that Intel does as well. But one of the spaces where I see this as being especially beneficial is in the mobile space for phones and the like. The reason is simple, there is usually no math coprocessor like their x86 counterparts, and while most software doesn’t use it, others, like say speech recognition and image processing could get a huge boost out of it, and at a modest power cost.
What would be awesome is if Qualcomm published some sort of GPGPU language or spec to the Android foundation, and that made it’s way into the Android framework. Then when the GPU wasn’t being used, or when it was being used lightly, it could be used by code in the way one would spawn a thread to be run, but instead of running in the main CPU it could be run in the GPU, and free up the CPU to spend time doing something else.
I’m sure this has already been thought of and discussed by the Android brain trust, but it just occurred to me, and it would be 100% awesome if it made it into the framework.
I just found an additional fringe benefit of using the G1 over the iPhone, I can talk and hear at the same time. It was amazing, I noticed that I could clearly hear background sounds while talking. I guess I had gotten used to having a half-duplex channel for communication, and I had forgotten what a real phone sounds like. Bravo T-Mobile on remembering what the device’s primary function is!
Yesterday I got the T-Mobile G1. I’ll be putting it through its paces as I work to port Mides IDE to it. So far, so good, however ido have to say that I’m a little slower with the physical keyboard than I anticipated. I’ll be glad when the cupcake firmware comes out and I can use the virtual keyboard.
The apps so far are mostly good, the device is definitely quicker than the iPhone as far as raw hardware performance, but the navigation around the OS is a bit slower. Still, I’m excited to see what I can do with this SDK.
Overall I’d say that the philosophy of the device is different. The G1 and Android are definitely aiming to be a little computer in your pocket, while the iPhone is still an iPod first, which makes it more of an internet appliance than a computer. As such, it makes a direct comparison challenging at best.
The G1 is ugly, and Android is unpolished, but for a company that doesn’t make music players, it is pretty good. More importantly, it fits in better with my way of thinking, and I appreciate the freedom that Google and T-Mobile have given us. Hopefully it will continue to improve, but either way I am pretty happy with it. Hopefully Mides will turn out to be as good as it is in my head for the G1, and eventually the iPhone. Competition is a good thing.
For the past few weeks I have been thinking about the limitations placed on my mobile ide Mides in the App store. I have been turning around and around the idea that I should write a version for Android that does some of the things that I really want for it to do, like have a real PHP parsing engine, have a ruby interpreter, etc…
I could put the time into doing it on the iPhone and then submit it to Apple to see what they say, but that could be a bunch of wasted effort, and even if they were to pass it one time, the next update may be rejected. My application is a niche application, so I am really not into it for the money, although it is nice. I think I could actually build a better version, a version that was more inline with what I had originally envisioned on Android.
I don’t think the G1 is better than the iPhone, or that the iPhone OS is inferior to Android in some way, it is just the policy of the AppStore keeps me afraid to try new things with my App, or that the effort could be wasted not because of a technical limitation, but because of a policy limitation, which I hate.
The biggest question now, since I have decided to port Mides to Android is whether to get a G1 developer unit or a straight up t-mobile G1. I think I’ll get the t-mobile unit since I am not rich, and since it is more inline with what my target audience is likely to use.
Boy, I’m not looking forward to having two phone bills, but I guess that is the cost of doing business.