Not sure whether to use an integrated development environment or text editor? Here's what you need to know.
We all want to be more productive, so it's no surprise there are so many tools aimed at making life simpler for developers.
An age-old debate among programmers is whether to use a plain text editor, such as Emacs, or a more fully-featured integrated development environment (IDE), such as Microsoft's Visual Studio.
There's no right answer, rather each option has pros and cons. If you're puzzled over which is the best approach for you, here's a broad overview of the arguments for and against, and where well-known developers stand.
SEE: IT Hiring Kit: Programmer (Tech Pro Research)
Text editors like Vim and Emacs have been used to write code for decades.
Behind the stark simplicity of these editors lie powerful keyboard shortcuts, capable of minimizing typing and eliminating cumbersome switching between keyboard and mouse.
Powerful shortcuts - Customizable shortcuts allow developers to replace reams of typing with a few key presses.
Accessibility - Simple to log into Vim from another machine via SSH and to resume coding.
Simplicity means stability - Fewer features and a slower change of pace means less chance of unexpected behavior.
Good for switching between languages - Text editors typically function the same, regardless of the programming language being written.
Extensibility - Custom configurations, macros and extensions are available for most popular text editors.
Lacking features - Vanilla versions of text editors typically don't incorporate essential tools, lacking integration with debuggers and compilers, and missing nice-to-have features such as error checking. That said, many editors such as Emacs and Sublime Text can install extensions to add new features.
A higher barrier for newcomers than IDEs - Not true of all text editors, but at first glance, the no-frills interface and unfamiliar shortcuts offered by editors like Vim can intimidate first-time users. However, the counter-argument is that, by not holding the user's hand, text editors force those learning a language to figure out more for themselves, thereby providing a more solid foundation.
Richard Stallman is a free-software activist and creator of the GNU OS that forms part of the basis of modern GNU/Linux distros.
He still codes using the GNU Emacs text editor he created in 1984, saying it meets all of his needs.
"I don't use an IDE. I edit with Emacs. I would not consider editing with anything else," he said.
Stallman highlights how text editors can be plugged into other developer tools, addressing the criticism that such editors lack much of the functionality of IDEs.
"Emacs has an interface to GDB [GNU Debugger] (and some other debuggers) which has more or less the effect of an IDE. GDB displays its interaction through Emacs, and it displays the source code of the debugged program via Emacs as well."
Stallman is not the only well-known developer to favor the simplicity of a text editor.
Ken Thompson, who co-created the Go programming language is on record as saying he used the Sam text editor, which he also co-created, and Linus Torvalds, developer of Linux kernel, has said he favors MicroEMACS.
Integrated Development Environments such as NetBeans and Microsoft's Visual Studio ease developers into programming. These software suites bundle together a text editor with many of the tools the developer needs to build and maintain a working program.
Integrated compiler and debugger - A big selling point is that IDEs include a compiler and debugger as standard, rather than requiring the installation of separate software/ extensions.
A breadth of features - The most popular IDEs also offer a wide range of productivity tools. These tools aid in error checking, refactoring code, code completion and performance analysis to name a few areas.
Support for libraries - IDEs are usually written with a particular language or development platform in mind and can easily drop relevant software libraries into your code.
Easier for newbies - Because IDEs typically offer so many features out-of-the-box there's less of a learning curve when setting them up and getting started.
Built-in emulators - Some IDEs, such as Android Studio, include built-in emulators for more easily testing code on different platforms.
Cumbersome - Because IDEs bundle so many features it's likely you'll stumble across some you don't want or that get in your way.
More demanding - Not so much a factor on modern computers, but IDEs typically require a more powerful computer to run than simple text editors.
John Carmack, co-founder of id Software and CTO of Oculus VR, generally works within Microsoft's Visual Studio.
"Visual Studio on Windows is by far my preferred IDE, but I also use Android Studio a fair amount, and occasionally others," he said.
"Frankly, they are all quite good today, but VS still feels quickest for a lot of native debugging tasks - most other IDEs wrap and scrape command-line debuggers instead of actually implementing the functionality themselves."
Meanwhile, James Gosling, lead designer of the Java programming language, is also a fan of the Netbeans IDE.
- 10 steps to DevOps success in the enterprise (TechRepublic)
- Top 10 challenges to DevOps implementation (TechRepublic)
- 10 books to add to your DevOps reading list (TechRepublic)
- Ebook: IT leader's guide to making DevOps work (Tech Pro Research)
- DevOps enters the mainstream: Here's how to make it work for you (ZDNet)
- It takes more than one champion: Getting DevOps working for you (ZDNet)
- 10 ways to improve time-to-market for your applications (TechRepublic)
- Shifting to DevOps? Put your ducks in a row first (TechRepublic)
- Standardizing DevOps tools requires culture change and careful evaluation (Tech Pro Research)