Which is the Best Text Editor?
If you’re new to programming then I’ll bet one of your first questions has been, “what editor should I use?” I’m sure you went off to all the forums and no doubt you got answers such as “whatever you feel mostly comfortable with” or “just pick one and try it” - you may even have been lucky enough to start an editor flame war.
When starting out on your software developer career these kind of responses don’t help one iota, and can become frustrating. You just need someone to tell what to use - at least until you become more experienced. Unfortunately, it really does depend. Still, in this short post I’ll give you my own opinions, which will hopefully help you in making that decision.
Before we get started I’ll tell you the editor I use, or, more accurately the editors I use. My day-to-day editor is Vim, though I use both SublimeText and IntelliJ IDEA as well.
Editors fall in to two categories; straight up Text Editors and IDE’s.
For my day-to-day work I use Vim. This is a highly configurable text editor built to enable efficient text editing, with a medium/difficult learning curve. It’s not as crazy to learn (or as powerful) as Emacs, but you can get up and going in a relatively short time, its mode based editing is great for reducing RSI health issues, and for me, it’s the perfect editor for coding in dynamic languages like Ruby.
However, barley a day goes by when I don’t boot up SublimeText. This is a more traditional text editor but the plugin eco-system is mature enough now that you’ll get a great deal of power for when you’ll require it. I boot up Sublime on most days as I often need to work with large (ebook) text files, performing a good bit of regular expressions and although Vim handles regex as well as any other editor, I don’t like the amount of escaping you have to do. The regex in SublimeText is more like Perl, which is where I learned my regex skills. For eye-ball parsing of text files SublimeText is my go-to editor.
Using an IDE for programming dynamic languages like Ruby/Python and HTML/CSS is probably a bit overkill, but recently when I started learning Java it became apparent that a fully featured IDE is a must for working with statically typed languages as there’s a huge amount of helpful tools. After trying out Eclipse and Netbeans I decided (after reading many reviews and my own judgement) on IntelliJ IDEA Community Edition. If I continue with my Java career then I’ll likely plump for the paid version. As a bonus, Google’s Android Studio is based on the IntelliJ platform so I’m going to be right at home once I start developing mobile apps.
In conclusion, the kind of language you use will have an impact on which editor you choose, and you’re likely, like myself, to end up using at least two. If you’re still unsure on what to choose though then ‘d say go for IntelliJ IDE if you’re developing in Java/C++ type languages, otherwise start with SublimeText. If after a few weeks neither of those two work out for you, it really isn’t much effort to download and start using another.