Editors

By this point in your CS career, you have probably picked out an editor. But just in case you haven’t, here are some things to think about.

Your editor is the most important tool you will use as a programmer or a writer. You will want your tool to work with you to get things done, not against you. A good editor should allow you to jump to a particular line number (in response to an error message, for instance), auto-indent your code (which can help you spot syntax errors early on), perform syntax highlighting, and perhaps even parse error messages for you. Some editors can even host the REPL so you can use the editor keys to interact with your program.

The good news is you have many choices for a good editor. The “bad” news is that you will need to learn how to use them effectively. But the work you put into it will pay for itself quickly.

Following is a list of editors. Most of these work on the Three Platforms (Linux, Mac, and Windows).

Emacs

Emacs is an ancient editor, and is still being actively developed. It is a general purpose editor, and extendable via a language called Emacs Lisp. It is arguably (and people will argue over this) the most capable editor ever made. This is the one the instructor uses, though with the Vim keybindings (see the Spacemacs section below).

What to expect:

Vim

Vim is an extension of the ancient editor VI. It has an opposite philosophy of Emacs. It is small, assumes you can touch-type, and is not quite as extendable as Emacs.

What to expect:

Spacemacs

This is the editor the instructor uses. It is emacs, but with the vim keybindings, tons of preconfigured customizations, and a new way of entering commands that won’t give you RSI.

What to expect

You will want to enable the haskell layer to use spacemacs in this course.

Notepad

“Can I just use Notepad?”

What to expect: