Text editors vs IDE

Recently, there has been a tendency of pointless, from my point of view, discussions about what is better - a text editor or IDE. Moreover, in topics where this issue is discussed, often 400 or more comments. So, people are interested in this question. So you have to write an article.

So what are the goals of the article?
1. What is better for programming: a text editor or IDE
2. Vim and Emacs are not text editors

1. What is better for programming: a text editor or IDE


Let's start with what programming is. Programming is the process of writing lexical, syntactic, semantic rules specified in the specification of a programming language (hereinafter referred to as PL) with its subsequent testing and obtaining a satisfactory final result.

So, programming is:
1. Writing the rules specified in the specification of the PL
2. Testing the written rules

The whole point of the disputes arises because there is no clear set of rules for the implementation of each item. And each person, based on his personal or team needs, uses certain tools. In other words, the choice of tools for implementing the full programming cycle is subjective. And if two or more people who do not understand this, a dispute or discussion begins, which does not carry any result, except for mutual hostility. I propose to parse each item separately to separate flies from cutlets, otherwise the semantic component will tend or equal to zero.

1. Writing the rules specified in the specification of the PL


In simpler terms, programming is writing text. Which implies input, editing and navigation, as well as syntax highlighting (the latter separates simple typing and editing of text from programming). There is one more point, but it will be considered below. These actions are sufficient to implement this item. All these simple steps are in any text editor or IDE. The only question is
what methods are used and how great is their effectiveness. Currently, there are only three main options for implementation:
a) classic universal
b) modal
c) classic advanced

The classic input method is used in almost all IDEs and some basic-level editors (the bright representative of which is mcedit, nano), as well as text editors, which are basic-level IDEs (which are disguised as a text editor for programming). A striking representative of which is kate, geany.

The modal input method involves changing the behavior of the editor depending on the modes. One of the most prominent representatives is Vim. And forks of this product of the same name.

The classic advanced input method is presented to one degree or another in all IDEs and a text editor for the programmer, which is Emacs.

And then the debate immediately begins on which input, editing and navigation method is better in the context of programming. And disputes are usually guided by only two points:
1. The method of input, editing and navigation is not fundamental
2. The method of input, editing and navigation is fundamental

Typically, when there are two or more people who have a diametrically opposite view of this issue, the dispute or dispute becomes chaotic monologue from two sides. The result of which is tending or equal to zero.
Everyone has their own truth, but the truth is one. And the truth in this case is that the second type of people are right at 99.9 (9)%. Efficiency is important in any craft or its component. Whether it's knitting brooms or writing text. Why? Because the increase in the efficiency of any component inevitably leads to an increase in the efficiency of the whole process as a whole. Those who do not understand this do not understand and explain why it is unlikely to succeed. Unfortunately or joyfully, it depends on the goals and aspirations of the opponent \ s.

So, there is 100% of the time, of which a certain percentage of the time is spent on entering, editing and navigating the written code. An increase in the effectiveness of the components leads to an increase in the productivity of the entire programming process.

a) classic universal

Nothing special to say. This method is sufficient for "Writing the rules specified in the specification of the PL". There is nothing more to say about this text management method. There is no point in explaining all its advantages and disadvantages because if there were fewer disadvantages than advantages, then two alternative options for managing the text would not have appeared.

b) modal

Text input is carried out in one of the modes. Editing and navigation are in their other modes. An advantage of this method is that with these two modes, time is not wasted moving the programmer's hands outside the character block. This means that the programmer does not need to move his hand on the mouse or the left / right \ up \ down arrows and the block above (insert \ delete \ home \ end \ page up \ page down). On the one hand - it increases productivity, on the other - it eliminates diseases of the joints of the hands.

c) classic advanced

This type of text management appeared due to the lack of classical text management. Next, I set out my subjective view of this way of management. The advantages of this method are that some editing and navigation operations are placed on certain hot keys. On the one hand, this increases productivity, on the other hand, if the hot keys are not selected correctly, it leads to overwork of the muscles and / or unusual position of the hands or hands and unusual finger movements, which in turn leads to the appearance of a disease such as tunnel syndrome.

If we compare the advantage of this method with the modal, namely, two prominent representatives of two control methods - Vim and Emacs, then few people understand that Emacs is also modal, but it has an indirect modality. And this indirect modality is the reason that many choose Vim than Emacs. Why? This question you must ask yourself. If you fail to give an answer to it, then most likely you do not need it.

2. Testing written rules


Testing the written rules is carried out using two methods:
1. Built-in
language tools 2. External tools (scripts, cli tools)

Both the first and second paragraph are implemented both in text editors and in the IDE. The only question is the competence, laboriousness and expediency of the hours spent on their implementation. At the same time, in Vim and Emacs products, which are NOT text editors, the basic delivery of implemented methods is either not or they are in a deplorable state.

2. Vim and Emacs are not text editors


These products are not text editors. These are the most powerful frameworks for building high-performance IDEs. Since both one and the second are fully programmable. From behavioral changes, to the integration of processing tools, to test written rules.

The lack of functions that are in the classic IDEs suggests that these frameworks are used by people who use other, different, methods to test written rules, and these people / teams do not need to implement them. The only powerful argument from the world of classic IDEs is contextual editing of rules, which is not in the two above frameworks. And he is not for the same reason that was mentioned above.

Question: And yet, which is better, IDEs or text editors?
Answer: Programmable frameworks for building high-performance IDEs! With one caveat: if necessary.

Also popular now: