Tuesday, August 24, 2010

5 reasons why Android has peaked

TheStreet.com has an article on 5 reasons why Android has peaked. While I agree with their conclusion, I don't really agree with the reasons. The reasons are not so much because Nokia, HP/Palm, Microsoft, RIM get their act together, but more because of Apple.

Here are the reasons why Android has peaked according to me:

- Android has thrived in an environment where iPhone is available only on 1 carrier in the US. As AT&T loses its exclusivity, and the iPhone is available on more carriers in the US, Android will have to start competing with the iPhone. That is not going to be an easy battle.

- The recent announcement that Google and Verizon came up with is likely to be legalized. I think it is clear no one expects Wireless to have the same rules as the wired internet because the structure of the two businesses is entirely different. If Net Neutrality ends on Mobile Networks, Android's biggest edge will be wiped out. Right now, literally anything goes on Android - tethering, WiFi Hotspots, Google Voice, literally anything is possible on Android. Once Net Neutrality ends however, the playing field will get levelled - the ability of a handset to access these features will purely be determined by how much the subscriber is willing to pay. And in that scenario, Apple is likely to have the edge, because Apple customers tend to be higher spenders. The only difference between iPhone and Android would be that there would be no porn, and no malicious apps on the AppStore.

- As iAd takes off, and as iOS spreads into more and more devices, developers will realize that there is a lot more money to be made in the AppStore than in the Android Marketplace. Whether it is because of piracy, or the unwillingness of Android users to pay for software, or the customer irritation from regular ads, Android's revenue potential will be a lot lower than for iPhone. To add to this, Oracle's law suit against Google and Apple's law suit against HTC will only add to the confusion around Android. To add to this confusion, ChromeOS will muddy the waters even more. ChromeOS is a clear indication Google wants to move away from native apps to web apps - while Apple provides the best Native environment, as well as a great environment for web apps.

- The hardware innovation cycle that Android is enjoying currently will be counter-productive in the long run. Handset makers have absolutely no choice but to keep releasing newer and better handsets to stand out amongst the crowd of Android handsets. However, the upgrade cycle for customers will still be the same as the iPhone - every 2 years. Because of this, soon we will see a situation where even the best handsets have lukewarm reception in the market. Plus margins will be curbed even more as handsets will have to discounted or given away. Apple's release cycle on the other hand, is designed to encourage hysteric reactions in the market place, plus Apple's margins increase over the year from the introduction of one handset till the next one. Motorola, HTC, Samsung, etc. will soon be fighting a race to the bottom and will be struggling with losses. The need to distinguish one handset from the other will also mean that handset makers will have to resort to extensive software and interface changes. This will make it difficult to upgrade phones to the next version of Android, whereas, iPhone customers will enjoy a seamless upgrade experience.

- Finally, Apple is going to seriously up the innovation pace. The A4 chip and its low power consumption already make it clear what direction Apple is going to take. Apple is also investing heavily in battery technology, materials technology, innovative manufacturing techniques, etc. Apple is also not shy about using its massive cash pile to source materials like displays, flash memory, etc. No one is anywhere near close to replicating Apple's ecosystem, but Apple is already busy extending its ecosystem to even more areas, like books, TV content, games, etc. Android managed to catch up to Apple because it got Apple's innovation for free - like mobile enhanced Webkit, Multi-Touch technology, etc. But this time around, Apple is using techniques that won't be so easy to copy.

Saturday, August 21, 2010

The complete story behind Oracle vs Google

The blogosphere has been actively dissecting Oracle's lawsuit against Google. And for the most part, Google is coming across as a champion of Open Source, whereas Oracle is being painted as the villain. In fact some websites have even compared Oracle's lawsuit against Google to be similar to SCO's lawsuit against Linux.

However, there is a very very important point that has been lost in all the confusion. While today Google looks like the hurt party and Oracle looks like the aggressor in the eyes of the Open Source Community, I think over time, as the dust settles, Oracle will turn out to be the friend of the Open Source Community.

The real issue behind this suit, and something almost no one has looked at so far, is the legal enforceablity of the GPL. The GPL - or GNU public license, is the foundation of the entire Open Source movement. This is what ensures that coders at large can contribute to a project publicly, and still be assured that no private party can take advantage of the public nature of the project by extending it in a proprietary manner. For instance, if thousands of developers spend time and energy on improving Linux, and someone adds a few extra features to Linux and sells it (without contributing those features back to the open source community), then the entire Open Source movement would be destroyed. It would be easy for someone to add a few extra features to an Open Source project, and sell it as a proprietary project - taking advantage, without making any contributions. To protect against this, the GPL insists that any derivative work that is built upon a GPL project must also be contributed back to the public domain.

The GPL is only one of the licensing mechanisms available in the Open Source community. The other popular ones are LGPL or the Limited GNU Public License, and the Apache License. Apache license is the most flexible license, allowing proprietary extensions, with no requirement to contribute these extensions back to the Open Source community. LGPL is somewhere in between the Apache license and the GPL license.

It is upto each Open Source project to decide whether to go public under the GPL, the LGPL or the Apache License. Anyone who uses an Open Source project implicitly and explicitly agrees to abide by the terms of the license governing that project.

Linux has been released under the GPL license. This is the reason why RedHat is expected to release all their work done with Linux back to the OpenSource community. And this is the reason CentOS can quickly be compiled to offer binary level compatibility with RedHat Linux, for free. RedHat effectively can only charge money for Support and Services, because the exact same copy of the software is available as CentOS.

Because of these differences between the various licenses, there are also software projects, where different versions of the projects can be used with different licenses. For instance, Java offers a Free Open Source license under the GPL, together with a license SOLD by Sun to whoever does not wish to use the GPL. This is not a deviation from the concept of Open Source - it is one of the pillars of the concept of Open Source.

When it comes to regular JAVA, Sun released it under the GPL, with something called a CLASSPATH exception. That means, All changes to the Java Virtual Machine, the Java Programming language, etc would have to be contributed back to the Open Source community, whereas external modules that execute in the virtual machine by virtue of being available on the CLASSPATH can be retained as proprietary code. For mobile Java however, this CLASSPATH exception was not mentioned, so it was released under the full GPL. The objective was not to ask private app developers to contribute their code to the Open Source community, but to ensure that any changes to vital parts of the mobile device would have to be contributed back to the Open Source community. So any changes like a different dialer, or Messaging system, etc would have to be contributed back to the Open Source community.

For whatever reasons, Google chose not to go with the GPL verion - and because they were not making any money from Android, they could also not go ahead with a paid license from Sun. Also, Sun's implementation of the Virtual Machine was not ideal for a mobile environment. So Google came up with DALVIK - a new virtual machine specifically for Android. DALVIK would effectively run Java code, in a different virtual machine, with slight modifications. These modifications meant that SWING, and other Java libraries would not be available under Android. Any Java projects that did not use SWING, and the other non-supported libraries could easily be converted to the DEX format, but all Java classes that needed functionality from SWING that was not supported in DALVIK could not be executed. This issue per se was not a big issue, because even if SWING and other modules were not included in Android by default, they could have been added on later by the user. So this per se was not a deal breaker in terms of compliance with the Java licensing options.

In addition to this, the DALVIK VM was different from the JAVA VM in other ways. Under Java, multiple copies of the VM would be run as multiple processes - whereas, under DALVIK, multiple copies of the VM could be run as multiple threads (this is a simple explanation - the actual details are more complicated than just threads vs processes). Those who are familiar with processes and threads are aware that threads are a lot more efficient compared to processes. Under a regular desktop environment, this difference in efficiency would not have been required, but under the constraints of a mobile device, this difference in efficiency would make a massive difference. Under GPL, Google would have been required to contribute this change back to Java, but because they did not go with the GPL, they had no requirement to do so. If this was the only issue, Google can even now comply with the terms of the GPL, or even get a paid license from Sun/Oracle. However, there are other issues because of which the simple options are not available any more.

DALVIK had another important change compared to the Java VM - and that was that DALVIK allowed applications to use Registers. The Java VM on the other hand could not allow usage of the registers - because for Java, the Write-Once-Run-Anywhere paradigm was paramount. Since Register architecture and availability varies significantly from one platform to the other, the Java VM abstracted Registers - so that code written on one platform could execute exactly the same in any platform. It is this feature of DALVIK that is the deal breaker - there is no way Sun would have allowed Android to break the Write-Once-Run-Anywhere paradigm.

Years ago, Microsoft got a license from Sun to create a JVM, and but they violated the terms of the license by creating the Java Native Interface - which was a mechanism for Java applications to get a performance boost by directly accessing Windows SDK underneath. However, JNI was a Windows-only implementation, and violated the Write-Once-Run-Anywhere paradigm. It is this violation that forced Sun to go after Microsoft, and which forced Microsoft to cough up a billion dollars in damages.

So there is absolutely no way Sun would allow Google/Android to compromise Java in such a manner. It is this violation that prevents Google from coming to a settlement with Oracle even today. And it is likely that it is this issue that could be the reason why Google ultimately loses this lawsuit. I think there is sufficient documentation at Google that would come out in the discovery process, which would make it abundantly clear that Google was well aware of all these issues, and still chose to do what it did, because that was the only way to get Android applications up to a level of performance where it would be viable.

Google had 2 choices - either not use Java at all, and come up with a totally new development environment, or to modify Java in a way that was not allowed under the existing Java licenses to make it a viable choice for the development environment. Google has absolutely no experience in platform creation - so the first option was not an easy one. They chose to go with the second option. This has now come back to hurt them.

The only real defence option that Google could have had, was that DALVIK was a clean room implementation, and did not use anything at all from Java. However, even this option is not really available, because there are far too many ex-Sun employees in the Android project who would definitely have had in depth knowledge of everything related to Java.

With the background now clear, there are some more things to be cleared up. Is Oracle the villain as the Open Source community paints them to be, or is Google the villain. I think the best way to understand this, is using a hypothetical analogy. Assume Red Hat violates the terms of the Linux GPL, and makes some proprietary changes to the Linux Kernel which are not contributed back to the Open Source community. Would the Open Source community be ok with this violation of the GPL? Or, lets take another example that would be even more realistic. Apple took an Open Source project called WebKit, and adopted it as the engine for Safari. Over time, Apple has contributed so much to the project that it has come to be seen almost as Apple's WebKit. 3 years back, when Mobile Safari was launched, it was dramatically different from all the other mobile browsers - what if Apple had decided back then that the changes in WebKit that made Mobile Safari possible gave Apple a tremendous headstart, and it would be advantageous to not contribute those changes back to the WebKit project. The entire OpenSource community would have cried that Apple took advantage of Open Source developers contributions without adhering to the licensing terms. Google has done something very similar with Java, and in addition, they have tremendously hurt Java as a platform.

Will Oracle be able to win this case in court? In my opinion, the answer is an emphatic yes. In fact, Google does not even have a leg to stand on, in this case. They cannot use a clean room defence, they cannot claim that DALVIK is sufficiently different from Java that the suit has no merit, they cannot claim that this was not intentional, they cannot claim that they did not know this would harm the Java platform.

If Google does lose, what are the implications. The monetary damages alone would be stunning. Back in the late 1990's, when Sun fought against Microsoft, they managed to get a billion dollar payout. However, we have to remember that Java not just survived but thrived after the Microsoft case got resolved. The situation now is completely the opposite - after the launch of Android, Java has been sidelined completely from the Mobile space. Effectively, Android was the death knell for Java. With this background, I am certain that Google will be looking at a figure way higher than what Microsoft faced. In fact, the facts of the case are so completely against Google that I would be surprised if this case even came up in court.

But despite however high the monetary damages are, it will be the non-monetary damages that would hurt Google even more. Android just cannot afford this kind of confusion at this point in its lifecycle. Already, Android is finding it difficult to compete with iOS for developer interest, because the Android user base is not ready to pay for apps and piracy is a big problem in the Android Marketplace, because it is not a curated store.

If Google does lose, it faces several nasty scenarios. They could be forced to remove DALVIK from Android and come up with a brand new development framework. Or they could be asked to pay a licensing fee for every installation of Android - which would be painful, especially considering they are giving away Android for free. Considering Windows Phone 7 is going to be launched soon, this sort of confusion is the last thing Google wanted. Microsoft could turn out to be a beneficiary of Oracle's attack on Google. Apple would also benefit because the iOS platform would look even more attractive to developers and consumers.

In more ways than one, it looks like Android is turning out to be a massive mistake for Google. Android ended up preventing Google from selling targeted ads for the iOS platform, and now this!

Tuesday, August 17, 2010

A quantum jump for India

After several articles on Apple and Google, finally, back to a subject I like - Markets and the economy.

Of late, I have heard several people question the logic behind the rally in Indian markets. Nifty is approaching 5500 levels, and Sensex is over 18000. We are not far from the peak reached in early 2008. Considering that the global economy is still weak, and considering that other markets are struggling to go higher, how justified is the rally in India?

This article looks at some significant events that have happened recently, or are likely to happen over next few months - events that will have a massive impact on India.

Everyone is aware of the bonanza that the government received from 3G auctions and BWA auctions. Over Rs 100,000 crores was raised from these auctions. That is 1 Trillion Rupees, or about $22 Billion. That is pretty massive by any standard, but for a country with a GDP of about $1.1 Trillion, 22 billion is a nice 2% of GDP. That is the kind of money that can make a solid dent in India's fiscal deficit.

One would have thought that getting such a big bonanza would have reduced the urgency for the privatisation programme - but thankfully, this has gone ahead as planned. In a masterstroke, the FM managed to get SEBI to pass guidelines for the minimum level of free float of listed companies. The 25% minimum impacts mostly government owned companies like ONGC, SAIL, NTPC, etc. The govt is able to raising money from secondary sales in several PSUs, using SEBI's guidelines as an excuse - employees, communist parties and even allies of the government can no longer protest these stake sales, because it is mandated by SEBI.

Not just this, the government has taken some major steps towards decontrol of retail petroleum prices. This should significantly reduce the subsidy burden from petroleum. On the petroleum front, the government has started seeing some money because of Oil and Gas production coming online in Rajasthan (Cairn), Andhra (Reliance), etc. This will only accelerate as production ramps up.

All of a sudden, the fiscal deficit that was at worrying levels just 6 months back, seems to be a lot more manageable. This enables the government to move ahead with reforming direct and indirect taxes.

Everyone has heard of the New Draft Tax Code, and how it radically alters the tax brackets for direct taxes. I am not sure how many people realized this - when the Draft Tax Code becomes law, 99% of Indians will be paying tax at rates that are LOWER than some of the lowest tax jurisdictions in the world - even lower than Hong Kong and Singapore! For income upto Rs 25 Lakhs, even if you claim absolutely no deductions, not even the statutory deductions, your effective tax rate works out to 14.8% - which is lower than HK's 15% rate. Once you factor in just the regular deductions (PPF, Insurance, Mortgage payments, and non-taxable allowances), you can get almost 35 Lakhs in income at an effective tax rate below 15%! Even for people earning significantly more than 35L, Indian tax rates work out much better than the rates seen in most countries (except HK, Singapore, Dubai, and the tax havens).

These low tax rates operate at several levels - at the obvious level, they put a lot more disposable income in the hands of the consumer. They reduce the incentive to avoid paying taxes, thereby bringing in most of the black economy into the white economy. Also, with lower rates, people tend to make investment decisions based on the merits of the investment itself, rather than the tax implications - this will allow efficient deployment of capital.

There is a lot happening on the indirect taxes front as well - after years of discussions, it finally looks like GST will get off the blocks by April 2011. While a lot has been written and said about GST, there are some very interesting implications of GST that people have not focussed on. Remember, back when VAT introduction was being considered, there were several reasons thrown about - like VAT is more efficient, as it prevents cascading taxes, etc? Consider a producer buys inputs for Rs 100, paying a VAT of Rs 12.5, does some value addition and sells a product for Rs 200, collecting VAT of Rs 25. The producer needs to only pay Rs 12.5 to the government - which is the difference between the money he has collected and the money he has already paid.

GST has this exact same feature VAT, with one important difference. Under VAT, only VAT paid and received were offsettable. Whereas under GST, since it is a common tax for both Goods and Services, you can offset your Goods tax collected against your Service taxes paid. In the previous example, assume the same manufacturer had telephone and internet costs of Rs 10, on which he paid Rs 1.03 as Service tax - in the old system, this Rs 1.03 was lost to the government. Under the new GST system, the GST paid on the telephone bill can also be offset! So the producer only has to give Rs 11.47 to the government. Not just manufacturers - even service providers benefit - for instance, if Infosys gets a domestic IT contract, on which it charges Service Tax - it need not give this entire money to the government. They can offset this against the VAT they paid to buy computers to execute the project.

In a country where about 50% of the GDP is in Services, moving to a GST based regime will being in massive efficiency gains. Because pretty much everyone pays some service tax - if nothing else, at least on telephone bills, this service tax will now be offsettable and recoverable against GST payable on their product sales. This might seem like a very small amount, but remember this amount goes directly to the bottom line - so a company that has 10% margins could see 11% margins - effectively increasing earnings by 10%! A 10% increase in Earnings is not small at all.

So, on the one hand, there will be more money in the hands of consumers to buy products made by manufacturers, and on the other hand, the manufacturers will make more margins on their product sales. The combination of these 2 factors, is going to have a massive impact on corporate earnings, and therefore on the stock market.

As we get closer to April 2011, and as we see more clarity on the New Tax Code and the implementation of GST, I expect to see analysts upgrading the companies they cover.

It is anybody's guess as to whether the markets have already priced in these gains - but considering that none of these Direct and Indirect tax reforms are a done deal yet, I think it is safe to assume that markets have not priced this in.

Despite all the positive buzz from these reforms, can India still perform well if global markets tank? Back in 2008, everyone who was talking about decoupling got shit on their faces. Has anything changed? Is decoupling possible today, when it was not possible in 2008? I believe so, and will explain this in my next article.

Thursday, August 12, 2010

How to compete with Android

Over the last quarter, Android has had an average of 200K activations per day - this is an amazing pace, even higher than what Apple set with the iPhone 4. While there is nothing to be worried yet, Apple should be taking this seriously. They obviously do not want a repeat of what happened in the PC world in the 1980s and 90s to happen once again in Mobile.

Apple is already doing the things that it does best - constant innovation to keep raising the bar higher. However, there are some other things that Apple could do specifically to take on Android.

- Apple should change its release cycle, and release phones at least 3 times a year. The current annual release model is not good enough when you have a new Android Phone coming out literally every month. Releasing models every 3-4 months would ensure that Apple does not fall seriously behind in the spec game.

- Loosen restrictions on the AppStore. Quite a lot of restrictions that Apple imposes on the AppStore, are actually carrier restrictions, and not Apple restrictions. Carriers are the ones who are hurt by tethering options. Carriers are the ones who dont want VoIP calling over 3G. Now that Android is selling more than Apple, Apple can easily argue that if Android has these features, there is no reason iPhone also should not offer the same feature. The moment some of these restrictions are removed, iPhone can have pretty much any application Android can have. Apple should still have a curated store, but with lesser restrictions. Just this one thing would take away most of the attraction that Android has in the developer community.

- Open up iPhone to all carriers. We are already hearing noises that this is imminent. Just dont stop with one carrier, make sure iPhone is available with all carriers. The main thing, is that Apple should not allow a free ride to Android on Verizon and Sprint. Android is having a much tougher fight globally, where iPhones are available on multiple carriers. In the US, where AT&T is the sole carrier, Android is doing very well. To counter this, iPhones should be available on all networks.

- Apple should offer couple of models more - at the lower end of the market. These models should be available at extremely low cost, to cannibalize Android sales. The best part is that Apple has always seen better sales of its higher end models - so people invariably buy the higher end Apple models when they have a choice. Offering a real cheap phone for free with a contract would mostly serve to put pricing pressure on Android.

- Today, while Apple is still one of the largest sellers of smartphones, all Android phones put together outsell the iPhone. So Apple is way bigger than Motorola, Samsung, etc. In this sort of situation, a drop in margins will actually hurt Motorola, Samsung and others, a lot more than it will hurt Apple. Because of Apple's volumes, Apple can actually make decent money even at lower prices - whereas these other vendors will see a lot more margin erosion. This strategy will hurt the HTCs, and Motorola's of the world big time.

- Dont restrict the fight to Android, take the fight to the rest of Google as well - the moment Google realizes that Apple is stealing some of its ad revenues, and not making any money on Android, they will be in a lot of pain. In parallel, extend iAd to the Android platform - so that Apple can try to make some money off the success of Android as well - because the Android Marketplace is not a curated store, it will be very difficult for Google to stop Apple from monetizing Android. On the other hand, Apple runs a curated store, so they can easily stop Google.

- Push initiatives like Safari Reader, AdBlock for Safari, etc. These are initiatives that lower the value of ads on the internet - attacking Google where it hurts most. Implement the same functionality on the iPhone as well - to make any website optimized for the iPhone screen.

With these initiatives, Apple can compete much more effectively with Android, and avoid the Mac OS vs Windows scenario.

"Don't Be Evil" indeed!

Google's corporate motto must be a giant millstone around their necks - I mean, how can anyone have such a motto and still justify the lame way in which they sold out on Network Neutrality.

Just 3 years back, Google was the champion of an open internet - they were willing to bid $4.7B to force wireless spectrum to be truly open - so that Mobile operators would have to allow any devices and any applications on their networks. Back then, Google was the underdog, trying to pry open the wireless networks for their Android OS. However, now that Android is well and truly entrenched, they no longer care about Network Neutrality on wireless.

In addition, Google also realized that the iPhone has completely changed the way people use mobile internet - instead of browser based access, most of the access is through custom applications. These custom applications are that much harder for Google to monetize by way of ads - especially after Apple closed the doors to iOS, and no longer allow non-independent ad vendors from collecting data from iPhones to target ads. Without the ability to collect data, Google's Admob would be unable to display relevant ads on the iPhone, and would therefore would not be as attractive to advertisers.

On the other hand, despite Android sales picking up significantly, the iPhone still commands a significant percentage of mobile wireless access - this is because of the higher current installed base of iPhone, as well as because iPhone still is much better for mobile use because of seamless implementation of Multi-touch. Google could not use pinch-to-zoom and other intuitive gestures, as they were all restricted by Apple patents. So the browsing experience on Android is nowhere near as intuitive and pleasurable as it is on the iPhone.

There is also a lot of talk about iTunes moving into the cloud - and therefore offering a much greater user experience on the iPhone. Google has absolutely nothing to match iTunes, and it is unlikely that they can come up with something soon.

Considering all this, Google realized that its best bet lay in a crippled internet on the wireless side - because the iPhone would be impacted a lot more by the crippled internet than Android would be. iPhone is a lot more data intensive because of its rich media options on iTunes, wider variety of applications, better browsing experience, etc. So a crippled internet would actually work in favor of Google on the wireless front. On the wired internet however, Google is still easily the largest entity on the internet, so it makes sense for them to ensure that the wired internet stays with full Network Neutrality.

It is quite a shameless change of stance by Google - but I still think this is not going to hurt Apple much - if anything, Apple will be further incentivized to monetize iAd even more, so that they can actually pay for the network access needed by the iPhone. Google will realize that the end of Network Neutrality will hurt them even more. And it wont be long before Apple decides to extend iAd to the wired internet as well - on Macs, AppleTV, etc - and when this happens, they will be stepping on some sensitive toes at Google.

I have always felt that Android will be something Google will regret - because Android would end up costing Google its crown jewels. And the more Google plays dirty, the more Steve Jobs will hit back at them.