22 de nov. de 2007

After boom: Google's Android

Yes, Google is a trend setter today. You might think: "Everything these guys develop works!", of course this is not true, but it's really cool seeing a company that allows itself to take the risk.
I've been trying Android for a little while. Unfortunately, I didn't had so much time to get more involved with this, but I had sufficient stuff to choose my side in the first impressions about Android.

Android is the Google promisses to turns easier the mobility development. It says: Open, All applications created equal, Breaking down application boundaries and fast and easy application development on their web site. So let's take the first analysis:

Open - It's not opened yet. Google will open the code soon (I hope).
All applications created equal - Browsing, phone, etc. Symbian platform and others has the same, so no innovative here.
Breaking down application boundaries - Full control based on set of API's. What's new here?
Easy Development - It's Java based!? It has a SDK! It has tools, plugins, etc. What's new here too?

First, let's try breaking the "perfect" paradigm of Google:
Video - it is a high investment from Google, but definetely it failed, or Google wouldn't even care about Youtube.
Answers - have you ever heard about it? Google Answers was an idea of Sergey I guess. It was supposed to work like Yahoo does. But it completely failed, and they decided to remove it.
Froogle - it has been re-invented and now it calls itself by Google's Product Search.

All those products, had been launched with a huge informal advertisement, and some people blinded by the "Funny way of Google", doesn't even care if it is innovative or not. Based in "not be evil" philosophy, accelerated by a nice GUI and the world "hate" for Microsoft, Google has spread their name into everyplace which sounds as the most innovative company in the world. And yes, they are.

Getting back to Android. My sigh is that Google is going to a different territory. Building a platform, makes sense to me as Google must want the access to basics layers to keep their target - "It's all about search", remember? But mobility, and even, telephony it's a different kind of business. There are several trials to keep a standart into this market, and I must be realistic, all them has failed until now. The 1st place is for the Symbian group which tries to makes an easier standart and has been more and more adopted in the world. There are linux (qt)-java based phones but several companies has droped it away, like Motorola did. CDMA based phones are minimal, and must pay royalties to Qualcomm. The Java platform is the largest adopted, but it is not an OS.

The mother of all those problems is: fragmentation. Different vendors, operators, etc has different demmands, for example: call operators in US tells Nokia they want to sell the newest N95 phone, but they don't want to allow their users, to use the newest Nokia VoIP feature! So, Nokia has disabled this feature for those clients, also, developers cannot do anything to enable this feature, they just may try to hack the phone, but it is not a commercial point.

In this way, how Google expects to "Break down the boundaries"? How does Google will solves the fragmentation problem just delivering a "new" platform? Who will adopt it, beyond themselves?

Trying to merge with recent news that Google is looking for 700Mhz bandwith and Sprint's telecom, you might think that they possible is going to deliver a end-to-end solution for mobility. They might own the channel, the operator and of course, the device platform. So, it would makes sense to me, based in Eric Schmidt's says: "is more ambitious than any single 'Google Phone'". If they have the money, why not?!

Anyway, compared to other platforms like Symbian, Android is a joke. This is some of the main problems I noticed in Google's platform, and questions you may be having too:

- Poor documentation. Try to compare with Forum Nokia, Sony Ericsson and Sun.
- It supports one and ONLY one Java subset API.
- IT IS NOT JAVA STANDARDIZED. Android has they own interpreter called Dalvik. They makes developers wonder they are developing using the Java5 standard but you can get errors like this:

Object o = new Object(); o.getClass().getAnnotations();

"native method not implemented"
Backtrace:
java.lang.Class.getDeclaredAnn
otations(Native Method)
java.lang.Class.getAnnotations(Class.java:202)
- Promisses to open source, but will Dalvik being open-source?! A point for Google: The Open Handset Alliance, seems to be working faster than the JCP (which is ruled by Sun but works in a highest level)
- It doesn't implements the JME API
- It doesn't has OSGi
- It parses XML (like JME POLISH does), so how to be faster than the other platforms?
- Where is the trust? Applications should be signed (Symbian Signed, Java verified, etc.) and this process is the safest way to trust applications. To me this is an add point to Google become one of the worst companies in security and privacy.
- What about code safety? Obfuscators, etc...

Carlos, developer from Poliplus has designed a solution to fit JME applications into Android. So, if it is a need, why Google don't use JME API instead as they are already using Java.

Also, will Dalvik open source? The source of Android may be, but what does this "hidden" virtual machine does with all provided stuff? I'm really afraid of this.

Google solutions like search, maps and mailing is really amazing. But definetely, Google should have a tricky way to get into the mobility market, not just by Android itself. As developers and solution makers, we might have a clear view of this business and the rules. Not only adopt this or that because it's color and beauty. Hope we won't be blaming Google in next years, as it does to Microsoft.


Some sources:
Arstechnica
Bad Ideas
Android
Symbian
Android Groups Discussion
InfoQ
Polipus
Forum Nokia
IntoMobile US
IntoMobile AU
Engadget