My favorite text editors for web development

I’ve been neck-deep in web development for the last eight months or so during which I’ve been hopping between three different text editors — Webstorm, Sublime Text 2, and BBEdit 10.5. I thought I’d post some thoughts on what the good and bad aspects of each are.

Webstorm

Webstorm ★★★★★ is the web-flavored version of Jetbrains highly-regarded IDE. Despite, I believe, being written in Java it feels light and while not native its UI is solid. It has lots of nice features including jshint/jslint integration (which could be better) and pretty intelligent auto-complete (which is no mean feat for Javascript projects).

  • Very capable. Cluttered.
  • Doesn’t feel quite as lightweight as Sublime or BBEdit, but it’s very nimble compared to (say) Eclipse.
  • File-browser + Tabs seems wasteful of screen real-estate. I’d rather waste space on tabs than file paths.
  • Ridiculously configurable, which is a mixed blessing.
  • Project-centric to an annoying degree (e.g. you can’t just create a scratch document you don’t plan to save anywhere).
  • jshint/jslint and refactoring suggestions integrated into the editor (UI is very fiddly, but the integration can be very helpful).

Sublime Text 2

Sublime Text 2 ★★★★★ (version 3 is in testing) is flavor of the month in text editor world. Since version 2 came to the Mac it seems to have taken over most of Textmate’s mindshare (and deservedly so, it’s a far better product in most respects than Textmate ever was).

I should note that while I’ve played around with Sublime Text a fair bit, and admire it, I don’t actually use it for anything serious and haven’t actually licensed it (in part it’s because I’m waiting to see if version 3 addresses my few complaints).

  • Side-by-side editors are awesome, and great use of widescreen display.
  • Great tab implementation.
  • Nice modeless search, including multi-file search.
  • Lots of cool features such as multi-select-editing that I don’t use.
  • Minimap is a cute but generally useless gimmick.
  • Go to Anything… is awesome.
  • Ctrl-M to jump to matching braces is awesome.

BBEdit 10.5

BBEdit 10.5 ★★★★★ is the crusty old man of Mac text editing, having started life in the 608×0 era and yet having managed to weather the storm of many rivals to make it to the current day. (I first got BBEdit as a free bundle with Dreamweaver 1.0 which, at the time, couldn’t actually edit text files worth a damn, and instead would “round-trip” HTML source to BBEdit).

  • Popup menus for open files and functions in the current file are incredibly useful, but clunky. I tabs and keyboard-driven alternatives would be better respectively (there is a keyboard alternative to the open file popup, but it doesn’t differentiate between opened and unopened files).
  • Modeless search is cute but lacks features of and integration with regular search (e.g. regexp support).
  • Aging UI. E.g. I don’t understand why the Search and Multi-File Search dialogs aren’t the same dialog.
  • Best Regexp implementation I’ve seen in any editor, including remembering previous searches, ability to save queries, and full documentation.
  • Best Multi-File Search implementation I’ve ever seen in any editor (but it’s driven by modal dialogs and search results windows)
  • Most of the time when I see someone using a cool feature in some other editor (e.g. Sublime’s “Go to Anything…” shortcut) I discover BBEdit also has Open File by Name (which isn’t quite as smart).
  • Double-click to select contents of matching braces is even awesomer.

In the end, despite some quirks of its aging interface, I find BBEdit to be my go-to editor, but I envy the elegance and utility of Sublime’s basic UI and modeless search and Webstorm’s auto-complete (I’d also miss Webstorm’s jshint integration, but we’ve actually built jshint integration into our project documentation and it works even better). As always, I hope the next versions of my favorite editors will address my complaints and add new enviable features.