Currently Oracle is suing Google over Java. Considering the amount at stake, some may be wondering whether choosing Java as the OS environment was the best choice. After all the Java Virtual Machine sits on top of a Linux stack, which can be programmed in a variety of languages, C, C++, python and so on.
However, such an approach has been done before, for example Maemo. While this was a great concept, the number of application developed and ported to the platform was minimal. Also direct Linux ports of applications, just not work well. Linux applications are made for desktops, with full size keyboards and mice, the ported applications did not take into account the smaller screens, and use of gestures to replace keyboard shortcuts.
To succeed, not only did Android need a smartphone stack sitting on top of Linux, that provided a programming interface for screens, gestures and access to phone resources (GPS, contacts, etc), but it needed to make sure that it was easy to take up.
Java was the answer. At the time of the Android launch, Java was probably the most popular development language, being used extensively in industry as well replacing C++ for teaching programming in colleges. But Java had been tried before on mobile phones, with the J2ME environment, the official endorsed Java platform for the mobile area.
J2ME was not the answer
However, J2ME had a few issues, namely that it was not the full Java language that developers were familiar with. Instead, experienced Java developers had to unlearn parts of standard Java to use J2ME. Plus, J2ME did not have access to phone resources, so it was limited to games and simple applications.
By implementing the full Java language, particularly version 1.6, in Android, helped reduce the learning curve developers required whenever faced with new technology. In addition, during that period, Sun were in trouble financially, and the Java language was not being enhanced as quickly as previous revisions. This was actually to Androids favor, since Java seemed to be stuck at version 1.6, which meant there were a lot of developers who were experienced in this particular version.
The proficient Java developer only needed to learn the Android programming interface. This was a comparatively small amount of required knowledge, that accelerated the speed at which they could create their first Android application.
Give developers what they want
But not only did Google know this, they also understood the Java development community, how it functioned, what tools they used. One of the most popular tools that Java developers use is the Eclipse IDE. A tool that used for rapid application development, that was free and supported a plugin feature that allowed it to increase it functionality to Java technologies not supported natively by Eclipse.
It was upon the Eclipse plugin architecture, that Google developed the Android Development Toolkit plugin. This toolkit has wizards to quickly create new android projects, easily design user interface components, and android application debugging. The multitude of Java developers who were already familiar with Eclipse, could now use the same IDE to develop for Android, a big win.
In conclusion, Google used a language that a huge following and implemented an easy way for developers to get up and running using their favorite IDE. The android app store, at this time of writing has 400,000 apps, some good, some bad, some paid, some free, but more importantly it is a growing app store.