Wednesday, November 02, 2011

Eclipse vs. Intellij for Android, PlayN, Google App Engine, and Python Development

I can't figure out whether I should use Eclipse or IntelliJ.

Eclipse is good in that it's open source and free. Furthermore, Google has released several plugins for it such as the ADT (Android Developer Tools) plugin and the Google Plugin for Eclipse. However, Eclipse generally leaves me feeling confused, overwhelmed, and out of control. I spent two days reading a bunch of tutorials, but I still feel like I can't do what I want. I installed Aptana Studio 3 (which includes PyDev) in order to play around with my Python Google App Engine project. However, I couldn't figure out how to do two things: 1) update the PYTHONPATH for my project to include a few project-specific directories 2) use two space indents in Python code just for this project (which is the standard at Google).

On the other hand, there's IntelliJ. I've never used IntelliJ for Java development, but I've used PyCharm and RubyMine for Python and Ruby development. The downside is that it's fairly expensive. The upside is that it's really good. It doesn't leave me feeling confused, overwhelmed, and out of control. In general, I'm able to get it to do what I want. Furthermore, the IDEAVim keybindings are pretty good (not as good as the JVi plugin for NetBeans, but still pretty good).

I'm hoping to start with a toy project that uses the PlayN framework (e.g. Java), Android, etc. It'd be nice if I could use the same IDE for Java, Python, web stuff, etc. I don't really know all the various Google APIs such as Google App Engine for Java and Android, so an IDE that can guide me along would be helpful. It seems like the only solution is to use Eclipse for the Google stuff and IntelliJ for Python, Ruby, and web stuff. I haven't purchased a license yet, but I did win a license for RubyMine which might be applicable.

I just read Android Development: Eclipse vs. IntelliJ IDEA which said a) IntelliJ is way better b) all of the Android tools are still accessible outside of the IDE anyway. I also noticed that IntelliJ has come out with its own Android plugin, and it's even open source. I'm leaning toward IntelliJ, but I hate being the only one around using a certain tool. Any advice you guys have would be welcome.

(By the way, I'm sure someone is going to come along and plug Vim, Emacs, or TextMate. I'm personally a Vim diehard. However, I've come to appreciate the benefit of using Vim keybindings within a larger IDE. YMMV.)

11 comments:

Unknown said...

you forgot nano (heathen!)...

verte said...

My workplace use IDEA consistently (for java and ruby development). Now, I admit that I don't much like their business model and I'm more familiar with Emacs internally, but IDEA is just consistent. It looks beautiful, gives you enough 'background features' to say 'this is a well designed IDE' without bogging down your machine, and the datamodel it uses internally is quite nice too. I've not tried PyCharm, but Emacs (which I use for python and lisp) feels a bit more comfortable in dynamic languages than IDEA does with Ruby and JavaScript to me.

Chai said...

Yeah, go the intellij. I actually used my own money to buy a copy, ie. not paid for by work cos they are too scummy.
And that is a very big statement, esp if you know my relationship with my money.

Greg said...

For Eclipse, just go to Project, Properties, then PyDev - PYTHONPATH.

For the indent, Window, Preferences, then PyDev -> Editor, Tab length 2 and replace tabs with spaces. This is a workspace setting - will affect all projects.

Shannon -jj Behrens said...

Thanks, guys.

Greg, is there any way to set the indentation settings for Python specific to the project? In general, I want tabs to show up as 8 space if they're already there, but when I hit the tab button, it should result in 4 spaces for open source projects and 2 spaces for Google projects.

Shannon -jj Behrens said...

Greg, do you have any reason for preferring Eclipse over IntelliJ aside from cost?

Fabio Zadrozny said...

Hi Shannon, unfortunately, there's currently no way to specify the indentation on a per-project setting in PyDev -- although now that you complained, I'll probably add that option pretty soon :)

A solution could be having one workspace for Google projects and another for other projects (but that depends if you want to edit both at the same time or not).

Also, have you read the 'official' getting started? ( http://pydev.org/manual_101_root.html -- and it's nice to get used to at least the keybindings in bold at http://pydev.org/manual_adv_keybindings.html )

-- If you couldn't figure something looking there it's probably my fault, so, it'd be nice to know so that I can fix it.

And the last thing, I know that getting to a new environment can be challenging, and I'm constantly trying to make things easier to get started in PyDev, so, if you could write me thoughts where you think it could be easier or more straightforward (or where you feel lost), I'd really appreciate it ( you can e-mail me at fabiofz at gmail dot com ).

Cheers,

Fabio

Shannon -jj Behrens said...

I just installed IntelliJ Ultimate. Then I installed the IdeaVIM plugin and the Python plugin. I'm a happy camper. It's amazing how much better IntelliJ works!

Shannon -jj Behrens said...

Hey, Fabio, sorry I didn't see your comment. Thanks for the very useful response and all the work you've done on PyDev. I wish you nothing but the best of luck!

zach49 said...

A recent Part 2 of this comparison is worth checking out. (http://stuffandtech.blogspot.com/2011/10/android-development-eclipse-vs-intellij.html) Looking for an IDE that can support Python, Ruby, RoR, PHP, and Java as well. Really appreciate his taking this in-depth approach, coming back for a followup.

Shannon -jj Behrens said...

Useful. Thanks!