DISCLAIMER: I am not affiliated with JetBrains in any way.
This article is not about which editor is superior matrix-based comparison. Sublime Text and TextMate, in my experience, are lightweight and elegant tools for hacking away small code-based projects, quick text editing, less developers in the pool. I am trying to address my specific experience in productivity.
Especially when dynamic language like Ruby, Node.js with multiple developers working on a project containing large code base, it’s brain draining to keep track of changes and look for method and class reference.
Any simple editor is not efficient for developing Java. When integrating projects implemented in compiled language with dynamic language, I had to remember two sets of tool shortcuts.
These context switching between editors, shortcuts, toolchains, and conventions are gradually becoming overhead for me. So I started seeking a better solution to improve productivity.
I listed some requirements of improvements I am looking for, eventually pleased with IntelliJ:
- Work well with Java, good Maven support
- Support additional plugins for multiple language syntax highlighting
- Support dynamic language refactoring
- Support custom build tools, watchers
- Built-in terminal/console
- Have reasonable key shortcut combinations
- Spell checker (yes, I s**k at it sometimes.)
Plugins for Ruby, Node.js, Golang and more
Some plugins are only supported by (paid) ultimate edition (comparison). I tried out those plugins in 30 days trial period, they were working great without any unexpected behaviour.
Ruby plugin is only available for paid users. Lookup reference and refactoring tools are extremely handy for diving into the large codebase, or even jump into external source code. It has many snippets, builds cycles and test utilities available, and the rest:
- Rails integration, with all rake commands
- Breakpoints, debuggers
- Inline documentation lookup (impressive!)
You should checkout detailed video demo and listed features.
Node.js plugins are available for the community edition. Autocompletes and parameter suggestions for Node.js is just amazingly handy. If you were handcrafting each method calls, autocomplete makes us event faster at typing.
This is probably the most horrible extension so far - most mysterious one to setup. IntelliJ does not offer official support for golang yet. There is an opensouce plugin having some basic compling and code completion features. Once you get GOPATH, GOROOT and SDK configuration setup correctly, it’s much easier to start cracking on Go.
Ant build tool to automate iOS and Android build. If you write a native Android app, the official Google Android Studio and the Android plugin for IntelliJ. Here is my custom iOS Phonegap build task.
SASS or alternative LESS.js
I use SASS and Less.js in multiple projects. SASS file watcher automatically builds SASS root files (there’s one for less.js too). Build can be configured to work with Compass too. It even outputs build errors in the log window. After opening IDEA project, I don’t necessarily need to launch a console to run additional watch command. It’s probably ok if there’s only one project you are working on. When tasks and projects getting complicated, it’s better to get setup work out of your way and automate seamlessly. Those noises distract you when your focus is on coding challenges.
IntelliJ supports multiple terminals per project with custom layout and screen positions. When launching a terminal, inital path is set to the current project root. I can get rid of most external working terminals and keep the console sit together with the project. I don’t have to worry about looking for tabs in a separate programe window.
Built-in TODO list
Sublime text support this by an outdated extension. IntelliJ has this bundled without hassle. It also allows me to setup filters, for example, only show TODO tasks created by myself.
This merely covers the surface of the features I love. I am extremely happy with IntelliJ helping me focusing on actual work and being productive in multiple environments. This doesn’t mean it works for your setup, but I strongly recommend to evaluate the daily workflows, identify places can be operated more productively. Maybe just a few bundles in Sublime Text/TextMate might satisfy your needs.
Hey, funny enough that I am writing this markdown post in Sublime Text. Just have to use the right tool, simple.
* Ultimate version usually offers a discount during the year, if you are looking for buying it, keep an eye on those offers.