Atom 1.9.9 running under the KDE on Ubuntu 16.04

Atom 1.9.9 running under the KDE on Ubuntu 16.04

Text editors (TEs) are essential programs for software developers and programmers in general, as they enable users to write and edit source code or markup files. They are popular tools used by both experienced and novice Linux users. In this post I will compare the various free and open-source text editors available for Linux, with regard to several features and properties of each. It is important to note that I am not an experienced programmer, my experience with programming is limited to mostly MATLAB/GNU Octave scripts, a small handful of Python scripts I wrote for technical computing (that is, numerical analysis), some C/C++ programs I have written and a collection of Shell scripts I have written (mostly to automate some common tasks I perform on Linux).

Also covered in this post are free and open-source integrated development environments (see here for a definition), or IDEs for short, which are essentially text editors with extra tools for programmers. Many of the IDEs compared here I have even less experience with than I do with standard text editors, as I only occasionally need them.

Many high-quality open-source IDEs and TEs will run quite natively on Linux, the most notable exceptions I can think of are Notepad++ and SharpDevelop which, while open-source, will only run on Microsoft Windows. This post is designed to be distribution-agnostic, as I want all Linux users to be able to benefit from it equally. As such, I will not mention distribution-specific commands for installing the programs in question.

Glossary

Acronyms

  • CE: Community Edition. Some programs have both community (usually indicated they are licensed under a GPL-compatible FOSS license) and proprietary (sometimes alternatively named like Ultimate Edition in the case of IntelliJ IDEA) editions.

Command-Line Interface

A command-line interface (CLI) or command-line interpreter is a type of user interface that allows users to interact with their computer by issuing a series of commands. On *nix systems the most common type of CLI are Unix shells such as Bash.

Cross-distribution Packaging Formats

Cross-distribution packaging formats (CDPFs), as their title suggests, are packaging formats designed to run on a wide variety of different Linux distributions (note, however, that I did not say all Linux distributions — there are usually limitations to which distributions they support). This is in contrast to distribution-specific packaging formats (DSPFs) like Debian packages (file extension: .deb) and RPM packages (FE: .rpm), which only work on select few Linux distributions. Notable CDPFs include (each are hyperlinked to their respective section in this glossary):

AppImage

An AppImage (previously known as klik; FE: .AppImage) is a type of CDPF that unlike other CDPFs do not need to be “installed”, rather they merely need to be made executable (with user $  chmod +x <APPIMAGE>) and run with user $  ./<APPIMAGE>. AppImages contain all the required libraries and alike needed to run the program they provide, so they are completely distribution-agnostic. They are my personal favourite CDPF, although they are a pain to build from source code, rather they are usually built from a pre-built binary package (like a Debian or RPM binary). The largest collection of AppImages are provided by Simon Peter (probonopd as he is known on GitHub), the same person that created the AppImage format, you can search these AppImages here at Bintray. AppImages are built using AppImageKit which is written mostly in C, Python and Shell.

Flatpak

Flatpak (formerly known as xdg-app; FE: .flatpak) is a CDPF that has been developed by its own community and runs apps in their own sandbox environment. While it is not officially tied to Fedora or GNOME (according to its own FAQ page), it is better supported by Fedora and GNOME’s Builder IDE has some rudimentary support for Flatpak packaging. Flatpaks are installed using a command-line program invoked by the command flatpak. This program is written predominantly in C (source: flatpak/flatpak GitHub repository) and is dependent on systemd (hence it will not work on distributions without systemd, such as Gentoo Linux or Slackware).

Snap

Snap (FE: .snap) is a CDPF being developed by Canonical Ltd, the same company that sponsors the development of the Ubuntu distribution. Needless to say they are easiest to install on Ubuntu, at least, in my opinion. They, unlike AppImages, are “installed” globally, specifically to the /snap directory on one’s file-system. Snaps are managed by a snap daemon (or snapd for short) that is written in Google’s Go programming language. It too is dependent on systemd, from what I can tell.

Fork

In the field of software development a fork is when software developers take a copy of a project’s source code and start working on it independently of its previous developers. Proprietary software licenses do not usually allow for forks except with the expressed permission of the software’s previous developer(s). In the FOSS community forks are common due to the fact that FOSS licenses permit the creation of forks without the previous developer(s)’s permission.

Graphical User Interface

A graphical user interface (GUI) is a type of interface that allows users to interact with their computer using graphical icons and visual indicators. This is as opposed to command-line interfaces (CLIs) and textual user interfaces (TUIs), in which users interact with the computer by issuing lines of commands or by writing textual responses to prompts. The most notable type of GUI found on many *nix systems is that of a desktop environment like Cinnamon, GNOME, KDE, LXDE, MATE, Xfce, etc.

Integrated Development Environment

An Integrated Development Environment (IDE) is a program that provides users, supposedly comprehensive, facilities for software development. I used the word “supposedly”, to draw attention to the fact that the definition of comprehensive does vary quite substantially from IDE to IDE. IDEs are almost universally also text editors, and it is quite often difficult to distinguish the more feature-packed text editors from IDEs.

IDE Features

IDEs possess several features that are supposed to distinguish them from standard TEs, these features include:

  • In-built implementation support: in other words, the ability to implement (compile or interpret, depending on the programming language) the files being edited or created in the IDE.
  • Project Views: this is my way of saying that usually in IDEs you can navigate the contents of a project folder, editing each file therein without having to open up a new IDE window.

Modes of Communicating with Open-Source Communities

I thought I would provide a brief overview of the most popular ways of communicating with the FOSS communities that develop the various editors mentioned in this post. My personal favourite way of communicating with them is via Gitter, second favourite is GitHub issues, third favourite is by forums (like Atom’s discuss.atom.io, fourth favourite is via IRC channels, fifth is via Bugzilla-style bug trackers and then after that comes mailing lists and even less favourable modes of communication. Gitter is my favourite, as it is real-time communication, just like in IRC, but unlike IRC Gitter logs past messages, so you do not miss anything that was said when you were not online. Its only real disadvantage, in my opinion, is that it is not open-source, although it is a free service. GitHub issues and Bugzillas are only useful when discussing bugs or feature requests, so there is a clear limitation there. Forums, in my experience, are amongst the slowest modes of communication between community members, as are mailing lists. I dislike mailing lists because depending on their traffic they can get irritating in that you get emails from everyone in the list and a lot of the time the topics discussed will not be of interest to you.

Text Editor

A Text editor (TE) is any program that can be used to edit text files, they are particularly invaluable to computer programmers because they can be used to edit software source code or document markup.

Unix Shell

A type of command-line interpreter, that takes commands written in their own type of command language (known as shell script, which is specific, its dialect, to the particular variety of Unix shell being used) and converts them into actions performed by the shell (such as moving, renaming, copying, deleting or editing files, usually with the help of command-line programs such as the GNU Coreutils, along with several other actions). As the title “Unix shell” suggests, they are designed specifically for *nix systems like Linux. Examples include Bash (Bourne Again Shell), Csh (short for C Shell), Tcsh (TENEX C Shell) and Zsh.

Wine

Wine (which is abbreviated from the recursive acronym, Wine Is Not an Emulator), is a free and open-source compatibility layer application that allows users to run Windows applications on *nix systems such as Linux. Not all Windows applications can be run in Wine (I would argue that most cannot, in fact), but some can.

Comparisons

An ideal or perfect IDE or text editor would be one with the following features:

  • Syntax highlighting for every computer language available (computer language includes programming languages (such as C, C++, JavaScript, Lua, Python, etc.), markup languages (such as HTML), style sheet languages (like CSS), etc.)
  • Autocompletions (also known as intellisense) for every computer language available.
  • Linting (or line-by-line error checking) for every computer language available.
  • Be extensively customizable (or some would say "hackable"), with user-supplied scripts and style sheets.
  • Be accessible to inexperienced users and experienced users alike.
  • Be free and open-source (licensed under either a permissive (e.g., MIT) or copyleft (e.g., GNU GPL) license).
  • Be able to run on any operating system platform.
  • Has keyboard shortcuts (such as Ctrl+C for copy or Ctrl+V for paste) that are intuitive and easily editable.
  • Be fast to start and use minimal system resources to run.
  • Be stable, not likely to crash or experience other bugs. As part of this, the text editor should also have a community of developers to help with rapid and effective troubleshooting whenever an issue arises.

In line with this, each section in which I discuss a particular IDE or text editor (TE) will have the following sections:

  • Background: relevant history and technical details of the TE/IDE.
  • Customizability: How customizable is the TE. Are there themes, plugins, extensions, etc. available for the TE? Is it possible to customize the TE/IDE with user-supplied scripts.
  • Features: What other features does the TE/IDE have? Like how many different computer languages does it offer syntax highlighting and auto-indentation for.
  • Obtaining It: How easy is it to obtain this TE/IDE on Linux. As the answer to this question is heavily dependent on the specific distribution one is on and I want this post fairly distribution-agnostic I will discuss this generally. Not all editors will have this section.
  • Advantages (Pros)/Disadvantages (Cons): this is where I will summarize the positive and negative points of the previous sections as well as discuss how easy it is to use the TE.
  • Summary: this is where I provide a numerical rating for each of the following points (from 0 to 10, 0 being awful/non-existent, 10 being perfect):
    • Availability: how easy it is to get the TE/IDE on Linux. A score of 10 would mean that the TE/IDE is pre-installed on some Linux distributions. While a score of 8 denotes that the TE/IDE, while it does not come pre-installed on any distributions I am aware of, it can be easily installed on most distributions using one's package manager.
    • Beginner-friendliness: how steep is the learning curve of using this TE/IDE? That is, how difficult would it be for me, a non-programmer, to get to know this TE/IDE enough to write scripts in it, within an hour of first trying it?
    • Customizability: how easily and extensively customizable the TE/IDE is.
    • Features: how extensive is the TE's syntax-highlighting cover of computer languages (that is, what proportion of computer languages can the TE/IDE do syntax highlighting for?). Does the TE/IDE also have IDE-type features such as in-built Python terminal, or shell terminal, etc?
    • MEWI: how much experience with this TE/IDE do I have? 1 will indicate I have no experience with the TE/IDE, aside from that required to get the screenshot at the start of this review. Consequently, all information in this review will be based on my background research using sources such as the program's homepage.
    • System resource usage (SRU): how much CPU/RAM does this TE/IDE use? How much disk space does it take up? How much brandwidth is taken up downloading it? All Manjaro-related information in this section will be specific to the 64-bit version of this OS. Yet again I will be using ps_mem to assess RAM usage on both Manjaro and Sabayon.
    • Overall: overall how satisfied am I with this TE/IDE?

Aptana Studio

Aptana Studio 3.6.1 running on Arch Linux

Aptana Studio 3.6.1 running on Arch Linux

Background

Aptana Studio
Developer(s): Appcelerator, Inc.
License: Aptana Public License, GPL
Category: Web development IDE.
Written in: Java, JavaScript.
GitHub Repository: aptana/studio3
Forks:
Stargazers:
Watchers:

Aptana Studio is an open-source IDE for web development that is built on Eclipse. There is not much content to this section as firstly, I am not really all that interested in web development myself, hence have hardly used it and secondly as it is built on Eclipse it should share most of its properties.


Customizability

I have not used it, so I do not know how to customize it, but I would imagine any customization would be via plugins, much like its base, Eclipse, is customized.

Features

Its features are mostly web-oriented.

Obtaining It

It is not in the official repositories of most distributions.

Summary

  • Availability: <6.
  • Beginner-friendliness: ~7. Have not used it sufficiently to really know.
  • Customizablity: ~7.
  • Features: ~7.
  • MEWI: 1.
  • System Resource Usage: 1-2. Aptana Studio 3.6.1 takes up 141.80 MB space when installed from the aptana-studio-3.6.1-3 package in the AUR on Arch Linux. It also gave the following ps_mem table:
  • Overall: ~7.

Atom

Atom 1.9.9 running under KDE on Ubuntu 16.04

Atom 1.9.9 running under KDE on Ubuntu 16.04

Background

Atom

Release Date: June 2014.
Country of Origin: U.S.A.
Developer(s): GitHub, Inc.
License: MIT.
Category: General-purpose text editor.
Written in: CoffeeScript, CSS, JavaScript and Less.
GitHub Repository: atom/atom
Forks:
Stargazers:
Watchers:

Atom (here is its GitHub Repository) is a free and open-source (licensed under MIT) text editor developed by GitHub, Inc. Its first public release was in 2014, although its first stable release (1.0 release) was not until June 2015. It is unusual amongst the text editors listed here in a few different ways, firstly, its target audience is very wide with it being designed to be usable for inexperienced programmers as well as seasoned programmers and software developers. Secondly, it is written in CoffeeScript, HTML, JavaScript and Less — computer languages usually used to write web pages.

Customizability

[Atom Packages Repository Homepage](https://atom.io/packages), note the current count of packages is 3,433 in this screenshot.

Atom Packages Repository Homepage, note the current count of packages is 3,433 in this screenshot.

Atom is very customizable, via a grand total of over 6,320 themes and plugins that can be installed from the command-line, using the apm command, or from within Atom itself. I personally prefer the command-line, as I have had some bad experiences with the built-in installer. From the command-line the command for installing new themes or plugins is:

user $  apm install <PACKAGE>

where <PACKAGE> is the plugin/theme’s name. Customizations, including plugins and themes are stored in ~/.atom. Advanced customization (for example, of keyboard shortcuts) must be done by directly editing files in this directory. For example, in order to edit your keyboard shortcuts you need to edit ~/.atom/keymap.cson. A guide on how to do this can be found in Atom’s Flight Manual. For example, to help me write this blog I have been using the following ~/.atom/keymap.cson:

this is helpful because in order to bold text in a markdown file I merely need to select the text and press Ctrl+B. It also means that when I am editing HTML files, in order to wrap the code to make it easier to read, I merely press Ctrl+Alt+S.

Features

Atom has plugins for syntax highlighting and auto-indentation of most major computer languages including (each language is hyperlinked to its respective package description page, if and only if, said package does not come preinstalled on Atom):

and several others. It has packages that provide other features, including previews for markup languages such as HTML and Markdown (which comes preinstalled with Atom) and one that turns Atom into an excellent markdown writer. One package can even enable one to run Jekyll (the static site generator used to power The Hornery) from within Atom, I personally avoid it due to the fact it continuously creates popups whenever one saves any changes to a file in one’s Jekyll site directory and instead I use the terminal-fusion package to run Jekyll from within a terminal in Atom. This also gives me more detailed debugging information when issues are encountered on my site. These packages make it very convenient for me to write The Hornery in Atom, which I have since The Hornery’s inception.

Atom can also gain code linting and autocompletion capabilities via the installation of packages. Packages with the linter- prefix are, as you can guess, linters and the linter package must be installed in order for, at least most of them, to work. For instance, linter-clang, provide linting for C/C++/Objective-C/Objective-C++ files. Some autocompletion packages come pre-installed with Atom, although most autocompletion capabilities must be added via installing extra packages. Autocompletion packages usually have the autocomplete- prefix. For example, for C/C++/Objective-C/Objective-C++ code autocompletion I would recommend installing the autocomplete-clang package.

Atom also has packages that give it IDE capabilities, including compiling and interpreting source code files from within Atom’s own interface as well as the ability to run git commands from within Atom (the later is provided by git-plus). It also has a package (mercurial) that provides support for managing Mercurial (hg) repositories, support for GNU Bazaar and Subversion repositories, from my understanding, is not yet available. I personally have installed the script package for the purpose of running Python scripts from within Atom, C/C++ developers may also wish to install the build, build-tools or gpp-compiler packages. One can also do Gentoo/Sabayon development in Atom using the language-gentoo package, specifically it is helpful in maintaining Portage overlays as it can create and update manifests without the need for opening up a terminal. It also provides syntax highlighting for ebuilds.

One package I like, that I would recommend if you wish to use Atom on more than one PC, but with the same packages on each PC, is package-sync. It reads a file, ~/.atom/packages.cson, and when it is run, it will install all packages listed in this cson file. To save all my Atom customizations (in ~/.atom) I use this GitHub repository. In it you can find my package.cson, keymap.cson, etc.

Obtaining It

Atom is not in the official repositories of most distributions, with the exceptions of Arch Linux, Gentoo Linux, Manjaro Linux and Sabayon Linux. Official 64-bit Debian and RPM builds of Atom are available from its releases page on GitHub. Atom has an AppImage, which supports all 64-bit Linux platforms: here is its description page. I have also created my own shell script installer for it, atom-installer.

Advantages (Pros)

  • Easily and extensively customizable. Customization beyond that afforded by plugins provided by the Atom community must be done via writing plugins or scripts in CoffeeScript or JavaScript.
  • Intuitive and easy to learn.
  • Support for a wide range of different computer languages.
  • Displays directory structure in (left) side panel.
  • Very feature-packed, so feature packed it can be used as both a text editor and an IDE.

Disadvantages (Cons)

  • Slow to start, although with the release of version 1.3.0 the start time has been supposedly cut by 20-30%.1 I personally have not noticed any such improvement, although I cannot say for certain I would even if there was such an improvement.

Summary

  • Availability: 7-8. Available from the official repositories of some distros, distributions who's official repositories it is not in usually have official binary releases for download from the Atom website.
  • Beginner-friendliness: ≥8. It is easy for beginners to use it, as it uses the same keymap as several basic text editors like gedit and Notepad.
  • Customizability: 8. It is totally customizable, for those with the skill and time. For lay persons its customizability is more limited, to customization with available packages and themes.
  • Features: 8. Most computer languages are covered by Atom's syntax highlighting plugins, but some are not, for example, it does not yet have support for desktop configuration files.
  • MEWI: ≥8. It is my default text editor.
  • System Resource Usage: 2-3. On Sabayon, Atom 1.3.2 is a 63.1 MB download, when it is installed it takes up a total space of 196.2 MB. Here is my ps mem table for running Atom 1.3.2 under MATE: on Manjaro Linux with version 1.3.2 of Atom I got this ps_mem table: and Atom 1.3.3 is a 201.1 MB program when installed. As for its download size well it is difficult for me to ascertain as the source code tarball is a 7.9 MB download for version 1.3.3, but as this package is installed from the AUR this means that the source code must be compiled too, which in itself also requires some downloading to occur.
  • Overall: 8-9. It is my favourite text editor, but it is still early days, its System Resource Usage and boot time are issues that are being worked on, new packages and themes are created every week.

Bluefish

Bluefish running under LXDE

Bluefish running under LXDE

Background

Bluefish

Country of Origin: Netherlands.
Developer(s): Bluefish Dev Team
License: GPL.
Category: Web development IDE.
Written in: C.
SourceForge Project(s): bluefish

Bluefish is a text editor, primarily intended for web development and programming, as it provides syntax highlighting support and other features mostly for web markup, programming and style sheet languages.


Customizability

I have limited experience with Bluefish but from what I can gather, it is customizable, although I cannot comment on how extensive this customizability is.

Features

Syntax highlighting is available for almost (if not all) all computer languages used in web development.

Obtaining It

Bluefish is in the official repositories of most distributions.

Advantages (Pros)

  • Customizable.
  • Has features that would appeal to a web developer.

Disadvantages (Cons)

  • Support for non-web markup/programming languages is less than adequate.

Summary

  • Availability: 8. Easily available for installation via one's package manager on most distributions.
  • Beginner-friendliness: >4. Its keyboard shortcuts are intuitive (e.g., Ctrl+C to copy), beyond this my experience with it is not extensive enough for me to comment.
  • Customizability: >4. It is customizable, but as I do not have much experience with this text editor, I do not know just how customizable it is.
  • Features: >7. It is possible to do compiling and use integrated development environment (IDE)-type features.
  • MEWI: 2. Fairly little experience with it, as I am not really into web development.
  • System Resource Usage: 5. Bluefish (2.2.7) is a 3.1 MB download with Entropy and takes up 9.5 MB HDD space when installed. This is my ps mem table on Sabayon: while on Manjaro Bluefish 2.2.7 is a 2.5 MB download and takes up 9.2 MB when installed. On Manjaro I got this ps_mem table:
  • Overall: ~7. Cannot be too confident as to this rating without using this text editor more.

Brackets

Brackets 1.6

Brackets 1.6

Background

Brackets

Release Date: November 2014.
Country of Origin: U.S.A.
Developer(s): Adobe Systems.
License: MIT.
Category: Web development IDE.
Written in: CSS, HTML and JavaScript.
GitHub Repository: adobe/brackets
Forks:
Stargazers:
Watchers:

Brackets is a text editor developed by Adobe Systems that is primarily intended for web development. It is built on the Electron framework and written in web languages.


Customizability

It is extensible via plugins, although I have limited experience with Brackets (as I am not much of a web developer).

Features

It is designed to be used for web development, so its features are mostly web-oriented. I have limited experience with it, however, so I cannot really comment on the extent of these features.

Obtaining It

It is in the official repositories of no Linux distributions I am aware of. Official Debian binary releases are available from the Bracket’s release notes page at GitHub. Unofficial RPM builds are available from the Mosquito Copr repository. There is also an AppImage build of it, which can be used to run Brackets, without installing it, on a variety of other Linux distributions.

Advantages

  • Fairly easy to obtain on Linux thanks to its AppImage build.

Disadvantages

  • Buggy. I personally have found it more buggy than other IDEs/text editors built on the Electron framework I have experience with.

Summary

  • Availability: 8.
  • Beginner-friendliness: 8.
  • Customizablity: 8.
  • Features: 7.
  • MEWI: 2.
  • System Resource Usage: 3. Installed size for 1.7 on Arch Linux is 139.12 MB and here is its ps_mem table: .
  • Overall: 8.

Code::Blocks

Code::Blocks 16.01 running under Ubuntu 16.04

Code::Blocks 16.01 running under Ubuntu 16.04

Background

Code::Blocks
Release Date: 2005.
Developer(s): The Code::Blocks team.
License: GPLv3.
Category: C/C++ IDE.
Written in: C++.

Code::Blocks is a free and open-source cross-platform IDE for C, C++ and Fortran, that is written predominantly in C++ and to a lesser extent C. Its GUI is based on the wxWidgets toolkit. It is compatible with a wide range of different compilers, including GCC, Clang and Visual C++. Its development began ca. 2004.2


Customizability

It is extensible through plugins3, although I have limited experience with this program so I cannot really comment any further on this.

Features

It provides many of the advanced features of text editors like syntax highlighting, code folding, code completion, etc. for C, C++, Fortran and XML files.

Obtaining It

It is found in the official repositories of most distributions. The only notable exception is Debian (stable)’s official repositories, which lacks Code::Blocks, although the testing and unstable branches do have Code::Blocks builds.

Advantages (Pros)

  • Cross-platform and able to run on Windows, OS X and Linux.
  • Fairly lightweight.
  • Feature-packed.
  • Has code linting for its three supported languages.
  • Easy to install on both distributions.

Disadvantages (Cons)

  • Only supports three programming languages: C, C++ and Fortran.
  • Fairly infrequently updated. New releases come out once every few years.

Summary

  • Availability: 8.
  • Beginner-friendliness: 9.
  • Customizability: >7. Can be customized, although there are limitations to this.
  • Features: 8.
  • MEWI: 3.
  • System Resource Usage: 4-5. Under Manjaro it is a 10.0 MB download and takes up 36.6 MB when installed. Here is my ps_mem table under Manjaro: . Under Sabayon, it is a 17.3 MB download and takes up 56.3 MB when installed. Here is my ps_mem table under Sabayon:
  • Overall: 8.

CodeLite

CodeLite 9.0.0 running under Manjaro

CodeLite 9.0.0 running under Manjaro

Background

CodeLite

Developer(s): Eran Ifrah.
License: GPLv2
Category: C/C++/PHP/Node.js IDE.
Written in: C++.
GitHub Repository: eranif/codelite
Forks:
Stargazers:
Watchers:

CodeLite is a lightweight IDE for C, C++, PHP and Node.js that is written in C and C++. It does not support any other programming languages, besides these four. I personally have found it a nuisance to use, as its interface does not include a button to click in order to compile and/or run your C/C++ program. Plus I have found it a challenge to figure out how to build a program in it anyway.


Customizability

I have limited experience with CodeLite, so I cannot really comment with confidence on its customizability, but from what I understand it is designed to be lightweight and their website does not really mention any plugins or other customizations.

Features

It is fairly feature-packed (including git, subversion, GUI-building, etc. support) for the programming languages it supports.

Obtaining It

CodeLite is in the official repositories of some distributions. Although it can be found in the unofficial repositories of some distributions. Distribution’s who’s official repositories do not contain it:

  • Arch Linux
  • Fedora
  • Gentoo Linux
  • Mageia
  • Manjaro Linux

While:

  • Debian (6.1.1 — stable; 9.2 — unstable)
  • openSUSE (8.1)
  • Sabayon (4.1.5770)
  • Ubuntu (9.1)

have CodeLite in their official repositories, but fairly outdated versions as of 29 August 2016 (with the precise latest available version listed in brackets after their name).

Advantages (Pros)

  • Cross-platform able to run on Windows, OS X and Linux.
  • Fairly lightweight for an IDE.
  • Feature-packed.

Disadvantages (Cons)

  • Support for only four programming languages.
  • Not in the official binary package repositories for either Manjaro or Sabayon.

Summary

  • Availability: 6. Not available in either distribution's official repositories, but can be installed via unofficial channels.
  • Beginner-friendliness: 7.
  • Customizability: <5.
  • Features: >8.
  • MEWI: 3.
  • System Resource Usage: 4. The source code tarball of CodeLite 9.0 is about 69.5 MiB in size and as neither of these distributions have any binary packages from which CodeLite 9.0 can be installed, I cannot really say its installed size on Sabayon, while on Manjaro its size is 38.5 MiB. My ps_mem table on Sabayon is: while here is my ps_mem table on Manjaro:
  • Overall: 7-8. The fact it only supports these four programming languages is a weakness in my books.

Eclipse

Eclipse 4.6.0 running under Ubuntu 16.04

Eclipse 4.6.0 running under Ubuntu 16.04

Background

Eclipse

Release Date: November 2001.
Developer(s): Eclipse Foundation.
License: Eclipse Public License.
Category: General-purpose IDE.
Written in: Java.

Eclipse is a free and open-source Integrated Development Environment (IDE) written in Java, that is primarily used for programming in C, C++, Java and PHP, although it is possible to program in other languages (such as D, Lua, Perl and Python) using it too. These other languages usually require the installation of additional plugins, such as PyDev for Python. It features in-built support for several compilers and interpreters and has autocomplete/linter integration.


Customizability

I do not have enough experience with Eclipse to make any comment on its customizability, but I do know that extra functionality is usually added using plugins.

Features

Eclipse features a text editor with syntax-highlighting, debugging, linting and auto-complete support for most programming languages, in-built support for several compilers and interpreters, it also supports the use of project views, etc.

Obtaining It

It is available from the official repositories of many Linux distributions, although some distributions hold outdated versions of Eclipse in their official repositories. For example, Ubuntu 16.04 LTS holds Eclipse 3.8.1 in its official repositories, even though the latest version of Eclipse as of 29 August 2016 is 4.6.0. Likewise Debian (stable) and all other branches (such as unstable and testing) have, at latest, the 3.8.1 version of Eclipse. While Fedora 24 has 4.6.0 in its official repositories. Not surprisingly Arch Linux and Manjaro Linux have Eclipse 4.6.0 in their official repositories. Neither Gentoo nor Sabayon have an Eclipse binary package in their official repositories. Although the unofficial necromancy-overlay overlay provides an up-to-date build of Eclipse. Eclipse is not present in the official repositories of openSUSE, although the eclipse-classic package is present in the home:marec2000 repository.

I have created a 64-bit cross-distribution AppImage for Eclipse 4.6.0 (which is a 185.5 MB download), if anyone is interested in trying it out. There are also cross-distribution binary tarball releases of Eclipse that can be downloaded, extracted and the binary file (entitled eclipse) inside executed, without need for the program to be installed.

Advantages (Pros)

  • Written in Java, so it is incredibly cross-platform. Any Java-capable platform should be able to run Eclipse without a problem.
  • Has a cross-distribution 64-bit AppImage.
  • Easy to install, using the new installer.
  • Fairly intuitive to use.

Disadvantages (Cons)

  • Most distributions either do not have it in their official repositories or keep fairly old versions in their official repositories.
  • Fairly heavy on system resource usage.
  • Slow to boot.
  • Extra plugins are required in order to program in other programming languages.

Summary

  • Availability: 8. Available for some distributions from their official repositories, but not all. But it is written in Java so you can run it without installing it. Plus its AppImage is a plus, in my books.
  • Beginner-Friendliness: 8.
  • Customizability: 8.
  • Features: 8.
  • MEWI: 3.
  • System Resource Usage: 1-2. The new installer is a 43.6 MB download and when installed Eclipse should take up at least 110 MB (exact figures are not available). Eclipse 4.5.1 (Java edition) ps_mem table on Sabayon is: On Manjaro it (specifically eclipse-common, which is the bare minimum of the IDE) is 108 MB, when installed, download size is 99.5 MB and this is my ps_mem table:
  • Overall: 8. Its high SRU is a significant disadvantage.

GNU Emacs

GNU Emacs running under Moksha

GNU Emacs running under Moksha

Background

GNU Emacs

Release Date: March 1985.
Country of Origin: U.S.A.
Developer(s): GNU Projects.
License: GPLv3.
Category:
Written in: C, Emacs Lisp.
GitHub Repository: emacs-mirror/emacs
Forks:
Stargazers:
Watchers:

GNU Emacs is an extensively-customizable text editor that is developed as part of the GNU Project. Its original developer was Richard Stallman, the founder of the GNU Project and its first release was in 1985. It belongs to a family of text editors called Emacs, which are text editors that are extensively customizable for users with sufficient programming knowledge. Emacs is abbreviated from Editor Macros, which refers to its origin as editor macros for the TECO text editor, that were developed, in part, by Richard Stallman. GE is written in C and Emacs Lisp (ELisp), a dialect of the Lisp programming language devised just for GE. ELisp is used to write extensions and provide extra functionalities for GE and related text editors like XEmacs.


Customizability

GE is one of the most customizable text editors available, but much of this customization must be done via writing code in ELisp, which limits much of this customization to advanced users only. One customization of note that is available is the plugin of Spacemacs, it provides Vim-like features, as well as some theming to Emacs.

Features

GNU Emacs provides syntax highlighting for dozens of different computer languages, along with several features of IDEs like shell access, compiling code, using git from within GE, etc. The app-emacs Portage category contains several plugins for GNU Emacs on Gentoo.

Obtaining It

GNU Emacs is available from the official repositories of most Linux distributions. If your distribution, for whatever reason, does not have Emacs in its official repositories you can install it using this 64-bit Snappy package. Here is a 64-bit AppImage for GNU Emacs 25.1.

Advantages (Pros)

  • Extensively customizable.
  • Heavy on features, especially for advanced users that can extend it using ELisp.
  • Provides syntax highlighting for dozens, if not hundreds, of computer languages.
  • Has its own Wiki, manual and other documentation.

Disadvantages (Cons)

  • Has a steep learning curve for newcomers, hence making it inaccessible to newcomers to Linux and programming, in general.
  • Has an unconventional keymap, which can take some time to learn. For example, to cut text you use Ctrl+W, as opposed to the usual Ctrl+X, while to paste text you use Ctrl+Y.

Summary

  • Availability: >8. Found in the official repositories of most distributions.
  • Beginner-friendliness: ≤5. Not particularly difficult for a newcomer to use as a basic text editor, but any further usage requires extensive knowledge of ELisp. Super-efficient use also requires one to learn its unconventional keyboard shortcuts.
  • Customizability: >9. Extensively customizable for all those that understand ELisp sufficiently.
  • Features: >9. It is one of the most feature-packed text editors available today.
  • MEWI: 3. Used to use it when it was the default TE of GNU Octave. Like Vim, I have found it fustrating in its unconventional keybindings.
  • System Resource Usage: 7-8. Emacs 24.5 is a 35.8 MB download and takes up 142.2 MB HDD space when installed. Fairly lightweight as far as text editors go, RAM-wise. Here is my ps mem table: on Manjaro Linux, GNU Emacs 24.5 is a 36.3 MB download and takes up 99.4 MB when installed and gave this ps_mem table:
  • Overall: 8. It is a very powerful text editor, but to me, its lack of customizability by those that do not understand ELisp is a significant disadvantage.

Eric Python IDE

Eric 6 running under Manjaro Linux

Eric 6 running under Manjaro Linux

Background

Eric

Release Date: 2002.
Country of Origin: Germany.
Developer(s): Detlev Offenbach.
License: GPLv3.
Category: Python IDE.
Written in: Python.
SourceForge Project(s): eric-ide

Eric is a free and open-source IDE that is developed by its own community of donation-sponsored developers. It is written in and used to program in Python. As of Eric version 6, it supports both Python 2 and Python 3.


Customizability

Eric has an extensive in-built plugin system. These plugins can be installed from within Eric’s interface by going to “Plugins→Plugin Repository” and selecting the required plugin. I have limited experience with it so I cannot comment on its customizability.

Features

Its features include support for managing Mercurial, Subversion and Git repositories, an integrated Python debugger, an interactive embedded Python shell with syntax-highlighting, syntax-highlighting for its text editor component, code autocompletion, etc.

Obtaining It

Eric is found in the official repositories of most Linux distributions, including (but not limited to):

  • Arch Linux
  • Debian (unstable)
  • Fedora
  • Gentoo Linux
  • Manjaro Linux
  • openSUSE
  • Sabayon Linux
  • Ubuntu

Advantages (Pros)

  • Cross-platform.
  • Supports both Python versions.
  • Feature-packed for Python developers.
  • Lightweight.

Disadvantages (Cons)

  • The latest version is not available via the usual channels on Sabayon.

Summary

  • Availability: 6-7.
  • Beginner-friendliness: 8.
  • Customizability: 8.
  • Features: 9.
  • MEWI: 2.
  • System resource usage: 8. On Manjaro its net download size is 8.1 MB and installed size of 46.6 MB, with a ps_mem table: . Under Sabayon, its installed size is 58.36 MB, the ps_mem table I got is: .
  • Overall: 8.

Geany

Geany 1.24.1 running under Moksha

Geany 1.24.1 running under Moksha

Background

Geany
Release Date: October 2005.
Country of Origin: Germany.
Developer(s): Geany Development Team.
License: GPLv2.
Category: General-purpose IDE.
Written in: C, C++.
GitHub Repository: geany/geany
Forks:
Stargazers:
Watchers:

Geany is a lightweight GTK+ and Scintilla-based text editor with basic IDE-type features that was originally developed by Enrico Tröger in 2005. It is licensed under GNU GPLv2.


Customizability

The ~/.geany directory is where customizations are kept. This customization can be made with code snippets (written in HTML, LaTeX, PHP and Python), plugins, themes, etc.

Features

Geany provides auto-indentation and syntax-highlighting for over a dozen different computer languages. Geany has an embedded terminal emulator. Several extra features can be added to Geany, using plugins. It has out-of-the-box support for projects written in the following programming languages:

  • C
  • C++
  • D
  • Erlang
  • HTML
  • Java
  • Pascal
  • PHP
  • Python
  • Ruby
  • TeX
  • Vala

Advantages (Pros)

  • It has a few IDE-type features.
  • It is fairly lightweight.
  • It is cross-platform, hence if you switch from Sabayon to another OS fairly frequently, it should not be too difficult to get Geany on said OS.
  • Keyboard shortcuts are fairly intuitive.

Disadvantages (Cons)

  • The list of supported computer languages, for syntax-highlighting and other features is fairly small, compared to Atom, Gedit, GNU Emacs and Vim. See for example, the screenshot below, showing allowed file types.

Obtaining It

It is found in the official repositories of most Linux distributions. It also has an AppImage package, granted it is fairly out-of-date (version 1.24.1 vs. the latest version of 1.28) as of 29 August 2016.

Summary

  • Availability: 8. Most repositories have Geany in their official repositories
  • Beginner-friendliness: 8. It seems fairly user-friendly, as its keyboard shortcuts are fairly intuitive.
  • Customizability: 7? My experience with this TE is too limited for me to be confident with this rating.
  • Features: 8.
  • MEWI: 2. Fairly minimal, I have attempted to use it as a Python IDE, with limited success.
  • System Resource Usage: 8. Geany 1.24.1 is a 3.4 MB download and takes up 9.8 MB HDD space when installed. Here is my ps mem table (remember I have neglected to include the RAM used by the embedded terminal emulator): while under Manjaro Linux Geany 1.26.2 is a 2.9 MB download and takes up 10.9 MB when installed. Geany 1.26.2 also gave this ps_mem table under Manjaro:
  • Overall: 8. Seems fairly good.

gedit

gedit running under Moksha

gedit running under Moksha

Background

gedit

Release Date: February 1999.
Developer(s): GNOME.
License: GPLv2.
Category: General-purpose text editor.
Written in: C, Python.
GitHub Repository: GNOME/gedit
Forks:
Stargazers:
Watchers:

gedit is a GTK+ based text editor that is one of the core applications of GNOME. In my opinion, it is the second most advanced text editor (after Kate) that is part of a desktop environment’s core application suite. It is also more advanced than Windows’ Notepad and Wordpad text editors. Despite this it is also beginner-friendly and uses a standard keymap.


Customizability

gedit is able to be customized, although from what I have gathered from reading its Wiki, customization options are limited as it does not seem to support advanced customization (via editing configure files, for example), rather there are some themes and plugins available but the plugins seem fairly limited.

Features

It supports syntax highlighting of several computer languages, including Desktop Configuration files (.desktop or .directory), MATLAB, MediaWiki, GNU Octave, Scilab and shell script, just to name a few I know are absent in a few basic text editors. Although it does not support syntax highlighting for PyMOL or SageMath, so I would not say its syntax highlighting is as extensive as Atom’s or Vim’s.

Advantages (Pros)

  • Light on resources usage.
  • Intuitive to use.
  • Easy to obtain on Linux.

Disadvantages (Cons)

  • Customization options, beyond with a limited set of available themes and plugins, are limited.
  • Fairly light on features, beyond syntax highlighting.

Obtaining It

The vast majority of Linux distributions have gedit in their official repositories. If the distribution has the GNOME desktop environment in their official repositories they should also have gedit as it is a core application for GNOME.

Summary

  • Availability: >8.
  • Beginner-friendliness: >8.
  • Customizability: 6.
  • Features: 8.
  • MEWI: 3. I have used a few times, usually when I am using GNOME.
  • System Resource Usage: 7. Its Entropy package (3.16.3) size is 2.4 MB, while when installed it takes up 11.5 MB HDD space. Here is my ps mem table: under Manjaro Linux gedit is a 2.1 MB download and takes up 14.2 MB when it is installed. On Manjaro Linux version 3.18.2 of gedit gave this ps_mem table:
  • Overall: 8.

IntelliJ IDEA CE

IntelliJ IDEA Community Edition 15.0.2 running under Manjaro Linux

IntelliJ IDEA Community Edition 15.0.2 running under Manjaro Linux

Background

IntelliJ IDEA CE

Country of Origin: U.S.A.
Developer(s): JetBrains.
License: Apache License 2.0.
Category: Java IDE.
Written in: Java.
GitHub Repository: JetBrains/intellij-community
Forks:
Stargazers:
Watchers:

IntelliJ IDEA CE, which I will abbreviate as IJCE, is a free and open-source IDE developed by JetBrains that is designed specifically for Java development. It is the free counterpart to a proprietary IDE (called IntelliJ IDEA Ultimate Edition) that is more feature-packed with support for several additional programming languages, including Python. Its support for programming languages is extended by use of plugins — the ultimate edition can even get a Python plugin that will provide it with all the features of PyCharm Professional Edition, which is also developed by JetBrains.


Customizability

IntelliJ IDEA’s customizability is something I really cannot comment on, but I would imagine it is not very customizable due to the fact that this would defeat the purpose of JetBeans creating a community edition, which is to tempt users to buy the proprietary, Ultimate Edition, with the extra features it has as opposed to the community edition.

Features

Its features is something I cannot really comment on as I have limited experience with it, but it does not support any programming languages beyond a limited set including and related to Java like the Groovy programming language.

Obtaining It

IntelliJ IDEA CE is not in the official repositories of many Linux distributions, although binary tarballs for it are available that can be used to run IntelliJ IDEA CE without installing it. An AppImage for it exists.

Advantages (Pros)

  • Easy to install on any Linux platform.
  • Cross-platform.

Disadvantages (Cons)

  • Cannot be installed via the usual methods on most distributions.
  • Limited set of features and supported languages.

Summary

  • Availability: 6. Not available in the official repositories of most distributions, but it is fairly easy to install the latest version from the official binary tarball releases.
  • Beginner-friendliness: 8? Seems fairly beginner-friendly.
  • Customizability: 6? Never used it, just guessing at its customizability.
  • Features: 6? Never used it, beyond to just take a screenshot of it.
  • MEWI: 1.
  • System Resource Usage: 1. The binary tarball for 15.0.2 is a 220 MB download, takes up about 450 MB when installed. This is my ps_mem table on Manjaro: Here is my ps_mem table under Sabayon:
  • Overall: 8.

jEdit

jEdit 5.2.0 running under Moksha

jEdit 5.2.0 running under Moksha

Background

jEdit

Release Date: 1998.
Developer(s): jEdit project.
License: GPLv2.
Category: General-purpose text editor.
Written in: Java.
SourceForge Project(s): jedit

jEdit is a Java-based text editor that began life in 1998, when Slava Pestov started developing it. Pestov later left the project in 2006, when he handed the reigns to the free software community. jEdit provides syntax highlighting for dozens of computer languages so far, and can be customized using scripts written in a variety of different programming languages such as JavaScript and Jython. As it is written in Java it can run on any Java-capable platform, including Linux.


Customizability

It is extensively customizable, via scripts in supported languages. Several plugins, that provide extra functionality, are available via a built-in plugin installer (under the “Plugins” menu).

Features

As previously mentioned auto-indentation and syntax-highlighting support exists for a long list of computer languages. Plugins with extra IDE-like capabilities also exist, including a plugin for using git from within jEdit, another for using a Jython interpreter from within jEdit, another for a Python shell, etc.

Obtaining It

It is found in the official repositories of many distributions, but as it is written in Java it is fairly easy to run it without installing it. Official Debian and Slackware builds of jEdit are available from its website.

Advantages (Pros)

  • Easy to obtain it on Linux.
  • Extensively customizable.
  • Has intuitive keyboard shortcuts.
  • Written in Java, hence can run on most platforms, if you end up switching to a new operating system in the future.
  • User-friendly.

Disadvantages (Cons)

  • Heavy on system resources.

Summary

  • Availability: 8.
  • Beginner-friendliness: 8. Fairly beginner-friendly, but extra functionalities beyond that available via existing plugins must be added using self-made scripts.
  • Customizability: >8. Very customizabile.
  • Features: 8. Extensive auto-indentation and syntax-highlighting support for a range of computer languages, as has some IDE features.
  • MEWI: 2. Not too much experience as it is quite SRU-heavy and is not feature-packed enough to justify me putting up with its SRU.
  • System Resource Usage: 3. jEdit 5.2.0 is a 2.6 MB download and takes up 10 MB HDD space when installed. Second heaviest text editor compared in this post, after Atom, RAM-wise. Here is my ps mem table: jEdit 5.3.0 is a 2.9 download and takes up 29.2 MB when it is installed. It also gave this ps_mem table for jEdit 5.3.0:
  • Overall: 8. Seems like quite a useful text editor.

Kate/KWrite

Kate 15.08.1 running under Moksha

Kate 15.08.1 running under Moksha

KWrite 15.08.0 running under Moksha

KWrite 15.08.0 running under Moksha

Background

Kate

Release Date: 2001.
Developer(s): KDE.
License: GPLv3, LGPLv2, LGPLv3.
Category: General-purpose text editor.
Written in: C++.
GitHub Repository: KDE/kate
Forks:
Stargazers:
Watchers:

Kate which is abbreviated from KDE Advanced Text Editor, is a text editor that is a KDE Core Application (a part of the KDE Software Compilation or KDE SC) and combines features of an advanced text editor (that is, one geared towards software developers and experienced programmers) such as customizability, extensive syntax-highlighting, code-indentation, etc. support with sufficient user-friendliness for it to be suitable for inexperienced Linux users. Its development began in 2001 and has been a central part of KDE SC ever since.

KWrite as I understand it (but I must admit I am a little confused by the degree of overlap between Kate and KWrite) is designed to be a lightweight derivative of Kate.


Customizability

Some customization (such as of keyboard shortcuts, the toolbar and a few other features) can be done graphically via going to the “Settings” menu and selecting an option from the menu. From what I can gather, however, limited customization can be done textually via user-supplied scripts.

Features

It has syntax-highlighting and auto-indentation support for over 180 different computer languages, including MediaWiki and shell script, but excluding PyMOL. It also has embedded terminal support.

Obtaining It

Kate and KWrite are found in the official repositories of most distributions — if the distribution has the KDE desktop environment (regardless of whether they are still packing KDE Plasma 4 or whether they have updated to Plasma 5), then Kate and KWrite should be available from their official repositories.

Advantages (Pros)

  • Easily customizable via graphical tools.
  • Intuitive keyboard shortcuts by default.
  • Extensive support for a wide range of computer languages.

Disadvantages (Cons)

  • Minimal customization can be made to Kate/KWrite, via user-supplied scripts.
  • Due to it being part of KDE SC it cannot be too easily ported to Microsoft Windows or OS X, although it is readily available on most Linux distributions.

Summary

  • Availability: 8. Easy to get on Linux.
  • Beginner-friendliness: 9. Easy for beginners to use.
  • Customizability: 7-8. Fairly customizable, but unlike Atom say where advanced users have the option of extending the TE further using their own scripts, Kate does not seem to have this capability
  • Features: 8. Extensive support for computer languages and has some IDE-like features.
  • MEWI: 2. Fairly minimal.
  • System Resource Usage: 7. Kate 15.08.2 is a 2.4 MB download and 9.2 MB package when installed, while KWrite 15.08.2 is a 0.1 MB download and 177 kB package when installed. Fairly lightweight for a graphical TE. Here are my ps mem tables (for Kate 15.08.1 and KWrite 15.08.0, respectively): Kate 15.12 while under Manjaro Linux takes up 7.1 MB when installed and is a 1.7 MB download. KWrite 15.12 takes up 203 KiB when installed and is a ~110 KiB download. Kate 15.12 and KWrite 15.12, respectively, gave these ps_mem tables:
  • Overall: 8-9. User-friendly and fairly customizable.

KDevelop

KDevelop 5.0.0 running under Arch Linux

KDevelop 5.0.0 running under Arch Linux

Background

KDevelop

Release Date: December 1999.
Country of Origin: Germany.
Developer(s): KDE.
License: GPLv2, LGPLv2.1.
Category: General-purpose IDE.
Written in: C++.
GitHub Repository: KDE/kdevelop
Forks:
Stargazers:
Watchers:

KDevelop is an IDE that is part of the KDE Core Applications (KDE-CA) suite. It was fairly recently transitioned to the KDE Frameworks 5 (KF5), compared to other members of the KDE-CA suite, with the 5.0.0 release of KDevelop (the first of which to fully transitioned to KF5) being on the 23th of August 2016. Many distributions do not yet have KDevelop 5.0.x in their repositories. It supports a grand total of six programming languages — C, C++, JavaScript, PHP, Python and QML. I have used it as a C++ IDE, granted only for one small project.


Customizability

KDevelop is a program I have little experience with, but if you go to the “Settings” menu you can choose to modify the program’s keyboard shortcuts and other aspects of its behaviour. You can also install some plugins, providing an integrated terminal, amongst other features. The amount of plugins available, however, is fairly limited compared to that available to say Atom or Visual Studio Code.

Features

KDevelop features source code editor support (including syntax highlighting, autocompletion, autoindentation, etc.) for its six programming languages, it also has in-built support for git and compilers/interpreters for C, C++, PHP and Python.

Obtaining It

It is in the official repositories of the majority of Linux distributions. Although few have started packing the 5.x release of KDevelop yet, so if you would like to try it the KDE Development Team has provided a 64-bit AppImage build of it.

Advantages (Pros)

  • Easy to install.
  • Intuitive to use.

Disadvantages (Cons)

  • Only supports six programming languages.
  • Not very customizable.

Ratings

  • Availability: 8.
  • Beginner-friendliness: 8.
  • Customizability: 5. There are some plugins available to extend its capabilities, but not a really large variety of them.
  • Features: 6.
  • MEWI: 1.
  • System Resource Usage: 4-5. On Manjaro KDevelop is a 4.9 MB download and takes up 12.2 MB when installed. Here is my ps_mem table under Manjaro: . Under Sabayon it is a 5.7 MB download and takes up 13.4 MB when installed. Here is my ps_mem table under Sabayon:
  • Overall: 9. It is really quite an impressive IDE, in my opinion.

Komodo Edit

Komodo Edit 9.3.1 running under Manjaro Linux

Komodo Edit 9.3.1 running under Manjaro Linux

Background

Release Date: November 2007.
Developer(s): ActiveState.
License: MPLv1.1.
Category: General-purpose text editor.
Written in: C, C++, JavaScript, Python.
GitHub Repository: Komodo/KomodoEdit
Forks:
Stargazers:
Watchers:

Komodo Edit is a free and open-source text editor developed by ActiveState that is based on the Mozilla Platform. ActiveState also develops a proprietary IDE based on Komodo Edit called Komodo IDE. It supports several popular computer languages, including: Bash, C, C++, C#, CoffeeScript, CSS, Go, HTML, JavaScript, Less, Markdown, Perl, PHP, Python, Python3, etc.


Customizability

Komodo Edit can be customized and extended by use of packages that come in the .xpi file format (the same format used by Firefox extensions) and can be downloaded from http://komodoide.com/packages/. I have limited experience with Komodo Edit, so I do not know just how customizable it is by use of these extensions.

Features

Komodo Edit can have extra features added to it by use of plugins.

Obtaining It

It is not in the official repositories of any distribution I am aware of. Fortunately, binary tarball releases are available from the Komodo IDE website.

Advantages (Pros)

  • Seems fairly feature-packed, something tells me that its feature set is likely similar to Atom.

Disadvantages (Cons)

  • Komodo Edit is fairly heavy on SRU.
  • It is not in the official repositories of any distribution I am aware of.

Ratings

  • Availability: 5.
  • Beginner-friendliness: 8-9. Seems fairly beginner-friendly.
  • Customizability: 8. Seems fairly customizable.
  • Features: 7. Has the standard features of a text editor, but no IDE-type features.
  • MEWI: 1. Fairly minimal.
  • System Resource Usage: 2. Komodo Edit's install size on Manjaro is roughly 240.8 MB. Here is my ps_mem table on Manjaro: . Komodo Edit takes up 247.38 MB when installed on Sabayon and gave this ps_mem table:
  • Overall: 8.

Leafpad

Leafpad 0.8.18.1 running under Moksha

Leafpad 0.8.18.1 running under Moksha

Background

Leafpad
Developer(s): LXDE Development Team.
License: GPLv2.
Category: Simple text editor.
Written in: C.

Leafpad is a lightweight and basic GTK+ based text editor. Its capabilities (or rather lack thereof) are very similar to those of Windows’ Notepad.


Customizability

There is little, if any, customizability for Leafpad.

Features

It offers no syntax highlighting support or auto-indentation support that I am aware of.

Obtaining It

It is often included along with the LXDE core application suite, so it is available from the official repositories of the vast majority of Linux distributions.

Advantages (Pros)

  • Its chief advantage is its low system resource usage.
  • Easy to install on most distributions.

Disadvantages (Cons)

  • It is very basic, has minimal customizability or features.

Ratings

  • Availability: 8.
  • Beginner-friendliness: 10.
  • Customizablity: 0.
  • Features: 0.
  • MEWI: 2. Fairly minimal, just the occasional use when I am using LXDE.
  • System Resource Usage: 9. Leafpad 0.8.18.1 is a 0.1 MB download and 3.3 MB package when installed. It is the most lightweight graphical TE in this comparison. Here is my ps mem table: Leafpad 0.8.18 is a 79.5 KiB download and takes up 300 KiB when installed. It also gave the following ps_mem table:
  • Overall: 7. Fairly basic, but at least it is stable and easy to use.

LightTable

LightTable 0.8.1

LightTable 0.8.1

Background

LightTable

Release Date: April 2012.
Developer(s): LightTable Development Team.
License: MIT.
Category: Web development IDE.
Written in: ClojureScript.
GitHub Repository: LightTable/LightTable
Forks:
Stargazers:
Watchers:

LightTable is a open-source IDE that is oriented towards web development. It is built on the Electron framework, and written in ClojureScript.


Customizability

It is extended via a plugin system.

Features

As it is oriented towards web development it has many of the features you would expect of such an IDE, such as a live preview of websites you are developing. It also has syntax-highlighting and the usual set of text editor features for its supported programming languages.

Obtaining It

It is not in the official repositories of any Linux distribution I am aware of, but a binary tarball release is available from its releases GitHub page. It has a free AppImage available for 64-bit Linux platforms here.

Advantages

  • Fairly feature-packed, keeping in mind its being limited, in its intended use, to web development.
  • Easy to obtain on most Linux distributions thanks to its AppImage.

Disadvantages

  • Requires fairly out-of-date libraries to run, if installed the old-fashion way using a package manager.
  • Has a limited set of intended uses.

Summary

  • Availability: 2.
  • Beginner-friendliness: 8.
  • Customizablity: >7.
  • Features: 7.
  • MEWI: 2. Fairly minimal.
  • System Resource Usage: 7-8. LightTable 0.8.1 takes up 128.83 MB disk space when installed on Arch Linux, and here is my ps_mem table: .
  • Overall: 7-8.

MonoDevelop

MonoDevelop 5.10 running on Ubuntu 16.04

MonoDevelop 5.10 running on Ubuntu 16.04

Background

MonoDevelop

Release Date: 2004.
Developer(s): Xamarin.
License: LGPLv2 and MIT.
Category: Mono/.NET IDE.
Written in: C#.
GitHub Repository: mono/monodevelop
Forks:
Stargazers:
Watchers:

MonoDevelop (or MD for short) is a cross-platform IDE that is primarily intended to be used by Mono/.NET developers. Despite this it can be used for development unrelated to Mono/.NET. It is itself written almost entirely in C#, and has autocomplete, linting and syntax-highlighting support for a wide variety of different Mono/.NET framework languages such as C, C++, C#, D, F# and Vala. It also has a visual designer for building Gtk# (GTK+ with C# findings) interfaces.

It started off in 2003 as a cross-platform SharpDevelop fork. Although it has since become very distinct from SharpDevelop. It is developed by Xamarin (which itself is now a subsidiary of Microsoft) and its own FOSS community. Despite being considered “cross-platform”, capable of running on Linux, OS X and Windows NT, many of its features are limited to Linux (source: Feature List). For example, debugging C/C++ programs with MonoDevelop is limited to Linux platforms.


Customizability

MonoDevelop 5.10's Add-in Manager running on Ubuntu 16.04

MonoDevelop 5.10’s Add-in Manager running on Ubuntu 16.04

MonoDevelop is customizable via a plugin system, it has its own add-in manager. To open this add-in manager go to Tools→Add-in Manager. I personally have not needed to install any plugins, so I cannot really add much on this.

Features

MonoDevelop 5.10 C++ debugger

MonoDevelop 5.10 C++ debugger

MonoDevelop has several important features expected of an IDE, such as autocompletion (or intellisense), linting and syntax-highlighting for its supported languages. It also has an integrated debugger for its supported languages. I have used MonoDevelop to work on a very simple C++ program that is completely unrelated to Mono/.NET, and its integrated debugger was quite useful. Unfortunately its support for C/C++ is to be removed in the upcoming 6.x release of MonoDevelop. Preview builds of MonoDevelop 6.x are available as flatpaks from here. These flatpaks have a few minor graphical bugs (mostly related to their GTK menubars), but otherwise work fairly well in my experience. Installing them should be fairly simple and straight-forward and involves following this guide.

Obtaining It

MonoDevelop is in the official repositories of most Linux distributions, including:

  • Arch Linux
  • Debian (stable/testing/unstable)
  • Fedora
  • Gentoo Linux
  • openSUSE Tumbleweed (Leap 42.1 has a MonoDevelop package in the Mono:Factory repository, but not in an official repository)
  • Sabayon
  • Ubuntu

notable distributions it is not in the official repositories of, include:

  • CentOS

Advantages

  • Cross-platform so it should be easy to work on your MonoDevelop projects on whichever OS you find yourself on, Linux or not.
  • Available for the majority of Linux distributions.

Disadvantages

  • Can be confusing how it manages files in projects

Summary

  • Availability: 8. Easy to install on most distributions with one's package manager.
  • Beginner-friendliness: ~7. Its keyboard shortcuts are intuitive (e.g., Ctrl+C to copy). I found it how it manages files in projects to be a little confusing. Beyond this my experience with it is not extensive enough for me to comment.
  • Customizability: >7-8. It is customizable, but as I do not have much experience with this IDE, I do not know just how customizable it is.
  • Features: >9. It is possible to do debugging in it and other nice features.
  • MEWI: 2. I have used it a little here and there.
  • System Resource Usage: 4-5. Here is my ps_mem table for MonoDevelop 5.10 on Ubuntu 16.04: . It's a 7.8 MB download and takes up 31.6 MB when installed.
  • Overall: 8-9.
  • mono/monodevelop Gitter chat room. You can ask for help with MonoDevelop installation and alike here. I have personally found responses are very slow, taking a matter of days or so, so prepare to be frustrated.

Mousepad

Mousepad 0.4.0 running under Moksha

Mousepad 0.4.0 running under Moksha

Background

Mousepad
Developer(s): Xfce Development Team.
License: GPLv2.
Category: Simple text editor.
Written in: C.
GitHub Repository: codebrainz/mousepad
Forks:
Stargazers:
Watchers:

Mousepad is a core application of the Xfce desktop environment, that was originally forked from Leafpad. Like Leafpad it is fairly lightweight, but unlike Leafpad, Mousepad can be customized and has a few basic features that are absent from Leafpad, such as syntax highlighting support for a few computer languages.


Customizability

Some basic customization can be done, graphically, by going to Edit←Preferences in the toolbar. Some customization of its appearance can be done by going to the View menu. Beyond this, to my knowledge, it cannot be customized.

Features

It supports syntax-highlighting for roughly, a couple of dozen computer languages.

Advantages (Pros)

  • Lightweight.
  • All customization can be done graphically.
  • User-friendly.

Disadvantages (Cons)

  • Basic, limited computer language support.
  • Limited customization options.

Ratings

  • Availability: 10.
  • Beginner-friendliness: 10.
  • Customizability: 2-4.
  • Features: 4
  • MEWI: 1. Fairly minimal.
  • System Resource Usage: 8. Mousepad 0.4.0 is a 0.4 MB download and takes up 1.1 MB when installed. Very lightweight. Here is my ps mem table: Mousepad 0.4.0 is a ~210 KiB download and takes up 1.1 MiB when installed. It also gave the ps_mem table:
  • Overall: 7. The next step up from Leafpad, in complexity it is.

nano

nano 2.4.2 running within LXTerminal under Moksha

nano 2.4.2 running within LXTerminal under Moksha

Background

nano
Release Date: 1999.
Country of Origin: U.S.A.
Developer(s): GNU Project (previously) and various developers.
License: GPL
Category: General-purpose, simple text editor.
Written in: C.

nano is a command-line text editor that was once developed as part of the GNU Project, although it left the GNU Project in June 2016.4 Its development began in 1999 by Chris Allegretta, as a free alternative to the proprietary Pico text editor. Later, in 2001, it officially became part of the GNU Project. It since left the project in June 2016. Several features (like search, search and replace, save, exit, etc.) are accessed using keyboard shortcuts. It can be invoked by running the command “nano” from the command-line. nano can be passed several different options from the command-line, to see a full list see its man page (invoked by running man nano or, if you would prefer to view it in your browser, go here). Usually when I want to edit a file with nano I simply run nano <FILE> where <FILE> is the file’s name (potentially also with its path if it is not in my current directory).


Customizability

I am unaware of any possible customization of nano, if you know some please do tell me in the comments of this post.

Features

It offers syntax-highlighting, auto-indenting and miscellaneous other support for several computer languages. It also auto-detects the computer language using file extensions. It also has search functions (accessable via pressing Ctrl+W).

Obtaining It

On many distributions nano comes pre-installed with the OS, those it is not usually have it in their official repositories.

Advantages (Pros)

  • Easy to install on Linux. On many distributions it is pre-installed.
  • It is also the lightest-weight of TEs/IDEs.

Disadvantages (Cons)

  • Command-line TE only, no advanced IDE-like features.
  • Lacks customizability.
  • Unintuitive keymap, can take a little getting used to.

Summary

  • Availability: 10.
  • Beginner-friendliness: 7. Fairly easy to get used to, but its keyboard shortcuts are not totally intuitive.
  • Customizability: 0?
  • Features: 8.
  • MEWI: 8. It is usually the first TE I go to, when I have a small text file I want to edit.
  • System Resource Usage: 10. On Sabayon, GNU nano 2.5.0 is a 0.6 MB download and takes up 1.8 MB HDD space when installed. It is incredibly light, here is my ps mem table: on Manjaro Linux, GNU nano 2.5.0 is a ~400 KiB download and takes up 2.1 MiB when installed. It also gave the ps_mem table:
  • Overall: 8. I rather like it for basic editing, but whenever I want to edit a several dozen-line file, or bigger, I usually switch to Atom as it is easier to navigate in Atom, in my experience.

NetBeans

NetBeans 8.1 running under Manjaro

NetBeans 8.1 running under Manjaro

Background

NetBeans

Release Date: 1996.
Country of Origin: Czech Republic.
Developer(s): Oracle Corporation.
License: CDDL/GPLv2.
Category: C/C++/HTML5/Java/PHP IDE.
Written in: Java.

NetBeans is a cross-platform free and open-source IDE written in Java and developed by the Oracle Corporation. It started out as a student project called Xelfi, in the former Czechoslovakia (now the Czech Republic) and was originally proprietary, but it has since been re-released under the CDDL and GNU GPLv2 licenses.5 While originally purely a Java IDE, it has since been re-developed into an IDE for C, C++, Java, PHP and HTML5. I have written one program in Java in it; for this purpose it seemed to be a reasonable IDE. I have attempted to work with C/C++ programs in it too, although on Arch Linux I found its project wizard froze on me when working with a C/C++ project.


Customizability

NetBeans is extensible via plugins provided at its website. I have little experience with it myself, but I suspect it is reasonably extensible, but not totally.

Features

NetBeans has the usual features of IDEs, including those of TEs like syntax-highlighting, autocompletion and auto-indentation for its programming languages and the ability to compile programs written in it.

Obtaining It

It is found in the official repositories of most distributions. Even for those distributions that it is not in the official repositories of, should not be too challenging to run NetBeans on as official binary tarballs are provided by the Oracle Corporation that funds NetBeans’ development.

Advantages (Pros)

  • It is extensible.
  • Cross-platform and is able to run on any Java-capable platform.
  • Feature-packed.

Disadvantages (Cons)

  • Fairly heavy on system resources.
  • Fairly limited set of supported languages.
  • A little buggy for me at least, on Arch Linux.

Summary

  • Availability: 8. Easy to install on Linux.
  • Beginner-friendliness: 7. I personally find Eclipse a more beginner-friendly IDE.
  • Customizability: 6. Only customizable via plugins.
  • Features: 8.
  • MEWI: 1.
  • System Resource Usage: 1. ps_mem tables are: and for Manjaro and Sabayon, respectively. Manjaro's NetBeans 8.1 package is a 264 MB download and takes up 637.2 MB disk space when installed. Sabayon's NetBeans 8.0.2 package is a 39.2 MB download and takes up 56.3 MB disk space when installed.
  • Overall: 8.

Ninja-IDE

Ninja IDE 2.3.0 running under Manjaro

Ninja IDE 2.3.0 running under Manjaro

Background

Ninja-IDE
Release Date: 2010.
Country of Origin: Argentina.
Developer(s): Ninja IDE Developers.
License: GPLv3.
Category: Python IDE.
Written in:
GitHub Repository: ninja-ide/ninja-ide
Forks:
Stargazers:
Watchers:

Ninja-IDE is a free and open-source IDE that is designed specifically for Python development. It is developed by its own small donation-sponsored community of developers and only supports Python 2.


Customizability

Ninja IDE Preferences Window

Ninja IDE Preferences Window

Ninja-IDE can be customized via its preferences window. Its keyboard shortcuts can be customized in this interface. The theme can also be customized and fewer than 100 plugins can also be installed.

Features

Ninja-IDE seems to be fairly light on features, but it has basic TE features like syntax-highlighting and auto-indentation, it also has an embedded Python shell and can run Python scripts by the user right-clicking them and clicking the “Run” option.

Obtaining It

It is available from the official repositories of most distributions.

Advantages (Pros)

  • It is easily installable via binary packages on most Linux distributions.
  • Fairly lightweight.

Disadvantages (Cons)

  • Does not support many programming languages.

Summary

  • Availability: 8. Easily installable on most Linux distributions.
  • Beginner-friendliness: 8. Pretty intuitive, but its default keymap is a little unconventional with Ctrl+Alt+C for copy.
  • Customizability: 6.
  • Features: 6.
  • MEWI: 1-2. A little experience I have gained running a mathematics Python script in it.
  • System Resource Usage: 7. For an IDE it is lightweight. It is a 1.0 MB download on Sabayon and takes up 4.0 MB when installed on this platform, here is my ps_mem table: . On Manjaro it is a 701 KB download and takes up 4.0 MB when installed, here is my ps_mem table:
  • Overall: 8.

Notepadqq

Notepadqq 0.53 running on Ubuntu 16.04

Notepadqq 0.53 running on Ubuntu 16.04

Background

Notepadqq

Release Date: 2013.
Country of Origin: Italy.
Developer(s): Daniel Di Sarli and others.
License: GPLv3.
Category:
Written in: C++.
GitHub Repository: notepadqq/notepadqq
Forks:
Stargazers:
Watchers:

Notepadqq is a lightweight text editor built using the Qt widget toolkit. It is designed to be a Linux-compatible equivalent to the Notepad++ text editor. It is still in beta development, and still has not had a “stable” release. I have found it fairly buggy myself, especially when opening up folders in it (as it has a tendency to freeze on me). Despite this it has support for a wide variety of different programming languages. Last point worth mentioning is that its development is donation-funded.

Customizability

Notepadqq is customizable via going to the menubar, Settings→Preferences. Through the interface that pops up after clicking Preferences, one can customize:

  • Keyboard shortcuts
  • Extensions (although from what I can tell there are few, if any available at the moment)
  • Notepadqq’s Appearance (such as its theme)
  • Its human and computer language support

Features

Provides syntax-highlighting and auto-indentation support for a wide variety of programming languages.

Obtaining It

An unofficial PPA exists for Ubuntu, which allows it to be easily installed. Arch Linux also has a package for it in its AUR. There are no ebuilds for Notepadqq available from any overlays on the Layman remote list as of 4 September 2016 (source: this search). There is one overlay I have been made aware of that is not in the Layman remote list with a Notepadqq 0.51.0 ebuild in it. For other distributions I imagine it is quite a challenge to install.

Advantages

  • Fast to load.
  • Fairly lightweight.

Disadvantages

  • Challenging to get on most distributions.
  • Not in the official repositories of any distribution I am aware of.
  • Not very extensible.

Summary

  • Availability: 3.
  • Beginner-friendliness 9.
  • Customizability: 6. Fairly limited customization options, but they can be done graphically at least.
  • Features: 6. Has the basic features expected of a text editor.
  • MEWI: 2.
  • System Resource Usage: 7. Fairly lightweight, here is its ps_mem table on Ubuntu 16.04: .
  • Overall: 8.

pluma

pluma 1.8.1 running under Moksha

pluma 1.8.1 running under Moksha

Background

pluma
Release Date: 2011.
Country of Origin: Argentina.
Developer(s): MATE Development Team.
License: GPLv2
Category: Simple, general-purpose text editor.
Written in: C, Python.
GitHub Repository: mate-desktop/pluma
Forks:
Stargazers:
Watchers:

pluma is a fork of gedit 2 created for the MATE desktop environment. It has many of the same features as gedit.


Customizability

Some customization (to the theme or adding some plugins) can be done by going to Edit→Preferences.

Features

pluma has a few plugins that can be used to add features (mostly IDE-like features) to the text editor. It also has syntax-highlighting and auto-indenting support for several computer languages.

Advantages (Pros)

  • Customization is done graphically, making it easier for beginners.
  • Has intuitive keyboard shortcuts.
  • Has several IDE-like features like a Python terminal.
  • Has syntax-highlighting and auto-indenting support for several computer languages.

Disadvantages (Cons)

  • Customization options are fairly limited.

Summary

  • Availability: 8. Easy to get on most Linux distributions.
  • Beginner-friendliness 9. Customization is done graphically, making it more user-friendly.
  • Customizability: 6. Fairly limited customization options, but they can be done graphically at least.
  • Features: 8.
  • MEWI: 2. Fairly minimal, because of how basic it is.
  • System Resource Usage: 8. Pluma 1.8.1 is a 3.4 MB download and 12.7 MB package when installed. Fairly lightweight. Here is my ps mem table: under Manjaro, Pluma 1.12.1 is a 2.9 MiB download and takes up 15.1 MiB when installed. It also gave the following ps_mem table:
  • Overall: 8.

PyCharm CE

PyCharm Community Edition 5.0.3

PyCharm Community Edition 5.0.3

Background

PyCharm Community Edition

Release Date: July 2010.
Developer(s): JetBeans.
License: Apache License.
Category: Python IDE.
Written in: Java, Python.
GitHub Repository: JetBrains/intellij-community, python subfolder.
Forks:
Stargazers:
Watchers:

PyCharm Community Edition or PyCharm CE, is a free and open-source IDE for Python development that is written in Java and developed by JetBrains (the same company that develops IntelliJ IDEA). As it is written in Java it is cross-platform and able to run on Linux, OS X and Windows. Like IntelliJ IDEA it has a proprietary counterpart that is more feature-packed than its FOSS equivalent that this section is about.


Customizability

It has a plugin repository, with plugins to extend its capabilities.

Features

It is not as feature-packed as its proprietary counterpart, but it does have a pretty good feature set. This includes the basic text editor amenities such as syntax highlighting for Python, auto-indentation, etc. as well as an in-built interpreter for Python that can be set to use whichever interpreter one has installed on one’s system.

Obtaining It

It is not in the official repositories of any Linux distribution I am aware of, but as it is written in Java it is fairly easy to install, or at least set up for use on most distributions.

Advantages (Pros)

  • Cross-platform.
  • feature-packed.

Disadvantages (Cons)

  • Heavy on system resource usage.

Summary

  • Availability: 6-7.
  • Beginner-friendliness: 8.
  • Customizability: 8.
  • Features: 8.
  • MEWI: 1.
  • System Resource Usage: 3. Fairly heavy. Its tarball is a 130 MB download, while on Manjaro when installed it takes up 242 MB. ps_mem on Manjaro gives: On Sabayon my ps_mem table is:
  • Overall: 8.

SciTE

SciTE 3.6.1 running under Moksha

SciTE 3.6.1 running under Moksha

Background

SciTE

Release Date: 1999.
Developer(s): Neil Hodgson.
License: HPND.
Category: General-purpose text editor.
Written in: C++.

SciTE (abbreviated from SCintilla based Text Editor) is a Scintilla-based text editor originally developed by Neil Hodgson, that is licensed under a GPL-compatible license. It is a fairly user-friendly text editor, that can be customized and scripted with using Lua. Its syntax-highlighting is based on the contents of the .properties files it loads. SciTE is cross-platform, available on Microsoft Windows and most Linux distributions for free, although for OS X users it is only available for a fee of 41.99 USD.

I first tried it when it was the default text editor used by GNU Octave to edit m files.


Customizability

SciTE can be customized by editing .properties files or via scripting with Lua. There are no major graphical tools for customizing SciTE.

Features

It provides syntax-highlighting for dozens of computer languages. Support for extra languages can be added by creating .properties files for them.

Obtaining It

SciTE is found in the official repositories of most Linux distributions.

Advantages (Pros)

  • Fairly lightweight.
  • Extensively customizable.
  • Easy to get on most distributions.

Disadvantages (Cons)

  • The list of languages it automatically supports is <30.

Summary

  • Availability: 8.
  • Beginner-friendliness: 8. You should be able to get started with SciTE without much experience in programming or using text editors.
  • Customizability: 8. Fairly customizable, textually only.
  • Features: 7.
  • MEWI: 4. I used to use it a lot when it was the default text editor used by GNU Octave (back when it was purely a CLI).
  • System Resource Usage: 8. SciTE 3.6.1 is a 1.7 MB download and 5.4 MB package when installed. Here is my ps mem table: SciTE 3.6.2 is a 1.2 MiB download and takes up 4.5 MiB when installed under Manjaro and it gave the ps_mem table:
  • Overall: 8.

Vim

gVim 7.4.827 running under Moksha

gVim 7.4.827 running under Moksha

Background

Vim

Release Date: November 1991.
Country of Origin: Netherlands.
Developer(s): Bram Moolenaar.
License: Vim License.
Category: General-purpose text editor.
Written in: C, VimL.
GitHub Repository: vim/vim
Forks:
Stargazers:
Watchers:

Vim (short for Vi-IMproved) is a text editor that was first released in 1991 by Bram Moolenaar, as a clone of Bill Joy’s Vi text editor. It and GNU Emacs are seen as the most powerful free text editors available for experienced programmers. Vim is available as a command-line text editor (which is its default and is invoked by running the vim command), where users can edit text files from the command-line, or as a graphical text editor (which is called gVim). There is also a Qt-based GUI for Vim called Vim-Qt that is only available on a few Linux distributions. Compared to most text editors, Vim is far less intuitive and has a steep learning curve. For one, its keyboard shortcuts are far from conventional, with Ctrl+C for copy, Ctrl+V for paste, etc. not being available. Vim also has its own scripting language (Vim script) for adding functionalities to it.


Customizability

Vim is extensively customizable, for people with the required level of finesse in programming. There are also several extensions and other plugins available for it, from the Internet. Here is a centralized database of Vim plugins, with search tools to help you find the plugin you want. There are several plugin managers available for Vim, some of the more popular ones include:

  • apt-vim, a cross-platform package manager that is written in Python. It is fairly easy to install, just go to the GitHub repository I just linked and follow the instructions.
  • vim-addon-manager, a plugin manager written almost entirely in VimL (the scripting language of Vim).
  • vim-update-bundles, a plugin manager written in Ruby, its development has ceased but it still seems to work fine.
  • Vimana, a cross-platform plugin manager that is written in Perl. It is fairly easy to install.
  • Vundle, a plugin manager written in VimL, it is probably the most popular package manager for Vim.

Features

It has syntax-highlighting support for almost (if not every) every computer language. It also has several IDE-type features, like compiling source code from within it. Several other features can be added to it, for example, I wrote some of this post in Vim when my blog was powered by WordPress, using the Vimpress plugin.

Obtaining It

Aside from nano it is probably the easiest editor mentioned in this post to obtain on Linux. This is because it is found in the official repositories of virtually every Linux distribution.

Advantages (Pros)

  • Easy to obtain it on virtually every *nix system.
  • Extremely customizable.
  • Fairly light on system resources.

Disadvantages (Cons)

  • Steep learning curve, making it difficult to learn. If you run vimtutor from the command-line after installing it, you will be taken through a tutorial of how to use it, which can be helpful.

Summary

  • Availability: 8.
  • Beginner-friendliness: 2.
  • Customizability: 9-10.
  • Features: 10.
  • MEWI: 3. I have used it a little, mostly because of its Vimpress plugin, but it is so fustrating in its keymap I try to avoid it.
  • System Resource Usage: 8-9. Vim 7.4.827 is a 1.3 MB download and takes up 3.1 MB when installed. gVim 7.4.827 is a 1.4 MB download and takes up 3.4 MB HDD space when installed. Vim-Qt 20150102-r1 is a 1.4 MB download and 3.4 MB package when installed. Here are my ps mem tables: under Manjaro gVim 7.4.944 is a 1.3 MiB download, takes up 2.8 MiB when installed and gave the following ps_mem tables (note Vim-Qt is not available from the official Manjaro repositories):
  • Overall: 8-9.

Visual Studio Code

Visual Studio Code 1.4.0 running on Ubuntu 16.04. The mouse is over the Extension Gallery button

Visual Studio Code 1.4.0 running on Ubuntu 16.04. The mouse is over the Extension Gallery button

Background

Visual Studio Code

Release Date: April 2015.
Country of Origin: U.S.A.
Developer(s): Microsoft, Inc.
License: MIT.
Category: General-purpose text editor.
Written in: JavaScript, Less and TypeScript.
GitHub Repository: Microsoft/vscode
Forks:
Stargazers:
Watchers:

Visual Studio Code (GitHub Repository; or VSCode for short) is an open-source (licensed under the MIT License) text editor developed by Microsoft. It is intended to be a lightweight counterpart to the proprietary Visual Studio (VS) IDE, although it does not share any of VS’s source code. Like Atom, it too is built on the Electron framework and is written in web languages such as JavaScript, TypeScript and Less. As such it is cross-platform supporting Linux, OS X and Windows NT. Like Atom it is extended using plugins (or extensions as they are officially referred to) written in web languages, although unlike Atom these plugins must be installed from VSCode’s own interface and cannot be installed from the command-line. In contrast to Atom, VSCode has fewer plugins available and a seemingly smaller community (although the differences in the size of their communities are likely modest). Although it has some out-of-the-box features that Atom also lacks (although Atom can gain via the installation of extra packages), such as an embedded code debugger and terminal and integrated git version control.

You can browse plugins for VSCode by going to the Extension Gallery in VSCode or going to this URL: https://marketplace.visualstudio.com/.


Customizability

VSCode is extensively customizable via plugins. I have never written one so I cannot give one any pointers on how to do this, but there are several VSCode plugins available from the previously mentioned marketplace website/extension gallery. Packages can be installed from the extension gallery or via the command palette (toggled via pressing Ctrl+Shift+P) by typing in ext install <PACKAGE>, where <PACKAGE> is the package’s name.

Features

As previously mentioned VSCode has an embedded terminal and debugger, as well as git management system. Its support for the C# programming language is superior to that of Atom (specifically it has autocomplete/linter features provided by the C# extension), even when extra plugins are installed for Atom. VSCode, in my opinion, is a better markdown writer than Atom, as it has an extension that provides grammar and spell-checking support, in contrast to Atom’s core spell-check package which provides only spell-checking (and only supports American English, plus spell-check does not allow one to add words to your own custom dictionary). Another package of VSCode that provides writing markdown documents is the Markdown Shortcuts package, which provides keybindings for common formatting actions for markdown.

Obtaining It

VSCode is not available from the official repositories of any Linux distribution I am aware of, but Debian, RPM and zip archive builds of VSCode for both 32-bit and 64-bit platforms are provided by Microsoft, although beware they are not open-source! While VSCode’s source code is released under the MIT License, official binary builds of VSCode are licensed under a proprietary (but freeware) EULA. Despite this it is possible to build your own open-source binary build of VSCode. My vscode-installer can be used to aid with this process.

Advantages (Pros)

  • Easy to use.
  • Cross-platform.
  • Is fairly feature-packed with an embedded debugger and terminal.
  • Has a powerful autocomplete/linting tool for C#.

Disadvantages (Cons)

  • Heavy on RAM and CPU usage.
  • Not in the official repositories of any distributions I am aware of.

Summary

  • Availability: 7. Fairly easy to install on most distributions.
  • Beginner-friendliness: >7. Its keyboard shortcuts are intuitive (e.g., Ctrl+C to copy), beyond this my experience with it is not extensive enough for me to comment.
  • Customizability: >7-8. It is customizable, but as I do not have much experience with this text editor, I do not know just how customizable it is.
  • Features: >7. It is possible to do debugging in it and other nice features.
  • MEWI: 4. I have used it a little here and there.
  • System Resource Usage: 2-3. Here is my ps_mem table on Ubuntu 16.04: .
  • Overall: 8-9.

Limitations

This comparison of IDEs and text editors is far from comprehensive, there are several others I am aware of, that I have not included for a variety of different reasons. This comparison is not perfect, as I know to do anything near a perfect comparison I would have to compare each individual IDE/TE in great detail, with specific reference to their individual supported programming languages and how well they support each individual language. This is not done, deliberately, as it would take too long and I am simply not familiar enough with each editor to do this.

There are two text editors/IDEs that I know can run quite well on Linux through Wine:

They are excluded from this comparison because they do not run natively on Linux, rather they are Windows applications that must be run through Wine. Of note, however, I have found that SharpDevelop and Visual Studio Community Edition 2015 cannot be run through Wine.

Likewise there are some obscure text editors like Kilo and X2 that have been deliberately excluded from this comparison as they are not well-known and including each obscure text editor available would take too much time. Plus I have deliberately excluded IDEs that are designed for one specific purpose, such as:

  • Anjuta (designed for building GNOME apps)
  • GNOME Builder (designed for GNOME app building)
  • GNU Octave (designed for numerical analysis)
  • MATLAB (designed for technical computing)
  • Scilab (designed for scientific computing)
  • Spyder (designed for numerical analysis)

Footnotes

  1. Ben Ogle (11 November 2015). Atom 1.3. blog.atom.io: Atom. 

  2. “Releases · jenslody/codeblocks”. Retrieved 12 January 2016. 

  3. “Plugins”. Retrieved 12 January 2016. 

  4. “GNU nano: News”. Retrieved 26 August 2016. Under 17 June 2016’s news: “And, with this release, we take leave of the herd… Bye! And thanks for all the grass!” 

  5. “A Brief History of NetBeans”. Retrieved 26 August 2016. Quote: “NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.” 

Comments