Question:
I don’t understand what is the global difference between an IDE and a text editor? According to Wikipedia, an IDE includes a text editor, compiler or interpreter, build automation tools, and a debugger.
But as far as I understand, in Internet technologies, an IDE is not needed at all, because build automation is something like include, sass, Emmet (which is also easily installed as a plugin for a text editor, although I once tried an IDE-shku, there was neither sass nor Emmet by default), the debugger is a sign that appears when there is an error in the syntax of the language (in my opinion, it is built in by default in text editors), I think the interpreter is generally superfluous here, because the best interpreter for internet technologies is a browser? Or is it not like that at all? Or maybe it is superfluous for Internet technologies, but is very necessary for ordinary desktop programs?
Answer:
There is no concept of a " project " in text editors. What does this concept mean?
- Radically speeding up code search by indexing project text – this is very important for large projects. In practice, this is a second of any search for 100MB of text.
- Perception of the IDE project as a whole. In particular, the most popular feature is that the code says something like
$obj->doSomething()
(PHP) ctrl+click on doSomething will take you to the body of thisdoSomething
method, or to information about the function if it is built-in. - Ability to select settings for the entire project, such as encoding.
- Error highlighting between multiple source files, for example, you create a method in a class whose arguments are of a different type from those of the ancestor class. In general, the highlighting is richer – for example, the scrollbar in PHPStorm can tell a lot about a large file with code: errors, warnings, comments, TODOs, navigation fails, git changes from HEAD are displayed there; it helps a lot to review the code.
- Rich autocomplete – you start typing the name of the method / function / class / css-class, and then they tell you exactly, as if they know for you what you want to do. This is very convenient, and at the same time a little overview of the structure of the class on which the method is called.
In general, many more examples can be given – all of them have legs growing from the fact that the project for the IDE is a single whole, and he "sees" it. Text editors don't have a concept of a project – that's the key difference.
But even without this, the IDE has many specific useful features, for example, the "Structure" window describing the structure of the class opened in the current tab, for example, a plug-in for working with Git out of the box. Not to mention the fact that only specific editors like Notepad++
do high-quality syntax highlighting, which, although it is more convenient to use like a notepad, but already border on the IDE in terms of functionality.
The main goal of an IDE is to fit a project nicely in your head, even if it's big. Whereas an editor, even a sophisticated one, is primarily a utility (helper) suitable for small changes.
For example, I take notes in Notepad++
, look at the error log (notepad itself pulls up changes in the file – convenient), open sources that are separate from my main project, and also copy-paste pieces of code into new tabs – as a memo. In the IDE, I conduct the main work on the project.