Other modular editors offer mode capabilities that allow programmers to customize development tools for one or more programming languages. Modes supply the language-specific functionality needed to write applications, and programmers simply switch modes to write applications in different languages. For example, suppose your team develops applications using XML, Visual Basic.Net, C++, C#, Java and J2EE. Rather than using three or four different tools to support your development efforts, you could use a single code editor that offers modes for all of these languages.
The modularity of a code editing tool strategy may offer a great deal of flexibility by giving developers just the specific tools they need to achieve rapid results, but getting the most out of these tools still requires developer knowledge and skill level.
As Glen Austin, senior programmer at iSoft Corporation notes, “the deeper one understands a given programming language, its libraries and features, the faster and better their code will be. Deep understanding doesn’t just come from pointing and clicking.” Developers with some experience may take more quickly to — and get more benefit from — the more nimble and streamlined code editors simply because they are more familiar with the languages and processes involved.
When it comes to expanding developer skill levels or teaching new programmers, there is some debate about whether code editors or IDEs are the right way to go. An IDE’s extra features can act as a set of training wheels for new developers, depending on how much knowledge they bring to the table at the start. However, many of those who adhere to the code editing philosophy believe that junior programmers have an easier time learning the fundamentals of a programming language using a code editor because the new developer is not saddled with learning the bells and whistles of an IDE.
“Emacs is very forgiving of new users,” says Anderson. “It has a built-in tutorial, and context-sensitive help and assistance is readily available from the user community.” Excido’s Bowmer notes that “Vim includes a tutorial called Vimtutor that quickly teaches you the basics. I personally found Vim very easy to learn.” Meanwhile, Rathman says that “TextPad would be a good choice [for new developers] because it offers a good balance between simplicity and features.”
Investigating the other side
If your shop wants to consider a flexible, modular approach to programming, you needn’t abandon your current development tool standard. If you currently use an IDE, find out if that IDE is extensible to the point where programmers can plug in a variety of editors, debuggers, and other selective tools on an as-needed basis.
One way to gauge the effectiveness of your current development tool strategy is to track the number of production-level problems found in a given piece of software (It’s one thing if programmers complete the development and test cycle rapidly, but quite another if that same code has frequent problems in production). Metrics showing the number of production problems and the time spent resolving them can provide an eye-opening assessment of whether the development approach you have in place is best for your team.
Of course, there are plenty of gray areas in this quest for development nirvana. There are open, extensible IDEs that let developers plug in tools of their choosing; there are also code-editing solutions that “plug into” an IDE. For example, Visual SlickEdit provides a plug-in so developers can use it from within IBM’s WebSphere Studio Application Developer IDE.