Which is the Best Code Editor?
For us, web developers, the choice of a source code editor shouldn't come lightly. This is where we spend most of our development time and where productivity is gained or lost on a grand scale. No two developers are alike, so there is a plethora of editors that can accommodate any coding style. But this politically-correct statement doesn’t answer the most fundamental question of all - which is the best?
To determine the best editor, we will rate each one on a scale from 1 to 5 stars, consisting of:
- Beginner friendliness - how easy it is for a beginner to get up and running when opening it for the first time;
- Power - this criteria rates the feature set, text editing capabilities, editing modes etc.
- Extensibility - does the editor supports plugins, bundles or extensions;
- Aesthetics - we strive for beauty in our work, so it is natural to look for the same in our tools;
- Speed - this rates the startup time, performance when opening large files, snappiness of the interface;
- Cross-platform - if the editor is available on multiple operating systems.
- Price - the lower the cost, the higher the mark.
Editors are presented in groups, giving some context on the typical type of developer that would use them.
Who is a guru you ask? Generally, this is a person who has been using one of the editors below since before you were born. The tools in this section are hardcore and insanely expandable. They can run from a terminal window and according to UNIX traditions all their settings are defined in configuration files. Beginners beware!
Released in 1991 this versatile and powerful editor gained a massive following in the open source world. What makes it different from any other editor in this article, is its command-based workflow. Instead of simply typing code, you choose between modes for entering or selecting text, running regex-powered searches and using more commands than you can handle on an empty stomach. It can run from both a console window and a GUI. It has also been ported to all major operating systems. Vim is also extendable by using scripts and plugins, which allow you to tailor your experience with the editor. It is open source software and comes preinstalled on most Linux systems.
Development of Emacs started way back in the 1970 and continues to this day. This editor is known for its extensibility, achieved by loading customized libraries. It deserves its place in computing history, as it is one of the first editors to implement syntax highlighting, automatic indentation and support for multiple programming languages. Like Vim, it is perfectly cross-platform and can be used from both a terminal window and through a graphical user interface. The editor comes bundled with a LISP interpreter, which gurus can use to change it to extremes. Emacs is free and open source software.
The editors in this category are full blown development environments. They are meant to be easy to use and at the same time expose powerful features so that developers go through writing code, compiling, testing and deploying from a single application.
Eclipse is the goto development environment for writing Java applications. The IDE follows a plugin architecture, which makes it easy to bring support for additional programming languages. There are plugins for C/C++, Ruby, PHP and more. Eclipse offers powerful code hinting, built in documentation and real-time syntax checking. Companies like Google release their development kits for the platform, so you can easily create applications for Android and App Engine. Eclipse is free and open source.
Netbeans is another Java development environment, but like Eclipse, can be extended with bundles for additional languages including PHP, Python, C/C++ and others. It runs on Linux, Windows and OSX. Where this IDE shines though, is in Java development. Netbeans can speed up your development of desktop applications with a drag&drop GUI builder. A negative side effect of all this flexibility is the performance - Netbeans has frequently been reported for being slow on large projects. The IDE is free and open source.
Visual Studio is the all-in-one development environment for Windows. It supports a large number of languages (C/C++, C#, VB.NET and F# come built-in) and can be used to develop applications for desktop, mobile and web. It has powerful features for code autocompletion, inline documentation, error checking, debugging, form designer, database schema creation and more. The price starts from $500, but an Express version of Visual Studio is available for free, with a limited feature set.
Xcode is Apple's solution for developing OSX and iOS applications. It supports C, C++, Objective-C, Objective-C++, Java, AppleScript, Python and Ruby. With Xcode, you can write, debug and preview code. It provides a GUI builder and a mobile device emulator for testing iOS apps. The IDE is based on open source utilities like the GNU Debugger and the Apple LLVM compiler. Xcode used to be paid, but now is offered for free to developers.
Coda is an all-in-one web developer power tool set. It includes support for (s)FTP file transfer, code navigation, sites and groups, code folding, terminal and git integration, MySQL management and much more. With the new Coda 2 release, you can even use an iPad as a dedicated preview screen. The regular price is $99, but you can get it with a discount for around $75.
The editors presented here are beautiful, lightweight, easy to use and extensible. There are big communities around them, which produce bundles and plugins, write articles, and offer tips on how to make the best use of the respective editor.
TextMate is a general-purpose graphical text editor for OSX. It includes extensive support for macros and bundles, code folding, snippets, shell integration, clipboard history and project management. TextMate 2 is expected to bring long requested features like split views and full screen support, which are currently missing. The editor costs around $50.
Sublime Text 2
Sublime is a beautiful cross-platform code editor. It is fast and feature rich, with support for practically every programming language. It supports multiple selections, code folding, keyboard bindings, macros, split screen editing and projects. Sublime Text also has a fullscreen and distraction-free modes, which look great on big displays. Like TextMate, it has a vibrant community behind it, which creates bundles and plugins with the help of Sublime’s powerful plugin API. It runs on Linux, Windows and OSX. This editor comes with an unlimited trial period, but you should eventually purchase a license for $59, which can be used on every computer that you own.
This section is for people who just want to get things done. These editors don’t get in your way, but at the same time are fast and very powerful. They may not be as refined as the last group, but rest assured that they can take anything you throw at them.
This powerful and lightweight editor is a must for any programmer running Windows. Although its name might connote that it is merely an improved version of Notepad, this is a mighty tool. It is easy for beginners to get started, but it takes a pro to truly master. Notepad++ supports every popular programming language with plugins available for the rest. The editor also has support for split screen editing, an FTP browser, macros and powerful text editing capabilities. Notepad++ is free as in speech and also as in beer.
TextWrangler is a free and lightweight OSX-only editor with support of multiple programming languages. It offers a powerful search and replace functionality with multiple file support, text manipulation, file comparison, auto indentation, multiple clipboards, ftp support and more.
And the best editor is..
With a rating of 4.6, the best source code editor is Sublime Text 2! With its fast release cycle, cross-platform availability, speed and elegance, Sublime offers a package that is only enhanced by the large community of developers around it.
Didn't find your editor of choice in this list? Tell us which is your favorite in the comment section below!
The revolutionary web design tool for creating responsive websites and apps.Learn more