Many developers feel that mouse-centric IDEs slow them down, while keyboard-driven code editing tools’ feature-rich and flexible nature gives them an edge. “I’ve yet to use an IDE where I can enter or edit code as quickly as I can using Vim,” adds Wade Bowmer, a senior developer at Excido. “I don’t need to use a mouse, and many IDEs heavily use the function keys, which seems to really slow me down.”
Scott Anderson, a senior software architect, agrees. “I use Emacs for everything. It’s programmable, open source, has a huge user community, and its range of features is simply stupefying,” he explains.
Developers from a variety of shops echo the same themes: The code editor approach gives them modular tools that support multiple languages and platforms, along with features such as syntax highlighting, macro facilities, usable file comparison tools, a multilayer cut and paste function and powerful search and replace capabilities.
But regardless of features they consider important, programmers still place productivity gains ahead of all other benefits.
“People who observe me working in Emacs are usually amazed at how much I get done in a very short period of time,” says Anderson. “I’d say we’re talking an order of magnitude, at least. We’re always trying to find tools that will help our programmers be as productive as possible.”
Flexible code editors with the right features and high productivity aren’t the only high points of this modular philosophy. The pluggable modules and extensible modes that enable specific task types are a large part of what makes the code editor programming paradigm work.
The number and types of available modules and modes available is staggering. For example, if your shop uses the XP (eXtreme Programming) methodology, there are plug-ins available to map to the releases, iterations, stories, and tasks that must be executed for XP projects. Likewise, if your site does a lot of refactoring, available plug-ins can help automate the process, usually by maintaining catalogs for refactoring activities. After selecting a catalog entry and setting parameters, the plug-in analyzes the impact of the refactoring operation; if the developer agrees with the output of the analysis, he or she can use the same plug-in to then execute the refactoring operation.
Other plug-ins support a range of actions, from the creation of Apache Ant scripts to XML indenting and SQL accessibility, as well as allowing access to source control tools, such as CVS and IBM’s Rational ClearCase.
By contrast, many traditional IDEs limit developers to just the tools and modules included out-of-the-box by the vendor. This one-size-fits-all approach may work for some, but maximizing productivity for all developers on a team can be more easily addressed by using the modular, pluggable tool strategy. Some IDEs are taking this to heart; more open IDEs, such as Eclipse, are beginning to implement a flexible development approach by offering one or more editors and pluggable modules within the IDE.