The editor war
When Unix culture became popularized, the community quickly found itself entertaining fierce discussions. Put a bunch of programmers in a room and they’re bound to disagree about the merits of operating systems, programming languages, version control systems and even indent style. One of these “holy wars” was the rivalry between users of Emacs and vi(m), also known as the editor war, which — according to sources — has been going on at least since 1986!
Today, this so-called “editor war”, seems far from over. Channels like Reddit, HackerNews or Medium are ripe with people proclaiming (sometimes shouting) which tool is “best” (usually, their editor or IDE of course!), and I used to be very reluctant to get involved. When I first started working in software development I briefly used Komodo and Spyder, before joining a company that used SublimeText and, later on, VSCode. I was happy with all of these tools, and didn’t care for foul-mouthed fanboys of this or that editor du jour.
Recently, however, I have come to appreciate these discussions (if civil, of course) and especially the critical reflection of which tool is best for you. Because, let me be clear from the start, there is no such thing as “the best” editor.
The right tool for the job
Which editor is best for you, is a highly personal matter. It depends on a lot of factor, such as personal preference, but also the work you do. A Python developer might prefer PyCharm, because it arguably has the best tooling for Python development. A data scientist will be very comfortable using VSCode, which has excellent integrations for Jupyter Notebooks. A UNIX sysadmin might prefer Vim because it integrates seamlessly with a terminal workflow like tmux… And sometimes, like on a remote system, your only choice might be to fire up vi…
Only a fool never changes his mind
In other words, the editor or IDE you use should be a deliberate choice based on your development needs and a comparison of the available tools. This means that there are good reasons to at least consider switching editors once in a while. Just like a carpenter would not use the same tools throughout his career, software…