Editor or IDE? Another attempt of analysis
I would Like to once again lift this rather controversial topic.
Since I started programming, this question haunts me, and there are numerous threads on the forums and habré has not made clear. Plus, I think some arguments for one or the other side was not given. And those that the wrong set of priorities and loss of context.
In this article I will try to correct this omission and to put some more points on "e".
I invite all to participate in the search for the perfect tool.
the
To program I started back in DOS. on Turbo Pascal. And, for some reason, the IDE we then used only for debugging, and that is rather rare. For writing code preferred to use a anonymous edit.exe no syntax highlighting in conjunction with Volkov Commander. And that was enough. The same way I was engaged in assembler and partially in C++.
Continuing to learn C++ I switched to Windows and, accordingly, the Visual Studio — where the same without him. Found version if I am not mistaken, from 5 to 7. After a simple editor, it was something — a code generation and auto-completion is delighted. However, in all of this generated a good deal was virtually impossible, but it seemed unimportant.
After a while I moved to Linux and started web development in php. Here simultaneously studying vim and did you use ZendStudio. At some point, started to only use Vim for everything — turned it, in accordance with numerous guides in a small ide. In it, he wrote his first bike CMS in php.
Notice that this programming was not the main my activity. Yes, I work for wrote various small utility, made themes for WordPress, but the main activity was the administration.
As soon as I started the development of vocational opportunities in vim I couldn't. Was the first eclipse, then netbeans, and now phpstorm.
The last half a year heroically trying to master emacs, including as main working medium.
So I have something to compare and hopefully my opinion will be quite reasonable and agrometerology.
the
I have long thought, in what form to give a comparison of advantages and disadvantages of the parties. The list for this is not very suitable, because simple enumeration does not fully reflect the essence of the question. Editor and IDE are not opposites, and tools whose scope overlaps in some area. The advantages of the editor is not always the shortcomings of the environment and Vice versa. For this reason, then there are more or less structured the discussion on the topic.
Let's start with one of the indisputable advantages of the editor — his rich experiences with text and opportunities to do things without taking your hands off the keyboard. Environment mostly do not know how. Only here whether such possibilities when writing code? When writing articles or letters, I think, convenient one button to swap the 2 words, or move a paragraph up the page. But the text of the program is, in most cases, is pointless and requires refactoring. And pay for it you have to either alterability key combinations, emacs, or at least breaking brains commands in vim. But that's all you need to remember! That is solved simply by one movement of the mouse, like move the window or resize, it turns into a quest. Yes, even to select text easier with the mouse — more precisely, faster, and need to count how many words need to place in the text. No, the programmer is also can to be useful to these functions, but the fact that his time spent on actually editing code is negligible, so that the benefits in time will not be almost any. But a significant complication of the tool is evident.
Programmer 80% of my time is spent on understanding the code written and move on it. And moving it is for code, not text! And here he was the editor cannot help absolutely nothing. List of method parameters in the tooltip will not show, go to the method definition will not allow the syntax check. And IDE, even the most simple, cope with it simply and elegantly. I recently spent 10 minutes searching for the definition of one method in a project with silversearcher of emacs. It turned out, the class was defined in another module, etc. for 10 minutes, instead of a single click of the mouse. I'm in emacs, of course, are not experienced enough, so let it be 5 minutes, even a minute. But still the ratio is impressive.
And here IDE shows his, perhaps the only, but very fat plus is the availability of a parser of a programming language. Environment "understands" that it edits the code. Editor — no. And this auto-completion, navigation and highlighting syntactic, and sometimes semantic errors. It seems overkill, nice detail, self-indulgence. But it becomes a necessity once the size of the project will exceed certain limit. And given the volume of modern web frameworks, this limit occurs practically immediately.
Yes, the project of a dozen files and a couple thousand rows, this advantage does not manifest itself in all its glory. The editor can also perform the same auto-completion, but it will never weed out pointless options. And if the project size is close to 100 thousand lines and consists of thousands of files, not counting libraries, it becomes problematic to select the desired title from the Mish-mash of names of variables, methods of other classes, and just the words from the review (it is in vim-e I don't know, maybe, corrected). Intelligent tips eliminate the need to remember the names of the desired functions and their parameters. Often it is simply physically impossible.
Speaking of projects. All IDE there is such a thing. To him attached configuration, the resources can be searched, etc. In editors it is in the best case, the public directory in the file system. Sometimes a little more.
The debugger integration in editors, too, leaves much to be desired. Unit-testing, logging to some extent save the situation, but sometimes without the debugger anywhere.
Someone may argue that in modern editors, many of these functions are already implemented and in no way inferior to the most fancy IDE. I do not agree. First, no full implementations. They do not work as they should. Second, installing all this is a rather difficult task. Yes, even the internal configuration of the editor functions are already non-trivial. Try, for example, include line numbers in the same emacs! Plus, often the desired functionality is implemented by dozens of plugins it is unclear how each other interact. But often also have dozens of versions and branches, are not always compatible, it is strange nastraivalsya, etc. of course, you Can spend a month, all to configure and install (which is also a lot of enthusiasts), but it's just bring the editor to the IDE level. For example, back to the same projects — I have tried Project under projectile under vim and emacs and some plugins. If Project is more or less meets my requirements (although in the latest version I even failed to create project because of bugs) then the projectile has left only negative impressions.
Nevertheless, editors have some applications where they, at least, is a worthy competitor to development environments.
First, they show better on small projects. It makes no sense to download IDE processor to work with project in 10-20 files. Easier in the editor to tweak 3-4 lines.
Second, in some specific areas all the advantages of an IDE are offset. For example, low-level development for linux. I was not engaged, but judging by the code structure and the preferences of developers (70% — emacs and clones, 25% — vim, 5% — some exotic like jed), IDE, nothing to do there. All the code which is working, assembled, typically in one or two files and not need to jump within the entire project. And not much help autocompletion when selecting from a dozen or two functions with nearly identical names.
Third, editors can work not only with the code. All their power you can use when working with csv or xml files. Or something else, what is sometimes necessary, like articles or letters. And no need to re-learn, looking for a good program or remember hot keys — all at your fingertips, all the same.
Fourth, the ability to work with languages for which there is no sane IDE. For example, with the same ruby environment I not much help. SublimeText-and was enough. Although with a large ruby project I haven't worked, perhaps there would the IDE show.
And fifth, the proverbial possibility of extension. If you have a good plugin editor becomes very easy! The particular pleasure plus continuous tunica his primary tool and the feeling of complete control over him — well worth it.
the
I don't really like the IDE, although it would seem that on the previous text. Think its pretty monstrous, with lots of unnecessary features, slow and resource demanding. Yes, and the best of them are quite expensive. In addition, I believe using an IDE relaxes, and binds to itself. The editors, respectively, Vice versa. Plus the accessibility and the possibility of fine-tuning for yourself. At least vim and emacs. In the end, I just love them. This article, for example, I write in Emacs.
But the industry (and the authorities) dictates the requirements. If you do not use IDE, performance will decrease significantly. But no one will give you a half-hours to find a missed point in 10 thousand lines of code. This should be performed automatically and automatically corrected. I also sometimes like to dig in the code without tools — but the work is unacceptable waste of time.
After all my trial and error I made this conclusion — editor of can to use for development, but with the IDE, after a certain limit it is not a match and use the editor for something, for what you pay — a luxury. Yes, if you use the correct coding practices, the right to design/document your code, follow the standards — you can smooth out the inherent flaws of the editors. But we live not in a perfect world, so using an IDE is a necessity, regardless of our desires.
Article based on information from habrahabr.ru
Since I started programming, this question haunts me, and there are numerous threads on the forums and habré has not made clear. Plus, I think some arguments for one or the other side was not given. And those that the wrong set of priorities and loss of context.
In this article I will try to correct this omission and to put some more points on "e".
I invite all to participate in the search for the perfect tool.
the
my experience
To program I started back in DOS. on Turbo Pascal. And, for some reason, the IDE we then used only for debugging, and that is rather rare. For writing code preferred to use a anonymous edit.exe no syntax highlighting in conjunction with Volkov Commander. And that was enough. The same way I was engaged in assembler and partially in C++.
Continuing to learn C++ I switched to Windows and, accordingly, the Visual Studio — where the same without him. Found version if I am not mistaken, from 5 to 7. After a simple editor, it was something — a code generation and auto-completion is delighted. However, in all of this generated a good deal was virtually impossible, but it seemed unimportant.
After a while I moved to Linux and started web development in php. Here simultaneously studying vim and did you use ZendStudio. At some point, started to only use Vim for everything — turned it, in accordance with numerous guides in a small ide. In it, he wrote his first bike CMS in php.
Notice that this programming was not the main my activity. Yes, I work for wrote various small utility, made themes for WordPress, but the main activity was the administration.
As soon as I started the development of vocational opportunities in vim I couldn't. Was the first eclipse, then netbeans, and now phpstorm.
The last half a year heroically trying to master emacs, including as main working medium.
So I have something to compare and hopefully my opinion will be quite reasonable and agrometerology.
the
IDE? IDE...
I have long thought, in what form to give a comparison of advantages and disadvantages of the parties. The list for this is not very suitable, because simple enumeration does not fully reflect the essence of the question. Editor and IDE are not opposites, and tools whose scope overlaps in some area. The advantages of the editor is not always the shortcomings of the environment and Vice versa. For this reason, then there are more or less structured the discussion on the topic.
Let's start with one of the indisputable advantages of the editor — his rich experiences with text and opportunities to do things without taking your hands off the keyboard. Environment mostly do not know how. Only here whether such possibilities when writing code? When writing articles or letters, I think, convenient one button to swap the 2 words, or move a paragraph up the page. But the text of the program is, in most cases, is pointless and requires refactoring. And pay for it you have to either alterability key combinations, emacs, or at least breaking brains commands in vim. But that's all you need to remember! That is solved simply by one movement of the mouse, like move the window or resize, it turns into a quest. Yes, even to select text easier with the mouse — more precisely, faster, and need to count how many words need to place in the text. No, the programmer is also can to be useful to these functions, but the fact that his time spent on actually editing code is negligible, so that the benefits in time will not be almost any. But a significant complication of the tool is evident.
Programmer 80% of my time is spent on understanding the code written and move on it. And moving it is for code, not text! And here he was the editor cannot help absolutely nothing. List of method parameters in the tooltip will not show, go to the method definition will not allow the syntax check. And IDE, even the most simple, cope with it simply and elegantly. I recently spent 10 minutes searching for the definition of one method in a project with silversearcher of emacs. It turned out, the class was defined in another module, etc. for 10 minutes, instead of a single click of the mouse. I'm in emacs, of course, are not experienced enough, so let it be 5 minutes, even a minute. But still the ratio is impressive.
And here IDE shows his, perhaps the only, but very fat plus is the availability of a parser of a programming language. Environment "understands" that it edits the code. Editor — no. And this auto-completion, navigation and highlighting syntactic, and sometimes semantic errors. It seems overkill, nice detail, self-indulgence. But it becomes a necessity once the size of the project will exceed certain limit. And given the volume of modern web frameworks, this limit occurs practically immediately.
Yes, the project of a dozen files and a couple thousand rows, this advantage does not manifest itself in all its glory. The editor can also perform the same auto-completion, but it will never weed out pointless options. And if the project size is close to 100 thousand lines and consists of thousands of files, not counting libraries, it becomes problematic to select the desired title from the Mish-mash of names of variables, methods of other classes, and just the words from the review (it is in vim-e I don't know, maybe, corrected). Intelligent tips eliminate the need to remember the names of the desired functions and their parameters. Often it is simply physically impossible.
Speaking of projects. All IDE there is such a thing. To him attached configuration, the resources can be searched, etc. In editors it is in the best case, the public directory in the file system. Sometimes a little more.
The debugger integration in editors, too, leaves much to be desired. Unit-testing, logging to some extent save the situation, but sometimes without the debugger anywhere.
Someone may argue that in modern editors, many of these functions are already implemented and in no way inferior to the most fancy IDE. I do not agree. First, no full implementations. They do not work as they should. Second, installing all this is a rather difficult task. Yes, even the internal configuration of the editor functions are already non-trivial. Try, for example, include line numbers in the same emacs! Plus, often the desired functionality is implemented by dozens of plugins it is unclear how each other interact. But often also have dozens of versions and branches, are not always compatible, it is strange nastraivalsya, etc. of course, you Can spend a month, all to configure and install (which is also a lot of enthusiasts), but it's just bring the editor to the IDE level. For example, back to the same projects — I have tried Project under projectile under vim and emacs and some plugins. If Project is more or less meets my requirements (although in the latest version I even failed to create project because of bugs) then the projectile has left only negative impressions.
Nevertheless, editors have some applications where they, at least, is a worthy competitor to development environments.
First, they show better on small projects. It makes no sense to download IDE processor to work with project in 10-20 files. Easier in the editor to tweak 3-4 lines.
Second, in some specific areas all the advantages of an IDE are offset. For example, low-level development for linux. I was not engaged, but judging by the code structure and the preferences of developers (70% — emacs and clones, 25% — vim, 5% — some exotic like jed), IDE, nothing to do there. All the code which is working, assembled, typically in one or two files and not need to jump within the entire project. And not much help autocompletion when selecting from a dozen or two functions with nearly identical names.
Third, editors can work not only with the code. All their power you can use when working with csv or xml files. Or something else, what is sometimes necessary, like articles or letters. And no need to re-learn, looking for a good program or remember hot keys — all at your fingertips, all the same.
Fourth, the ability to work with languages for which there is no sane IDE. For example, with the same ruby environment I not much help. SublimeText-and was enough. Although with a large ruby project I haven't worked, perhaps there would the IDE show.
And fifth, the proverbial possibility of extension. If you have a good plugin editor becomes very easy! The particular pleasure plus continuous tunica his primary tool and the feeling of complete control over him — well worth it.
the
total
I don't really like the IDE, although it would seem that on the previous text. Think its pretty monstrous, with lots of unnecessary features, slow and resource demanding. Yes, and the best of them are quite expensive. In addition, I believe using an IDE relaxes, and binds to itself. The editors, respectively, Vice versa. Plus the accessibility and the possibility of fine-tuning for yourself. At least vim and emacs. In the end, I just love them. This article, for example, I write in Emacs.
But the industry (and the authorities) dictates the requirements. If you do not use IDE, performance will decrease significantly. But no one will give you a half-hours to find a missed point in 10 thousand lines of code. This should be performed automatically and automatically corrected. I also sometimes like to dig in the code without tools — but the work is unacceptable waste of time.
After all my trial and error I made this conclusion — editor of can to use for development, but with the IDE, after a certain limit it is not a match and use the editor for something, for what you pay — a luxury. Yes, if you use the correct coding practices, the right to design/document your code, follow the standards — you can smooth out the inherent flaws of the editors. But we live not in a perfect world, so using an IDE is a necessity, regardless of our desires.
Комментарии
Отправить комментарий