Sunday, December 24, 2017

4 Best Modern Open Source Code Editors For Linux

Brief: Looking for best programming editors in Linux? Here’s a list of best code editors for Linux. The best part is that all of them are open source code editors.
If you ask the old school Linux users, their answer would be Vi, Vim, Emacs, Nano etc. But I am not talking about them. I am going to talk about new age, cutting edge, great looking, sleek and yet powerful, feature-rich best open source code editors for Linux that would enhance your programming experience.

Best modern Open Source editors for Linux

I use Ubuntu as my main desktop and hence I have provided installation instructions for Ubuntu based distributions. But this doesn’t make this list as best code editors for Ubuntu because the list is apt for any Linux distribution. Just to add, the list is not in any particular priority order.

1. Brackets

Brackets is an open source code editor from Adobe. Brackets focuses exclusively on the needs of web designers with built-in support for HTML, CSS and JavaScript. It is lightweight and yet powerful. It provides you with inline editing and live preview. There are plenty of plugins available to further enhance your experience with Brackets.
Some of the main features of Brackets code editor are:
  • Inline editing
  • Live preview
  • Preprocessor Support
  • Built-in extension manager
  • Cross-platform
You can get the source code as well as binaries for Linux, OS X and Windows on its website.

2. Atom

Atom is another modern and sleek looking open source editor for programmers. Atom is developed by Github and promoted as a “hackable text editor for the 21st century”. The looks of Atom resembles a lot like Sublime Text editor, a hugely popular but closed source text editors among programmers.
Some of the main features of Atom code editor are:
  • Easily extendible
  • Built-in package manager with a huge number of plugins available
  • Smart autocompletion
  • Split windows
  • Cross-platform
  • Embedded Git control
  • Command palette support
  • Looks customization
Atom has recently released .deb and .rpm packages so that one can easily install Atom in Debian and Fedora based Linux distributions. Of course, its source code is available as well.

3. Light Table

Flaunted as “the next generation code editor”, Light Table is another modern looking, underrated yet feature-rich open source code editor which is more of an IDE than a mere text editor.
There are numerous extensions available to enhance its capabilities. Inline evaluation is what you would love in it. You have to use it to believe how useful Light Table actually is.
Some of the main features of Light Table are:
  • Built-in extension manager
  • Inline evaluation obviates the need for printing to screen as you can evaluate the code in the editor live
  • ‘Watches’ feature lets you see your code running live
  • Cross-platform
If you are using Ubuntu-based Linux distribution, then installing Light Table is easier for you. However, officially, Light Table doesn’t provide any packages. You have to build it yourself.

4. Visual Studio Code

Visual Studio Code is a popular code editor from Microsoft. Now don’t push the panic button just yet. Visual Studio Code is completely open source.
In fact, Visual Studio Code was among the first few ‘peace offering’ from Microsoft to Linux and Open Source world. Microsoft has open sourced a number of its tools after that. Of course, that doesn’t include Microsoft Office.
Visual Studio Code is an excellent code editor, especially for web development. It is lightweight as well.  Some of the other main features are:
  • Intellisense provides useful hints and auto-completion features
  • Built-in Git support
  • Built-in extension manager with plenty of extensions available to download
  • Integrated terminal
  • Custom snippet support
  • Debugging tools
  • Support for a huge number of programming languages
  • Cross-platform

Wednesday, December 13, 2017

Source code editor

A source code editor is a text editor program designed specifically for editing source code of computer programs by programmers. It may be a standalone application or it may be built into an integrated development environment (IDE) or web browser. Source code editors are the most fundamental programming tool, as the fundamental job of programmers is to write and edit source code.

Contents

Features

Source code editors have features specifically designed to simplify and speed up input of source code, such as syntax highlighting, indentation, autocomplete and brace matching functionality. These editors also provide a convenient way to run a compiler, interpreter, debugger, or other program relevant for the software development process. So, while many text editors can be used to edit source code, if they don't enhance, automate or ease the editing of code, they are not source code editors, but simply text editors that can also be used to edit source code.
Structure editors are a different form of source code editor, where instead of editing raw text, one manipulates the code's structure, generally the abstract syntax tree. In this case features such as syntax highlighting, validation, and code formatting are easily and efficiently implemented from the concrete syntax tree or abstract syntax tree, but editing is often more rigid than free-form text. Structure editors also require extensive support for each language, and thus are harder to extend to new languages than text editors, where basic support only requires supporting syntax highlighting or indentation. For this reason, strict structure editors are not popular for source code editing, though some IDEs provide similar functionality.
A source code editor can check syntax while code is being entered and immediately warn of syntax problems. A few source code editors compress source code, typically converting common keywords into single-byte tokens, removing unnecessary whitespace, and converting numbers to a binary form. Such tokenizing editors later uncompress the source code when viewing it, possibly prettyprinting it with consistent capitalizing and spacing. A few source code editors do both.

Some well-known source code editors

Controversy

Many source code editors and IDEs have been involved in ongoing user arguments, sometimes referred to jovially as "holy wars" by the programming community. Notable examples include vi vs. Emacs and Eclipse vs. NetBeans. These arguments have formed a significant part of internet culture and they often start whenever either editor is mentioned anywhere.

Tuesday, December 12, 2017

A Beginner's Guide to Integrated Development Environments

If you're new to programming (or new to programming in a particular language) you might be looking for an IDE — that's an integrated development environment, the handy, dandy piece of software that acts as text editor, debugger and compiler all in one sometimes-bloated but generally useful package.
Unless you're committed to working in a text editor and a command prompt window (and there are compelling reasons for doing exactly that) you might be looking for some advice on how to choose a good IDE, the pros and cons of various varieties, the relative costs (financial or system resources) of running a particular IDE, what other languages the IDE might handle well, the operating system(s) it runs on and ever so much more.
I was recently in need of such advice, myself. As some of the readers of this blog know, I recently went back to school to study computer science. Being an utter novice, I made the mistake of asking developers in my sphere what IDE I should use.
The topic is apparently a minefield of catastrophic proportions. Developers are passionate, experienced and opinionated when it comes to optimizing their workflows, and recommendations (and anti-recommendations, e.g., "NetBeans is superlatively bad and will turn your hardware into Cream O' Wheat!") fly like shells over a battlefield.
Here's a less opinionated, concise but thorough look at IDEs for the new programmer. If you need more detailed information or want to find an IDE for a less common programming language, check out the Wikipedia article comparing just about every IDE known to humankind.
And if we left out an IDE you particularly love, let us know about it in the comments — but try to keep the NetBeans/Eclipse, Vim/Emacs flamewars to a minimum.

IDEs Built from Text Editors

It's a slightly more complicated setup, but some pro developers swear by these workflows, which take a lightweight, run-of-the-mill text editor and turn it into a full-fledged, be-all-end-all IDE.
Ars Technica has an excellent step-by-step article on how to turn Vim into a great IDE using Exuberant Ctags, completion modules, script collections and more.
Emacs users can also use commands to make this editor more developer-friendly. And of course, this topic gets a thorough discussion at StackOverflow.
When in doubt, search Google for tips on turning your favorite text editor into a great IDE for your language of choice. Chances are someone, somewhere has already attempted it and is willing to hand out advice.

Multi-Language IDEs

Aptana Image


As a beginning programmer, you might not need tools for coding in Ruby and Python and C++ and PHP, but if you're aiming for a multi-language career later on, you might consider learning the ropes of a multi-language IDE.
One kind gent (or lady) on Hacker News wrote, "Although many IDEs can handle more than one language, few do it well. Plus, it's likely overkill if you are just getting started." This individual suggested instead using a simple text editor such as gEdit (Linux) or TextMate (Mac) for multi-language practice.

Eclipse

Languages: C, C++, Python, Perl, PHP, Java, Ruby and more
Price: FREE
Eclipse is the free and open-source editor upon which many development frameworks are based. It's one of the granddaddies in its field and comes highly recommended by many a professional developer. Eclipse began as a Java development environment and has greatly expanded through a system of lightweight plugins.

NetBeans

Languages: Java, JavaScript, PHP, Python, Ruby, C, C++ and more
Price: FREE
NetBeans is neck-and-neck with Eclipse as the most-recommended IDE in this category. It's free and open-source, supports tons of languages with more plugins coming all the time, and is incredibly simple to install and use, even for a beginner.

Komodo

Languages: Perl, Python, Tcl, PHP, Ruby, Javascript and more
Price: $295
This enterprise-level tool might be best for the pro developer because of its higher price point. For beginners, you might also want to check out the Komodo-based, FOSS editor Open Komodo or Komodo's FOSS version, Komodo Edit.

Aptana

Languages: HTML, CSS, JavaScript, AJAX and others via plugins
Price: FREE
Aptana is a popular choice for web app development. Aptana Studio 2 can be used as a stand-alone IDE or can be plugged into Eclipse. Aptana comes with Firebug support built-in, and its developer community seems to release plugins for other languages as needed.

BlackAdder

Languages: Python and Ruby
Price: $59.99 (personal developer license)
This IDE is designed for Python and Ruby devs creating apps for Windows and Linux. It includes a text editor as well as a GUI designer that uses pyQT and QT Designer. The makers of BlackAdder allow you to test drive the IDE in a limited demo version.

Geany

Languages: C, Java, PHP, HTML, Python, Perl, Pascal and a boatload more
Price: FREE
Geany bills itself as a "small and fast" IDE, but it is by no means a lightweight. Its list of supported languages is about a block long; it's highly customizable; and it features a robust set of plugins which is open for hacking.
Here's a chart showing the differences and similarities between a few multi-language IDEs. An asterisk denotes the need to use a third-party or other plugin to achieve the desired functionality. The .NET column indicates support for .NET languages, particularly C#. "FOSS" is the acronym for "free and open-source." Click the image to see a slightly larger version.

IDEs for Mobile Development

These days, developing mobile applications is one of the most compelling and exciting reasons for learning how to code. We're still looking for that perfect, all-in-one, cross-platform mobile app IDE — in fact, we particularly welcome your comments and suggestions on this score — but here are a few ideas to get you started.
Try some of PhoneGap's cross-platform tools. PhoneGap works with Xcode and Eclipse for iPhone and Android, respectively. You could also try the web-based, hosted RhoHub, which allows for git-powered source control and team collaboration.
Another good bet for mobile developers is Appcelerator's Titanium Mobile, which lets you write in any language/IDE you choose, then translates your code to Objective-C or Java. You can also check out our list of cross-platform mobile development tools. Finally, the mobile development products (and resultant applications) from Adobe are getting more interesting all the time — we highly recommend keeping an eye on their developer tools.
Also, if you're already using a multi-language or other IDE, check the web to see if a mobile-development plugin already exists; many IDEs such as Eclipse have this functionality.

Web-Based IDEs

CodeRun Image


If you're working remotely or need a last-minute fix, these IDEs might be worth looking into.

CodeRun

Languages: ASP.NET, PHP, Ajax, C#, JavaScript, CSS, HTML and more
Price: FREE
This broswer-based IDE works in Chrome, Firefox, Safari and even good old Internet Explorer. Like the more robust multi-language IDEs, CodeRun supports Visual Studio projects and .NET languages. Best of all, your code is sharable via hyperlinks; it's even got built-in social sharing tools, should you want to tweet your code.

ShiftEdit

Languages: PHP, HTML, CSS and JavaScript
Price: FREE
ShiftEdit brings revision history and code snippets to the browser. Any files you access will stored until next time you log in. This IDE's text editor is based on Mozilla's Bespin (mentioned below).
If you need a collaborative, web-based code editor — great when working on joint projects or as part of a team — you might also want to check out Squad. And for HTML5-based code editing, try Mozilla's SkyWriter, formerly codenamed Bespin.

IDEs for Microsoft/.NET/C# and Apple/iPhone/Mac Devs

Some languages require a bit of special handling; not all multi-language IDEs support all languages, and if you're working with the Cocoa API, for example, or with a .NET framework language, you might want to consider something more specifically suited to a Microsoft or Apple development environment.
Another part of this category includes single-platform IDEs such as Coda and Espresso. They only run on Mac Operating Systems, but they allow for multi-language development within a very Apple-flavored GUI.

Visual Studio

Languages: Visual C++, VB.NET, C#, F# and others
Price: $549
Visual Studio is Microsoft's IDE. If you're building Silverlight apps or planning on working in a .NET shop (such as MySpace), you may want to spend some time with Visual Studio. Visual Basic has some support for non-Microsoft languages such as Python and Ruby, but you'll have to install those services yourself. A free, limited-time trial version is available.

Xcode

Languages: Objective-C, Objective-C 2, Cocoa and Cocoa Touch APIs
Price: FREE
This IDE is just for creating iOS and Mac apps. If you're thinking along Apple-y lines and want to get into iPhone or iPad development, Xcode might be your first stop. This IDE includes an iPhone simulator and GUI builder, too.

Monodevelop

Languages: C/C++, Visual Basic, C# and other .NET languages
Price: FREE
Monodevelop is a good option if you're working in a .NET languages and don't want (or need) to fork over the $550 for Visual Studio. This free-as-in-beer IDE also allows you to port your apps to Linux while maintaining a single codebase.

Espresso

Languages: HTML, CSS, XML, JavaScript and PHP
Price: $79.95
Espresso, a tool for Mac web devs, comes from the makers of CSSEdit. Its supported languages and other features are extensible through plugins known as "Sugars."

Coda

Languages: PHP, JavaScript, CSS, HTML, AppleScript and Cocoa API
Price: $99
Coda bills itself as "one-window development" for the Mac user, and its a favorite of many developers on this platform. It's a full-featured IDE, but one of its most interesting features is live collaboration with other users.
PHP IDE
It's not delirium tremens; it's just an elePHPant.

IDEs for Specific Languages

Here are a few suggestions for IDEs that cater to developers working in a single language. Some of these options are more costly than others, but most of the non-free IDEs here will also have a free trial version available for you to test-drive the software, learn to use it and decide whether or not you need and want its features and interface.
We only have space to highlight a few of the more popular programming languages here. If we left your preferred language out of this list, search StackOverflow for IDE recommendations, or ping the friendly devs over at Hacker News for their advice.

C/C++

C/C++ languages are some of the most widely used in the world of computer programming. Almost every multi-language IDE will support C/C++, but here are some dedicated IDEs just for C programmers.
Bloodshed Dev-C++
Price: FREE
Code::Blocks
Price: FREE
CodeLite
Price: FREE
C-Free
Price: $79.95 (single-user license)

Java

Yeah, yeah, I've heard about how much Java sucks more times than I can recall. But it's used in the Android stack as well as in a lot of intro-level programming courses, so here's a lineup of good Java IDEs.
Jikes
Price: FREE
Jcreator
Price: $89 (single-user license)
IntelliJ IDEA
Price: FREE

Python

Never mind the fu and bar, here's some spam and eggs. If you got that reference, you might want to check out these links. Here are a few IDEs dedicated to Python, a powerful, readable and fascinating language. For more suggestions and comparison information, check out this exhaustive StackOverflow list of Python IDEs.
Idle
Price: FREE
PyCharm
Price: $49 (personal license)
Pida
Price: FREE
Wing
Price: $35 (personal license, single OS)
Pyscripter
Price: FREE

PHP

PHP powers some of the most ubiquitous web apps around today, from WordPress to Facebook. Many of the free multi-language IDEs also support PHP development. Here are some full-featured, pro IDEs we've seen recommended.
PHPStorm
Price: $99 (personal license)
PhpED
Price: $119
Zend Studio
Price: $399
PHP Designer
Price: $45 (personal license)

Ruby/Rails

For a relatively young language, Ruby gets a lot of mileage, from consumer-facing apps like Twitter to dev-centric sites such as GitHub. In addition to these IDEs, also check out Ruby In Steel, a Ruby tool for Visual Studio, and Heroku, the so-hot-right-now PaaS for Ruby apps.
RubyMine
Price: $99 (commercial license)
Redcar
Price: FREE (and still under development)
RadRails
Price: FREE

Use What You Love, Love What You Use

Finally, after scores of links and a huge data-dump of information, we can only tell you this: Developers are passionate and opinionated about their IDEs because each individual has researched, chosen, used and come to appreciate a specific IDE (or set of IDEs) for personal as well as practical reasons.
We recommend you try out a few of the free (and free trial) IDEs before making a hard and fast choice as to what you'll use, but you should ultimately use the IDE that suits you best and makes you happiest. Anyone else's recommendations are just highly subjective suggestions.
We wish you well, and happy coding!
Disclosure: The author of this post uses gEdit, Notepad, NetBeans, JCreator, and a magnetic needle and a steady hand.

Integrated development environment

An Integrated Development Environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools and a debugger. Most modern IDEs have intelligent code completion. Some IDEs, such as NetBeans and Eclipse, contain a compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not. The boundary between an integrated development environment and other parts of the broader software development environment is not well-defined. Sometimes a version control system, or various tools to simplify the construction of a Graphical User Interface (GUI), are integrated. Many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram, for use in object-oriented software development.

Contents

Overview

Integrated development environments are designed to maximize programmer productivity by providing tight-knit components with similar user interfaces. IDEs present a single program in which all development is done. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software. This contrasts with software development using unrelated tools, such as vi, GCC or make.
One aim of the IDE is to reduce the configuration necessary to piece together multiple development utilities, instead providing the same set of capabilities as a cohesive unit. Reducing that setup time can increase developer productivity, in cases where learning to use the IDE is faster than manually integrating all of the individual tools. Tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks. For example, code can be continuously parsed while it is being edited, providing instant feedback when syntax errors are introduced. That can speed learning a new programming language and its associated libraries.
Some IDEs are dedicated to a specific programming language, allowing a feature set that most closely matches the programming paradigms of the language. However, there are many multiple-language IDEs.
While most modern IDEs are graphical, text-based IDEs such as Turbo Pascal were in popular use before the widespread availability of windowing systems like Microsoft Windows and the X Window System (X11). They commonly use function keys or hotkeys to execute frequently used commands or macros.

History

GNU Emacs, an extensible editor that is commonly used as an IDE on Unix-like systems
IDEs initially became possible when developing via a console or terminal. Early systems could not support one, since programs were prepared using flowcharts, entering programs with punched cards (or paper tape, etc.) before submitting them to a compiler. Dartmouth BASIC was the first language to be created with an IDE (and was also the first to be designed for use while sitting in front of a console or terminal).[citation needed] Its IDE (part of the Dartmouth Time Sharing System) was command-based, and therefore did not look much like the menu-driven, graphical IDEs popular after the advent of the Graphical User Interface. However it integrated editing, file management, compilation, debugging and execution in a manner consistent with a modern IDE.
Maestro I is a product from Softlab Munich and was the world's first integrated development environment[1] for software. Maestro I was installed for 22,000 programmers worldwide. Until 1989, 6,000 installations existed in the Federal Republic of Germany. Maestro was arguably the world leader in this field during the 1970s and 1980s. Today one of the last Maestro I can be found in the Museum of Information Technology at Arlington.
One of the first IDEs with a plug-in concept was Softbench. In 1995 Computerwoche commented that the use of an IDE was not well received by developers since it would fence in their creativity.
As of March 2015, the most popular IDEs are Eclipse and Visual Studio.[2] An example of a high-productivity Platform as a Service provider that incorporates an IDE is the OutSystems Platform, a Rapid Application Development platform which claims a 10x acceleration in development by using a robust IDE and a 'toolbox' of pre-built components. In 2016 OutSystems launched its P10 Platform which has been specifically designed to build applications for mobile.

Topics

Visual programming

Visual programming is a usage scenario in which an IDE is generally required. Visual Basic allows users to create new applications by moving programming, building blocks, or code nodes to create flowcharts or structure diagrams that are then compiled or interpreted. These flowcharts often are based on the Unified Modeling Language.
This interface has been popularized with the Lego Mindstorms system, and is being actively pursued by a number of companies wishing to capitalize on the power of custom browsers like those found at Mozilla. KTechlab supports flowcode and is a popular opensource IDE and Simulator for developing software for microcontrollers. Visual programming is also responsible for the power of distributed programming (cf. LabVIEW and EICASLAB software). An early visual programming system, Max, was modelled after analog synthesizer design and has been used to develop real-time music performance software since the 1980s. Another early example was Prograph, a dataflow-based system originally developed for the Macintosh. The graphical programming environment "Grape" is used to program qfix robot kits.
This approach is also used in specialist software such as Openlab, where the end users want the flexibility of a full programming language, without the traditional learning curve associated with one.

Language support

Some IDEs support multiple languages, such as GNU Emacs based on C and Emacs Lisp, and IntelliJ IDEA, Eclipse, MyEclipse or NetBeans, all based on Java, or MonoDevelop, based on C#.
Support for alternative languages is often provided by plugins, allowing them to be installed on the same IDE at the same time. For example, Flycheck is a modern on-the-fly syntax checking extension for GNU Emacs 24 with support for 39 languages.[3] Eclipse, and Netbeans have plugins for C/C++, Ada, GNAT (for example AdaGIDE), Perl, Python, Ruby, and PHP, which are selected between automatically based on file extension, environment or project settings.

Attitudes across different computing platforms

Unix programmers can combine command-line POSIX tools into a complete development environment, capable of developing large programs such as the Linux kernel and its environment.[4] In this sense, the entire Unix system functions as an IDE.[5] The free software GNU tools (GNU Compiler Collection (GCC), GNU Debugger (gdb), and GNU make) are available on many platforms, including Windows.[6] The pervasive Unix philosophy of "everything is a text stream" enables developers who favor command-line oriented tools to use editors with support for many of the standard Unix and GNU build tools, building an IDE with programs like Emacs[7][8][9] or Vim. Data Display Debugger is intended to be an advanced graphical front-end for many text-based debugger standard tools. Some programmers prefer managing makefiles and their derivatives to the similar code building tools included in a full IDE. For example, most contributors to the PostgreSQL database use make and gdb directly to develop new features.[10] Even when building PostgreSQL for Microsoft Windows using Visual C++, Perl scripts are used as a replacement for make rather than relying on any IDE features.[11] Some Linux IDEs such as Geany attempt to provide a graphical front end to traditional build operations.
On the various Microsoft Windows platforms, command-line tools for development are seldom used. Accordingly, there are many commercial and non-commercial products. However, each has a different design commonly creating incompatibilities. Most major compiler vendors for Windows still provide free copies of their command-line tools, including Microsoft (Visual C++, Platform SDK, .NET Framework SDK, nmake utility).
IDEs have always been popular on the Apple Macintosh's classic Mac OS and macOS, dating back to Macintosh Programmer's Workshop, Turbo Pascal, THINK Pascal and THINK C environments of the mid-1980s. Currently macOS programmers can choose between native IDEs like Xcode and open-source tools such as Eclipse and Netbeans. ActiveState Komodo is a proprietary multilanguage IDE supported on macOS.
With the advent of cloud computing, some IDEs are available online and run within web browsers.

Five Best Text Editors

Whether you’re a developer or a writer, a good text editor is a must-have on any computer, in any operating system. The humble text editor is great for managing code, writing down quick notes, or just as a distraction-free writing tool. This week, we’re looking at five of the best, based on your nominations.

Earlier this week we asked you for your favorite text editors, and while you suggested far more than we can highlight here, there were a few that earned more nominations than the others. Here are the tools you liked the best:

Sublime Text

Cross-platform and feature packed, Sublime Text was a crowd favorite in the call for contenders thread, partially because of its amazing feature-set. Plug-ins and add-ons are available for specific programming languages and uses in Sublime Text, the app features extremely powerful search and go-to features, tons of keyboard commands to help you never have to take your hands off the keyboard while you use it, a distraction-free mode that lets you focus right on your work—whatever that work may happen to be, and much much more. Sublime Text has a tabbed interface so you can have multiple documents open at the same time, and a 10,000ft view on the right so you can see where in your document you are at any time. You can select multiple rows to make simultaneous changes, customize shortcuts to suit your own needs, and even chain shortcuts together to perform complex—but fast—operations. It’s remarkably powerful.
Sublime Text is available for Windows, OS X, and Linux. It’s distributed as evaluation software (meaning it’s free to try, but there’s no time limit on how long you can use it for free) and a full license will cost you $70. A full license is per user, so you can use it on as many computers as you like once you have one. In the call for contenders thread, those of you who nominated Sublime praised its impressive feature-set, developer-friendly plug-ins and API, side-by-side file comparisons, and much more. Read all about it in the nomination thread here and here.

Notepad++

Notepad++ has been around for a long time, and many users have only ever used Notepad++ when they’re ready to upgrade from Notepad or Wordpad. It’s stil under development though, and combines the simple interface of Notepad or Wordpad with advanced features that will make writers and developers happy. Some of them include a customizable interface that you can make as minimal or toolbar-rich as you choose, a document map so you can see where you are in your work at any time, a tabbed interface so you can work in multiple documents, auto-completion and text shortening, macro recording so you can customize shortcuts, and more. You also get customizable syntax highlighting, text folding and collapsable parts of the document (to make things easier to read,) and options you can use to launch the app under certain parameters, just to make your work easier.
Notepad++ is free (free as in free speech and free beer) and available for Windows only. You can grab it as an installable app, or a portable app to run from a flash drive or cloud storage service like Dropbox. If you’re not sure exactly what you’re looking for in a text editor, it’s a good place to start, especially because it’s free. You can donate to the project though, and if you enjoy it, you should. The code is available too, so if you’d rather contribute, you can do that as well. Those of you who nominated it praised its simplicity, wealth of plug-ins for just about every type of user, and of course, its price tag. Read all about it in the nomination thread here.

Vim (and Its Iterations)

Oh boy, Vim. Designed to bring the simplicity of Vi to every platform and person who needed a configurable but not-too-heavy text editor, Vim is one banner of the Holy Text Editor Grail Wars to march under. It’s not without good reason—Vim is cross-platform, free, and while it’s aimed squarely at programmers who want an interface they can tweak to their liking and really get some work done in, you don’t have to be a programmer to get the most use out of it. Instead, you just have to take the time to configure it so it works the way you prefer. It won’t hold your hand (although its extensive help is useful for beginners), but once you remember its keyboard shortcuts and commands, download tons of user scripts to apply to it to streamline your work, and learn your way around, it quickly becomes an essential tool. It supports dozens of languages, keeps a history of your actions so you can easily repeat or undo them, supports macro recording, automatically recognizes file types, and lives—once installed—at your command line.
Vim—and most of its iterations, which include editors that add a GUI to the app so you can launch it without resorting to the command line—are free (GPL licensed). It’s available for any operating system with a command line of just about any type, and it’s charityware, meaning instead of paying for the app, the team behind it suggests you donate to children in Uganda who could use the support via the ICCF. Those of you who praised Vim noted that it takes some commitment to learn, but once you’re familiar with it, the sky’s the limit. Read more in the nomination thread here.

Atom

Calling itself a text editor “for the 21st century,” Atom earned a lot of praise in the nominations round for being a text editor designed for the needs of today’s developers. It’s built by the team at GitHub, and incorporates some of the lessons the team there learned by managing so much code on a regular basis. It’s flexible, customizable, themeable, and even though it’s relatively new, it already has a large following and tons of plugins, thanks to its open API. It operates like a native application, and even the application package is customizable so you only get the modules you need. It packs a tabbed interface, multi-paned layout, easy file browser, and easy learning curve so you can get up and running with it quickly. There’s also solid documentation to help you get started if you need it. Only downside though: Atom is currently in private beta, and you’ll have to sign up for an invite and cross your fingers if you want to give it a try.
Atom is currently OS X only (10.8+), although Windows and Linux versions are on the roadmap. It’s also free to use while it’s in beta, but when it’s finished and released, the team behind it says it’ll be “competitively priced.” Those of you who nominated it praised its customizability and available plugins, and pointed to the tool’s potential to become one of the best and most powerful text editors we’ve seen in many many years. You can read more about it in the nominations thread here.
Update 07/2015: Atom has released its first stable, 1.0 version, along with fully supported versions for Windows and Linux! You can check out the details here.

Emacs (and Its Iterations)

If you’ve used an operating system with a command line interface, you’ve had Emacs available to you. It’s been around for decades (since Richard Stallman and Guy Steele wrote it in 1976), and its the other major text editor to stand behind in the Holy Text Editor Grail Wars. It’s not the easiest tool, but it’s definitely one of the most powerful. It has a steep learning curve, but it’s always there, ready for use. It’s had a long and storied history, but the version that most people wind up using is GNU Emacs, linked above. It’s richly featured, too—Emacs can handle almost any type of text that you throw at it, handle simple documents or complex code, or be customized with startup scripts that add features or tweak the interface and shortcuts to match your project or preference. Similarly, Emacs supports macro recording, tons of shortcuts (that you’ll have to learn to get really familiar with it), and has a ton of modules created by third parties to leverage the app for completely non-programming purposes, like project planning, calendaring, news reading, and word processing. When we say it’s powerful, we’re not kidding. In large part, its power comes from the fact that anyone can play with it and mold it into something new and useful for everyone.
Emacs is completely cross platform, with versions and derivatives available for Windows, OS X, Linux, and just about every other operating system on the planet. It’s free, as in both free speech and free beer, and comes with detailed help, tutorials, and guides to help you get started using it if you’re new to using Emacs. Those of you who praised it in the call for contenders thread highlighted its flexibility and power, complete customizability, and the fact that you can play Tetris in it, which is admittedly a nice bonus. You can read all about it in its nominations thread here.

Now that you’ve seen the top five, it’s time to put them to an all-out vote to determine the Lifehacker community favorite.

What's The Best Text Editor (Poll Closed)
 
 
 
 
 
 
 
 
 
 
 
Total Votes: 16,294
Honorable mentions this week go out to TextWrangler (OS X) and UltraEdit (Windows/OS X/Linux). TextWrangler, as BBEdit’s lighter brother, works equally well as a writing tool as it does a development tool, although it’s designed to be the latter. It’s a great general-purpose text editor with an auto-saving cache that keeps all of your data and documents intact even if you don’t save them to disk between launching the application and closing it. UltraEdit on the other hand, is another crowd-favorite and sports a customizable layout, built-in FTP, find and replace that supports regular expressions, syntax highlighting, and more. Plus, it’s cross-platform. They’re both great options that just missed the top five if you want something more than the top five offers.
We really can’t say how many amazing nominees we got in the call for contenders thread this week. If you’re wondering where your favorite editor is, odds are it was nominated back in that thread, so make sure to go check it out. Remember, the top five are based on your most popular nominations from the call for contenders thread from earlier in the week. Don’t just complain about the top five, let us know what your preferred alternative is—and make your case for it—in the discussions below.