5. Tooling¶
Web development requires the use of tooling. For each task, there is a wide variety of tools developed for different tastes.
5.1. Text editors¶
We recommend against using very basic text editors such as Windows’ Notepad for this course, as they tend to lack very useful features such as:
- Having a tabbed interface which allows us to jump quickly (with keyboard shortcuts) from one file to another
- Syntax highlighting for HTML and CSS, which helps us locate syntax errors quickly
- Completion for HTML elements and attributes is useful, but not really critical
- A filesystem navigator to open related files quickly
Some common, approachable editors with these features are:
- Atom (available for Windows, OS X and Linux)
- Sublime Text (available for Windows, OS X and Linux)
- Visual Studio Code (available for Windows, OS X and Linux)
- Notepad++ (available for Windows)
Of course, vim and GNU Emacs are the traditional powerful editors, which might be daunting for beginners but worth learning as skills on an advanced editor pay off.
5.2. IDEs¶
Moving on to programming, as especially for languages such as Java which are amenable to very powerful editor features, an IDE might be a good option. They have more complexity but they tend to bundle lots of interesting stuff such as:
- Integrated graphical debuggers, where one can execute code step by step and inspect variables, etc.
- Code refactoring tools, which perform code manipulation such as the variable renaming in a quick and safe way.
Some popular IDEs are:
- Eclipse (available for Windows, OS X and Linux)
- IntelliJ Idea or the web specialized WebStorm (non-free, limited Community edition available, for Windows, OS X and Linux)
- Visual Studio Community (available for Windows)
IDE choice is largely determined by the languages one is going to program in; IntelliJ and Eclipse are specialized in Java, though both have support for other languages such as Python, Javascript, etc. Visual Studio is more oriented towards .NET, but it has support of HTML, CSS, Javascript and others.