Thursday, May 16, 2013

Why Did Google build Android Studio on IntelliJ IDEA?

At Google I/O 2013, Google announced the availability of Android Studio, an Android development integrated development environment (IDE) based on IntelliJ IDEA.

Thus far, the primary target of Google's IDE integration efforts have been focused on Eclipse, the predominant Java IDE. Google has Eclipse plugins for GWT and AppEngine, Android, Dart, and possibly other projects I'm forgetting. So it's a bit of a surprise to see Google focusing so much energy on an Android Studio based on IntelliJ IDEA.

Google's being circumspect at this point in terms of how they talk about Android Studio. It's an early access preview. There's no clear language on whether or not ADT is now deprecated, replaced by Android studio, although rumor has it they will support both. Even if Google publicly commits to continuing development on both Android Studio and ADT, will one of the two see the lion's share of the investment? Will one languish while the other flourishes? Only time will tell.

Android Studio is a new set of plugin APIs, a new windowing toolkit (Swing vs. SWT), a new ecosystem, a new set of related plugins to consider integration with. There would be a lot of effort in supporting a new IDE integration for IDEA, even given that JetBrains had already started the work by supporting Android development in the first place. It may confuse new Android developers who now have to choose between two IDE options without identical feature sets. It will create a whole new support channel for people with Android Studio questions. At this point, they're still recommending ADT as the mature choice, but it seems like it won't be long before the decision is less clear-cut.

For a company that's talked repeatedly about putting more wood behind fewer arrows and focusing their efforts, supporting two IDEs for mobile development seems unnecessary, excessive.

So why are they doing this? Are they just so intent on getting developers to Android that they believe they need to support two distinct Java-based IDEs? It doesn't seem likely that there are enough dyed-in-the-wool IDEA supporters who want to build Android apps, but are unwilling to do so in Eclipse to justify the move.

It seems more likely that they have decided to switch horses midstream, and are backing Android Studio over the long haul and supporting ADT for now simply because it's too early to get people to switch and it's expedient and politically sound to wait until Android Studio is overwhelmingly better.

But if that's true, what about the other Eclipse plugins that Google supports? And why switch the build system to Gradle? There are lots of questions, few answers. I am interested to see how this feels in a year or two.

1 comment:

  1. It's a marketing decision I guess. Google is getting a little annoying lately, they want everything developed in-house. Also with the API's they are taking a lot of stuff from Android and concentrating it on "Google Play Services", or even in proprietary applications that you have to install to access the API (that in former versions was just a JAR like the rest of the world does).

    The Android Studio thing is incredible. I can't imagine the amount of work needed to get that done. I write this after installing Android Studio for the first time, and trying to import my current (big) project (Many activities, libraries, dependencies, native code...).

    I really thought Android Studio was going to be ultra-simple, straight to the point kind of IDE. I was horrified when I saw it's in fact a huge mess with miles-long assorted menus, proprietary ugly and messy windows library a-la-microsoft on an Amiga (thousands of mini-icons) ... They are going to replace a messy (but well known, and predictable) IDE that is standard in the industry and really free and opensource by something that in 3 years will catch up. Just to end with a very similar thing? They are crazy!

    They should focus on making eclipse better.