For a developer approaching Android programming the message is clear: get all set for Java development, get the Android SDKs you need, and get Eclipse. At least for Windows, the downloadable package contains already the Eclipse bundle. Eclipse is the Java IDE and it comes with a plug-in for Android programming.
Why looking elsewhere?
Speaking for myself, when I started on Android I immediately started looking for an alternative to Eclipse. The nice thing is that I can hardly find one compelling reason for dismissing Eclipse. Eclipse does nearly everything you need and it does it fairly well. Hey, that’s probably the point. It does everything fairly well, but no more!
An alternative to Eclipse is IntelliJ IDEA from JetBrains and for Android developers the (free) Community Edition of IntelliJ IDEA is more than enough for coding effectively. In which way is IntelliJ IDEA better than Eclipse? It’s not a matter of features, but it’s all about how features are implemented and little details around the overall usability of the product.
Writing a formal whitepaper comparing and contrasting Eclipse and IntelliJ IDEA is confusing and probably useless like splitting hairs. But this post offers an interesting list of reasons why developers should look into IntelliJ IDEA at some point.
Not a list of features, but a (long) list of small things that all together save time and gain a better experience.
Wiser (not elder…) developers like me will certainly remember Love-is comics. In my software design classes, for a time I used a few slides rephrasing the slogan to Architecture-is. Today, I want to share a couple of thoughts on the theme of what usability means to people.
Don’t worry! I’m in a rush so I won’t take the long and winding (and annoying) road of arguing around philosophy, models, behavior, central role of users in modern software and all those known-and-boring things. I just report a glimpse of reality topped with a couple of personal considerations.
Yesterday I was looking into IntelliJ IDEA and Eclipse. For years, Eclipse has been the free IDE for tons of Java developers. IntelliJ IDEA appeared a few years ago and being a paid product (at least in its Ultimate edition) it managed to offer more. What more? Mostly usability.
What’s usability then?
For the most part, usability is a large collection of many little things. It’s something you can easily recognize but hardly describe in a formal way. Usability, I think, is also an absolute value and not subject to personal preferences. Here’s a little example of usability that Eclipse first provided and IntelliJ IDEA improved on.
Eclipse comes with its own Java compiler and doesn’t use javac–the compiler you get with the Oracle SDK. The Eclipse Java Compiler (EJC) exists for two main reasons: supporting incremental builds and producing binaries out of code with errors. The second point sounds intriguing, isn’t it? It means that ECJ always tries to give you an executable; if you submitted code with errors you get a run time exception only if the execution flow reaches the buggy code.
Architects of IntelliJ IDEA took a different and more traditional route to it. IntelliJ IDEA defaults to the classic javac compiler and uses pieces of logic within the IDE to implement incremental builds. But IntelliJ IDEA also lets you switch the compiler and use ECJ instead of javac so that Eclipse users can feel at home and just enjoy as much as possible of the other IDE.
Paraphrasing the comincs, usability is … letting her choose your Java compiler!