Editors
It is easy to make simple mistakes while writing code. This causes frustration. A good editing environment can help to minimize unnecessary mistakes. In general you have two choices
- A graphical IDE like Eclipse, Visual Studio, or Xcode
- An advanced text editor like
vim
,emacs
, Notepad++ or TextMate
In lab we will set you up with Eclipse which is a universally available and free IDE. You are welcome to use whatever you like. Eclipse is decent in all respects but commendable in none.
IDEs
IDE stands for integrated development environment. It is a combination of a text editor, a compiler (like gcc), and a running environment (like the terminal). In lab we will use Eclipse. You can download and install Eclipse on your home machine as well download link
Alternatively you may choose a different option. In particular Visual Studio is an excellent IDE made by Microsoft and available for Windows computers.
Xcode is the equivalent product for Mac OS-X.
Text Editors
Some programmers prefer the simplicity of using a text editor along with a separate compiler tool (gcc). Text editors offer fewer features out of the box (like completion, automatic detection of errors, etc…) but are far less complex.
Linux
On the Maclab machines you have the following options
- Bluefish - easy to use
- gedit - easy to use
- emacs - powerful, some learning required (tutorial built in)
- vim - powerful, some learning required (run vimtutor for tutorial)
Emacs and vim are common enough to be available on all platforms.
Windows
Notepad++ is a well-loved text editor. There are several alternatives. The relevant stackoverflow discussion has some good suggestions.
Mac
TextMate is an excellent editor although it does cost money. There is a 30 day free trial that may interest you. Alternatively you could check out the top posts listed on the stackoverflow discussion for macs.
Remote
Another solution to building a working development environment on your home computer is simply to depend on the installation in the MacLab. Remoting in is simple, convenient and means that all of your work is in one place. See the pages about ssh and NX.