Editor war - The bloodshed behind productivity
23 Nov 2013Be happy with the code editor you use in a daily basis, and remember: don’t be close-minded. Try learning new techniques.
TL;DR
In a long time ago, in a galaxy not so far away, the first discussion about which editor a programmer should use began. A constant war on our dev lives. We don’t know where it began, we don’t know when it started. All we know is that people lose friends, and their minds for it. Its war!
Now seriously
The Editor War, were always present. As beginner devs, we believe that some piece of software that other people use can’t make the magic they said that it does. We believe that our tools are always better, and we are stuck with them. With these beliefs, we blatantly bang our heads on the wall, trying to figure out the solution in our own stubborn way.
Obviously, keeping a closed mind to new software is a very bad practice, and we soon learn not to make that mistake. Many colleagues try to show us new solutions saying: <blockquote>“Do you really use that for coding in X? Try using Y! It is really awesome!”</blockquote> And like any advice, we should be careful about it, but also keep it in mind that it could be useful some day.
When I abandoned Java for Ruby, I was really lost into the sea of recommendations people did around software for coding. I was comfortable using IDEs like Eclipse, and didn’t understand the idea of using a simple text editor as a programming environment. What was all that about? What VIM, Emacs, Sublime have that a complete IDE solution does not have? On the contrary, they don’t have many features that a IDE should have! Why people keep using them? Shouldn’t they use the right tools to solve their problems? (Also check the comments session on IDEs Are a Language Smell)
The new bad word: IDE
What’s so bad about IDEs? Eclipse, Netbeans, CodeBlocks, JetBrains collection (RubyMine, PyCharm, etc)? Why people hate those? Why others recommend it?
What about those text editors? Sublime Text? Vim? Emacs? That’s all child’s play! Definitely Ed is the best! (for the lulz)
After some time spent using some of those tools (Eclipse, NetBeans, RubyMine, Sublime Text, Vim and Emacs), I finally understood what people always question and discuss about. I’m listing here the top 3 points of its down sides and good sides:
- Good Sides
- IDEs
- Smart autocomplete features
- They usually have good VCS tools built in
- Tools for aiding novices
- Text Editors
- Fast!
- Lots of extensions/plugins that make them very powerful and extensible
- Support a lot of languages and file formats
- IDEs
- Down Sides
- IDEs
- Too many options! (Menu is usually complex and have many levels)
- Slow
- High memory usage
- Text Editors
- Initially crude
- Novice unfriendly
- Steep learning curve
- IDEs
Clearly, these points are generic. I don’t intend to deepen the editors’ comparison, because a lot of people already do that, just Google it :)
One of those Google searches leaded me to an interesting discussion on Reddit about VIM vs Sublime, here is the link: “Serious discussion about productivity onto VIM vs Sublime Text”.
The steep learning curve
Don’t blame a novice programmer for his/her ignorance. They are still learning, and that’s what ignorance is! It’s just lack of knowledge or information.
I used IDEs for my first lines of code. After lots of them, you feel that you’re “grown up enough” and feel comfortable with your primary programming language. You start thinking about other possibilities, less machine consuming options and a better workflow for your everyday job. The idea of a heavy software to make software doesn’t see plausible.
This is a common scenario for most of developers that quit using IDEs. They were just fed up with a bunch of tools that didn’t ease up their lives, and were in search of a lighter and powerful software to work with. A piece of software that could easily adapt to his/her hands. This developer wanted a powerful text editor.
So, if you see a newbie using an IDE, show them the power of flexibility. If you are an experienced developer that uses an IDE, show why you keep using it, and why you love it.
Productivity matters
All this discussion have one cause: Productivity.
We all try to discuss this points because of our productivity as programmers. So, How can we be so sure what’s the best tool? How can we measure productivity? We don’t [Fowler 2003].
The Pragmatic Programmer recommends that we should learn a new programming language every year, but you also should stick with a favorite editor. You should know this editor very well, so well that you want to use it on your daily basis (coding, documenting, memos, etc). Productivity is relative.
Conclusion
Be happy with your tools. Try to solve all your problems with them and if you can’t solve a problem with it, try a new one. Always remember: There is no silver bullet.