Editor Wars

November 1, 2015     Dan Griffiths    

In the world of development, the choice of editors is usually a very personal decision. Some people are minimalists, some prefer full-fledged IDEs. Some people insist on advanced syntax highlighting, some prefer good, old-fashioned black on white (or white on black). Not to mention the restrictions that a users' operating system place on the choice.

Predominantly due to my long-standing relationship with Linux, and the command line in particular, I've always favored Vim. However, mostly out of curiosity, I've spent the last few months experimenting with other options. These days, I spend most of my time working on a Mac and, though Vim is available for Mac, I wanted to see what else was out there.

Vim (Free/Open Source)


Vim

In the world of editors, Vim is one of the oldest still in common use. However, despite its age, Vim is still under active development and has aged remarkably well. As I indicated earlier, Vim has been my editor of choice for a long time… and for good reason! Its apparent simplicity aside, Vim is one of the most robust, customizable editors around and, even better, it's completely free!

So just what makes Vim so robust? For starters, its longevity. That might sound odd, but Vim has supported a full-scale plugin architecture pretty much since day one. Combine that wonderful feature with the fact that the majority of its user base is comprised of developers, and its twenty-three year lifespan, and you have a massive amount of thought going into extending its functionality. All of this has resulted in a plugin database that, as of today, includes 5,141 items.

    Pros

  • Long-standing, devoted community
  • Robust plugin architecture
  • Extremely low memory footprint
  • Once you learn it, it's extremely fast
  • Available on all operating systems
    Cons

  • Steep learning curve
  • Some commands aren't intuitive
  • Some functions don't feel OS native

Coda (Commercial $99, Demo Available)


Coda

Coda is, among other things, beautifully designed. It sports a modern interface with clean lines and easy-to-understand icons. Unfortunately, many coders (myself included) prefer not to be distracted by lots of graphics while working, and favor a more minimalistic approach. Thankfully, Coda allows users to disable many of the graphical bells and whistles in favor of more traditional textual tabs. However, how does Coda stack up once you get past the UI?

Once you start actually working with Coda, you will quickly discover that it is geared predominantly towards PHP developers. Not to say that it can't be used for development in any language, but it has its own set of helpers specific to the world of PHP. This may or may not be a good thing, depending on the scope of your work. The most obvious of these helpers comes in the form of a documentation sidebar that provides instant access to documentation for PHP, Javascript, CSS and HTML. Seems primarily of use to PHP frontend devs, doesn't it?

Coda also supports a unique, groupable “sites” feature. Again, this seems predominantly geared towards frontend devs but, with a bit of tweaking, can function much like the “projects” or “workspaces” features in so many other editors. Given its focus on frontend development, it should be no surprise that Coda comes packaged with the Transmit engine, allowing instant upload through SFTP, FTP and WebDav.

So… beyond the aforementioned focus on the frontend, what else stands out as a “negative”? The two most glaring issues in my mind are a minimal support for themes and plugins. I know, the lack of theme support thing is kinda reaching, but these days it's virtually expected in development editors. Panic does provide a theme and plugin repository, but it's not community driven like many editor repos. Not a huge surprise in a commercial project, but frustrating none the less.

    Pros

  • Beautiful UI
  • Excellent auto documentation (if you're a PHP/frontend dev)
  • Lots of functionality out of the box
    Cons

  • Crappy auto documentation (unless you're a PHP/frontend dev)
  • Only supports OSX
  • Not terribly flexible (theme/plugin architecture)

Sublime Text (Freemium)


Sublime Text

Sublime is, without a doubt, one of the most popular editors in the development world, and with good reason. It's simple, extensible, and remarkably powerful even out of the box. It doesn't have the bells and whistles of Coda, but if you favor keyboard-driven development, virtually anything can be done without the use of a mouse. It feels kinda like a graphical version of Vim… at least in my opinion. As such, it was my first test editor.

While Sublime isn't exactly open source, its powerful API has resulted in the contribution of thousands of developers to providing numerous themes and a vast array of plugins allowing you to tailor it to… almost anything. Want it to look like a Windows Metro editor? There's a theme for that. Or want something more Mac native? Got that too! Want support for Django, PHP, or CoffeeScript? All completely possible in a matter of seconds.

    Pros

  • Clean, minimal UI
  • Massive community-maintained repo of themes and plugins
  • Lots of functionality out of the box
  • Powerful API for devs
  • Supported on all major operating systems
    Cons

  • Clean, minimal UI (eh, can't please everyone)
  • Moderate learning curve
  • Tweaking it can be addicting!

Atom (Free/Open Source)


Atom

Atom is a fairly recent contribution from the team at GitHub. That's right, GitHub. Of course, that means that it's as powerful, hackable and community-driven as you might expect coming from one of the biggest names in the open source community. It's also completely cross-platform… because it's basically a standalone web app. Crazy, huh?

Of course, being a web app, Atom can be customized in an almost unlimited number of ways. Natively, however, it feels a bit like Sublime. Unfortunately, in my opinion, its greatest strength is also its most annoying weakness. Because it's a web app, I almost always experience a slight lag in… everything. This isn't a huge deal breaker for me in most situations. Lag in text input isn't really noticeable most of the time, but where it actually stands out is in switching tabs with a theme applied. There's ALWAYS a slight delay in applying the chosen theme resulting in a less-than-optimal user experience. All in all, I think Atom is a beautiful addition to the editor ranks, but it's not quite there yet.

    Pros

  • Beautiful UI
  • Massive community-maintained repo of themes and plugins
  • Powerful configuration/settings system
  • Supported on all major operating systems
    Cons

  • Moderate learning curve
  • Tweaking it can be addicting!
  • Minor UI/UX issues

Other Contenders

There's actually dozens of other editors out there (maybe hundreds), so I just picked the ones that are on the top of my list. However, there's plenty of ‘honorable mentions' that are worth looking into if none of the above editors sound right for you…

Or, if you prefer a more full-scale IDE…

The Verdict

Personally, I think that Sublime is the clear winner in my use case. It's powerful, flexible, but still minimal enough to not be a distraction. Being a lot like Vim makes me feel right at home, and that's a bonus. As I previously mentioned, its biggest downfall in my book is that it's so customizable, I seem to get sucked into the rabbit hole of tweaking it constantly. Oh well.

Just for the heck of it, here's the current iteration of my Sublime config, just in case anyone is interested. I'm currently using the awesome Soda theme with Monokai syntax highlighting.

Sublime User Config

{
	"always_show_minimap_viewport": true,
	"auto_complete_commit_on_tab": true,
	"close_windows_when_empty": false,
	"color_scheme": "Packages/User/SublimeLinter/Monokai (SL).tmTheme",
	"default_line_ending": "unix",
	"enable_tab_scrolling": true,
	"fallback_encoding": "UTF-8",
	"highlight_modified_tabs": true,
	"ignored_packages":
	[
		"CSS",
		"Git",
		"Travis-CI",
		"Vintage"
	],
	"match_brackets_angle": true,
	"tab_completion": false,
	"theme": "Soda Dark 3.sublime-theme",
	"trim_trailing_white_space_on_save": true,
	"word_wrap": false
}

Installed Plugins

Categories: News

Leave a Reply

Your email address will not be published. Required fields are marked *

Rating*