The top ten list of productivity boosters for programmers
by Troy Topnik

Troy Topnik, March 16, 2010

A very, very useful question came up on stackoverflow a couple of weeks ago:

"As a programmer what single discovery has given you the greatest boost in productivity?"

We were happy to find that many of the top ranking answers matched features in Komodo or mention practices that work well with Komodo. In other words, we've focused on the right things and, over time, made it into something that's useful to a lot of people.

Let's have a look at some of the answers. I've flipped the top ten list upside-down, because everyone seems to do that with top ten lists.

10. Debuggers

I hit this one just yesterday trying to make sense of a big Python dictionary containing lots of nested objects.

Tree view on the left, dump on the right

I don't think I could have puzzled out where to grab the values I was looking for by reading the print output on the right. Maybe I could have but... why?

9. Learn another language

For me it was Ruby. I still consider myself a non-programmer, but I have had to pick up some of the basics of the languages ActiveState distributes (Perl, Python and Tcl). For a long time I was stumped on some basic programming concepts (passing input to a function, using classes, very basic recursion) which I couldn't seem to get past in Perl or Python. Starting fresh, and following along with _why's cartoon foxes got those concepts through my skull, and I was then able to figure them out in the other languages.

The fact that I could work with all these languages in Komodo made it easier. It's hard enough to learn a new language, never mind learning how to use a new editor.

8. Dual Monitors

Absolutely, but why stop at two? I recently started using Synergy so I could switch between Linux and Mac OS X during testing. Sometimes I have a Windows virtual machine on my right screen, Linux in the middle, and OS X on the left - all running Komodo. An operating system triptych if you will.

In more typical (and sane) multi-head configurations on a single operating system, you can spawn multiple Komodo windows (and move files between them) to take advantage of some of that extra screen real estate while coding or debugging.

7. Programming languages with managed memory

I'm assuming that what people are talking about here is mainly garbage collection. With dynamic languages this kind of memory management happens behind the scenes, so you don't have to take out the trash yourself.

6. Caffeine

Komodo will not make you a coffee. You'll have to write your own macro for this.

5. "VIM!!! Nuff said!"

Back in the Komodo 3.5 days, I was asked to start working in Komodo exclusively so I'd be "eating our own dog food". I completely agreed in principle, but when it actually came to switching from my beloved Vim to Komodo, which didn't yet have Vi emulation, I was horrified by how much of a hit I took in editing speed.

Over the previous few years, my fingers had learned Vi modal habits because that's the editor I first took the time to really learn. Vi modal editing, once you've passed the initial WTF barrier, is extremely ergonomically efficient. Bill Joy designed an editor "optimized so that you could edit and feel productive when it was painting slower than you could think". Most of us are not dealing with 1200 baud connections to mainframes anymore, but somehow many of these shortcuts are still incredibly useful.

I had to wait till version 4 to get Vi emulation in Komodo (for which I am eternally grateful to Todd Whiteman), and now my fingers are happy again.

4. Google

Absolutely. Googling "ruby iterate over hash" is a lot quicker than looking up the relevant section in one of those big books on your shelf. In Komodo there are a couple of nice shortcuts to the hive mind. "Ctrl+F1" gives you "Alternate Help on Selection" which is a (configurable) Google search on the highlighted word.

3. Flow

The word means different things to different people, but the answer from mrbd seems to be about minimizing distractions (basically "GBTW"). That's totally valid, but a good IDE can help a developer stay in the flow by not getting in the way, and by providing a lot of commonly used tools within the editing interface. Find/Replace, Go to File (Fast Open), and Run Commands are nice examples. You can do all of these things in a shell, but it's less disruptive if you don't have to.

2. Syntax highlighting

This is a requirement for any modern editor, so it's nothing to really brag about. However, Komodo has syntax highlighting support for a lot of languages, and it supports multi-language documents (e.g. web templating formats). You can also add additional languages using UDL.

1. Code Completion

Code completion (aka IntelliSense or autocomplete) is the top of the list, or would be if I hadn't flipped it upside-down. As a neophyte programmer who has to poke around in several languages that I'm only barely familiar with, this (along with calltips) is a huge help to me.

Komodo auto completion

Did we miss anything?

So, what has given you the greatest boost in productivity? The stackoverflow question currently has 184 answers. Many of those that didn't make the top 10 are also excellent (unit tests, tab completion, peer review, ...). We'd like to hear what you think.

Subscribe to ActiveState Blogs by Email

Share this post:

Category: ActiveBlog
About the Author: RSS

As ActiveState's Technical Product Manager for Stackato, Troy Topnik is responsible for defining and prioritizing the product roadmap to build the best cloud platform for deploying applications. Since joining ActiveState in 2001, he has held roles in Technical Support, Training, and Technical Writing. He believes in documentation-driven development as a pragmatic path to a better user experience.


8 comments for The top ten list of productivity boosters for programmers

Telecommuting! That's two hours a day I'm able to put into a text editor that I would have otherwise put on my truck.


IMHO Komodo IDE / Edit have a very weak support for working with a dual monitor; where are the detachable panels? I'd like to have source code on one screen and output + the debugger on the second.


Adding the multi-window feature was a step in this direction, but we're not there yet. Detachable panels is a long-standing feature request for Komodo, but it's difficult to implement. I'll admit that having a detachable debugger tab (a la Firebug) would be very nice.


I just recently switched to Linux (Ubuntu 9.10 at the moment), and I was looking for a good code editor. I stumbled upon Komodo Edit, and for God's sake, I don't know how I had worked without it.

The calltips or whatever that function is (reading the [class, method, whatever] description even from another file) is an extremely boost productive feature. Besides, it formats my code the way I want it. If it has a TAB, and then a space, it intelligently does it again with the next items, and stops when necessary.

I currently only need Edit capabilities, but whenever I expand my requirements, I'll be sure to consider IDE as my first option.

Thanks for your hard work!

PS: Now I even use it as my Windows code editor. :D


The project view/section of Komodo was very usefull. The only real projects I ever do are websystems, that with the project section == pure win. Another basic, but very important one is split view.


Moving to Komodo from a predominantly Vim background myself (having started learning Unix about 14 years ago via Telnet to a FreeBSD 2.2.8 system on a dialup Internet connection), I used to laugh at GUI text editors. I started using Komodo about a year ago though, and its really increased my ability to write correct code quickly.

I haven't yet taken the time to make macros or anything, but I think I really should. Currently I'm switching between Komodo and TextMate a lot, and I feel like I may be lured by the code templating in TextMate, which would be a shame.


@Dean if you haven't checked out Snippets and Abbreviations yet, you should:

Is that what you're talking about? We added this back in version 4.3. Here's a screencast that shows it off: