62 lines
3.8 KiB
Markdown
62 lines
3.8 KiB
Markdown
# Code editors
|
|
|
|
A code editor is the place where a programmer spends most of his time.
|
|
|
|
There are two archetypes: IDE and lightweight editors. Many people feel comfortable choosing one tool of each type.
|
|
|
|
[cut]
|
|
|
|
## IDE
|
|
|
|
The term [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) (Integrated Development Environment) means a powerful editor with many features that usually operates on a "whole project". As said, that's not just an editor, but a full-scale "development environment".
|
|
|
|
An IDE loads the project (can be many files), and then allows navigation between files, provides autocompletion based on the whole project, integrates with version management system (like [git](https://git-scm.com/)), with testing environment and other "project-level" stuff.
|
|
|
|
If you haven't considered selecting an IDE, look at the following variants:
|
|
|
|
- IntelliJ editors: [WebStorm](http://www.jetbrains.com/webstorm/) for frontend development and [PHPStorm (PHP)](http://www.jetbrains.com/phpstorm/), [IDEA (Java)](http://www.jetbrains.com/idea/), [RubyMine (Ruby)](http://www.jetbrains.com/ruby/) and other if you need additional languages.
|
|
- Visual Studio is fine if you're a .NET developer, and a free version is available ([Visual Studio Community](https://www.visualstudio.com/vs/community/))
|
|
- Eclipse-based products, like [Aptana](http://www.aptana.com/) and Zend Studio.
|
|
- [Komodo IDE](http://www.activestate.com/komodo-ide) and its lightweight free version [Komodo Edit](http://www.activestate.com/komodo-edit).
|
|
- [Netbeans](http://netbeans.org/).
|
|
|
|
All of the IDEs listed above are available on both Windows and Mac, and the IDEs other than Visual Studio are also available on Linux.
|
|
|
|
Most IDEs are paid, but have a trial period. Their cost is usually negligible compared to a qualified developer's salary, so just choose the best one for you.
|
|
|
|
## Lightweight editors
|
|
|
|
"Lightweight editors" are not as powerful as IDEs, but they're fast, elegant and simple.
|
|
|
|
They are mainly used to instantly open and edit a file.
|
|
|
|
The main difference between a "lightweight editor" and an "IDE" is that IDE works on a project-level, so it loads much more data on start, analyzes the project structure if needed and so on. A lightweight editor is much faster if we need only one file.
|
|
|
|
In practice, lightweight editors may have a lot of plugins including directory-level syntax analyzers and autocompleters, so there's no strict border between a lightweight editor and an IDE.
|
|
|
|
The following options deserve your attention:
|
|
|
|
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
|
|
- [Atom](https://atom.io/) (cross-platform, free).
|
|
- [Sublime Text](http://www.sublimetext.com) (cross-platform, shareware).
|
|
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
|
|
- Vim, Emacs are cool, if you know how to use them.
|
|
|
|
## My favorites
|
|
|
|
The personal preference of the author is to have both an IDE for projects and a lightweight editor for quick and easy file editing.
|
|
|
|
I'm using:
|
|
|
|
- [WebStorm](http://www.jetbrains.com/webstorm/) for JS, and if there is one more language in the project, then I switch to other Jetbrains editors like [PHPStorm](http://www.jetbrains.com/phpstorm/) (PHP), [IDEA](http://www.jetbrains.com/idea/) (Java), [RubyMine](http://www.jetbrains.com/ruby/) (Ruby). There are editors for other languages too, but I didn't use them.
|
|
- As a lightweight editor -- [Sublime Text](http://www.sublimetext.com) or [Atom](https://atom.io/).
|
|
|
|
If you don't know what to choose -- you can consider these ones.
|
|
|
|
## Let's not argue
|
|
|
|
The editors in the lists above are those that me or my friends -- good developers are using for a long time and are happy with.
|
|
|
|
There are other great editors in our big world, please choose the one you like the most.
|
|
|
|
The choice of an editor, like any other tool, is individual and depends on your projects, habits, personal preferences.
|