Nathan Hoad

Choosing a Python IDE, Part Five: Aptana Studio 3

June 3, 2012

This is the final in my series on finding a good Python IDE. For the past week, I’ve been looking at PyDev/Aptana, which is essentially an Eclipse plugin.

Aptana Studio 3 (with integrated PyDev)

Aptana is Eclipse. It’s Java, and it’s large. That’s really all I have to say on the matter.

Getting Started

If you want to use Aptana, you’ll want to have a lot of RAM, and probably leave it open all the time. When I start it up, it looks like it’s ready to go, but it’s actually frozen - I have to wait another 20-30 seconds before I can actually use it. The same freezes occur sporadically when I’m typing as well.

For those of you that have used Eclipse before, you’ll be familiar with all of its issues. Those who haven’t, well, you’re lucky. It’s slow, and the memory usage is terrible. When I used it, my machine is sluggish and generally unpleasant to use. Starting up a new terminal takes roughly five seconds to open, which is obviously terrible.

I’m yet to see any of the advantages that Aptana brings over Eclipse - they feel exactly the same, with the difference that Aptana has removed all the other “Perspectives” for Java development and what-not.

I was impressed that I didn’t seem to need to configure it to use particular Python versions or anything. It turns out, Aptana won’t prompt you to do this until you actually try to open a Python file - then it’s dialogs ahoy. There’s an autoconfig option which only generates config options for Python 3, not Python 2. This is either not accounting for multiple Python versions, or presumptuous, both of which are silly.

It feels like Komodo IDE - I’m staring into a narrow tunnel when I’m trying to edit my code. I’ve closed a lot of the sidebars, with the only one being open now is the project explorer. So I’ve basically got an obese text editor.

Same as with Eclipse, I notice random Java exceptions appearing in the output from Aptana. They don’t cause any errors to occur in the graphical side of things, I just think it’s sloppy that they’re occurring at all.

Eclipse Converts

This is basically the shining point of the editor. For those who know Eclipse extremely well, i.e. coming from a Java background, they’ll be right at home. I suppose that’s nice, letting Java developers actually start using the language without having to learn a whole new IDE.

UI Navigation

The UI in Aptana is pretty standard, albeit with a few oddities. There are some dialogs that have buttons in the wrong order, i.e. No, Cancel, Yes. Because the UI is so standard, Aptana is the first IDE I’ve encountered that provides the default Ctrl+Tab behaviour.

You can override and modify keyboard shortcuts to your heart’s content, which is a pretty standard thing now, which is good. Interestingly, they can be exported to CSV, which I don’t recall seeing anywhere else. Not a bad idea if you want to get all developers in a team to use the same baseline of keyboard shortcuts.

Of course, Aptana’s settings menu is searchable, which is good, because it’s laid out in a confusing way. There’s a few places to change colours, and setting indentation levels appears in multiple locations. Options aren’t named consistently though, so prepare to rack your brain trying to think of how else something might be worded.

Aptana italicises anything between single quotes in Markdown, for some reason. So every time I use punctuation I get this annoying green, italicised text everywhere. There are some annoying popup windows that steal context in the middle of typing, yet are small and hidden in the corner. I can gather that they’re supposed to be notifications that don’t get focus, so I don’t see why they do. This could be my window manager, but all the other IDEs managed to pull this off without it being a problem, so I’m hesitant to blame i3 for this.

Code Editing

First and foremost, Aptana doesn’t support line wrapping. I can’t believe a feature like this has actually been overlooked. Line wrapping is such a basic feature of a text editor that I expect it to be there, as I think anyone would.

There are a bunch of default colour schemes that come with Aptana which are decent, but not that great. Maybe my monitor sucks, or maybe my eyes do, but for the most part they looked the same. Again, the highlighting for Markdown sucks, and is horrible to read.

There’s a section under PyDev in the configuration dialog for folding settings on code, which is nice. So you can close up class and function definitions and only look at the sections of code. It’s a pity that I can’t find a way to set it up so that everything is folded up by default, because it means I get to click on every folding icon if I want to fold everything.

I can’t run the work tool I’ve mentioned in previous articles in Aptana without setting it up as a build option, which feels excessive.

Of course, Aptana supports code completion, but it’s slow as hell. This is of course a total Eclipse thing. If you’re trying to program with any kind of speed, or you hate laggy editting, you’ll want to turn this off. On the plus side, it doesn’t crash like Eclipse used to when using this feature. Again, turning this off makes it a regular text editor for the most part. Even with it turned on, the recommendations are pretty crappy. Available objects when using from foo import? Nope. Conde completions on pass? Oh you bet, and it’s a single option, pass.

From time to time Aptana will automatically insert pieces of code for you. Unfortunately they’re often misplaced - for example, start typing from foo and Aptana will insert import for you. I found this threw me off a lot, and broke my flow. The same happens with inserting paired braces, curly brackets and what not. I think this is something you have to get into the habit of using, but I don’t like it myself. I found in Vim mode, the cursor position is off by one when indicating the matching bracket, quote, etc, which is obviously a bug, but generally confusing.

Plugin Management

Plugin management is pure Eclipse, and I hate it. It has a trillion plugins, but they’re spread out across every third party repository. Often they’re way out of date, so dependency checks fail a lot, with no obvious way to fix it. Software should empower its users, and an IDE is no exception. Eclipse’s plugin system is something to be dreaded and avoided. For instance, I was told I could install a plugin that would give me the line wrapping I mentioned earlier, but once I realised it was a twelve step installation to get what I wanted, I gave up. “I’ll just scroll right all the time, I guess.”

Version Control Integration

Aptana has no version control integration at all, without resorting to plugins of course. It would be nice if it had some awareness of the fact that version control exists, however. Using Ctrl+T for fast open displays all files matching what you’re searching for, which includes files in the version control folder.

Conclusions

I would not recommend using Aptana. Unless you’re coming from a Java background where you used Eclipse all the time, and you don’t want to change, I see no advantage to using it at all. That, and the performance is too poor to ignore.

The plugin system is notoriously poor, so unless you want to spend a lot of time resolving dependency issues (who doesn’t love that?) you’re better off looking elsewhere.

So Which IDE?

So, this is the final post in the series. So, which IDE should you pick? It’s obviously really dependant on what your needs are. If I was going to pick an IDE, I’d either go with Wingware, or PyCharm. Here’s a table, summarising everything.

IDECode CompletionVCS IntegrationCostCustomisabilityStrongest Point
Sublime Text 2Word completionNone$59GreatExtensibility
Komodo IDEIntrospectiveNot bad$382GreatIntrospective Code Browsing
Wingware IDEIntrospectiveNot bad, clumsy$245OkayDebugging
PyCharmIntrospectiveNot bad$199GreatDeployment
Aptana Studio 3Slow, word completionNoneFreeIt’s thereSuited to Java developers

To be honest though, I’m going to stick with Vim. I do a lot of work over ssh connections, and I’m the most familiar with Vim anyway. I’ll do a write up in the future about my Vim setup.