Call it a back-to-basics movement or simply professionals seeking the best tools to get the job done well and on time. With
enterprises putting a premium on productivity, a quiet revolution among programmers is eschewing the heavy, feature-filled
IDE and turning instead to the venerable standby: the code editor.
The spark behind this growing trend comes down to control — enterprises tout IDEs as the development tool du jour, with supporters
arguing that programmers will get more done if they can do all their work inside a single environment. But many programmers
(especially experienced ones) prefer a markedly different approach, using code editors and pluggable modules, modes, or other
extendibility features to pick and choose just the tools they need. They don’t enjoy being shoved into a single development
environment, and contend that IDEs are resource-intensive, slow, and have many more features than are really needed to get
the job done.
The answer lies in a flexible tool strategy: Developers get to use the tools and approaches that help them work best, and
the company reaps the productivity benefits of both efficient tools and happy programmers.
Going modular
The modular, code editor approach is appealing on several fronts. First, these tools are generally low cost — and frequently
no-cost — items, so experimenting with a modular development strategy to increase programmer productivity in the enterprise
does not require a large chunk of the budget.
Many modular code-editing solutions are derived from and maintained by open source developers. In fact, the involvement of
the open-source community is one reason for code editors’ recent rise in visibility, as the vast majority of code editing
solutions available today are open-source, multi-platform, and multi-language.
“My students don’t usually have a lot of money to throw around,” says Tom Sinclair, a computer programming instructor at Westwood
College of Technology. “We typically use as many free and low-cost solutions as possible. Open source editing tools, in particular,
provide an easy approach for both our Linux and Windows development.”
Open source roots provide yet another benefit: source code availability. Programmers using open source editors and modular
plug-ins can easily customize their tools to meet corporate standards, such as a shared plug-in that all internal developers
can use to perform automated check-ins to a specific source code repository.
Extending and adapting open source tools with additional modules also puts the collective knowledge of other developers —
who have likely uncovered better, faster ways of doing various tasks and already updated the modules — directly into your
hands, boosting productivity further.
But customization is just one piece of the code editor puzzle. Programmers have some lively answers when it comes to what
sets code editors apart from other development tools.
“The editors in most IDEs don’t have nearly enough features and they make manipulating code difficult,” says Chris Rathman,
a consultant and software developer. “For example, I need to be able to work with several hundred files in a single session
and I must have the ability to do global search and replaces. Oh, and it has to be fast.”
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.”
Plugging in
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.