Passionate about technologies, innovations.

Why I moved away from Sublime Text and started using IntelliJ

DISCLAIMER: I am not affiliated with JetBrains in any way.

This article is not about which editor is superior matrix based comparision. Sublime Text and TextMate, in my experience, are lightweight and elegant tool for hacking away small code based projects, quick text editing, less developers in the pool. I am trying to address my specific experience in productivty.

Frastrations

I usually work on multiple projects and mutliple programming languages. There were 78 git repositreis I worked on, including private repositories and pet projects. Implementations are in Ruby, Java, Node.js, Javascript, HTML, Golang, SASS, Phonegap, some lovely PHP etc. All of them use different toolchain commands for building or watch file changes.

Especially when dynamic language like Ruby, Node.js with multiple developers working on a project conaining large code base, it's really 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 lanaguge, I had to remember two sets of tool shortcuts.

All those context switching between editors, shortcuts, toolchains and convensions are gradually becoming overhead for me. So I started seeking a better solution to improve productivity.

Criterias

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 resonable 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 (comparision). I tried out those plugins in 30 days trial period, they were working great without any unexpected behaviour.

Ruby

Ruby plugin is only available for paid users. Lookup reference and refactoring tools are extreamly handy for diving into large code base, or even jump into external source code. It has many snippts, build cycles and test utilities available, and the rest:

  • Rails integration, with all rake commands
  • Breakpoints, debuggers
  • Inline documentation lookup (awesome!)

You should checkout detailed video demo and listed features.

Node.js

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 methods calls, autocomplete makes you event faster at typing.

Golang

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.

Phonegap

Althought IntelliJ is not designed for Phonegap. I am able to utilize file watcher and SASS extension to automate building SCSS and Javascript, using Ant build tool to automate iOS and Android build. If you write native Android app, the official Google Android Studio and the Android plugin for IntelliJ. This is my cusotm 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 log window. After opening IDEA project, I don't no need to launch 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 seemlessly. Those noises are bad espically you just want to focus on coding challenges.

Built-in Terminals

IntelliJ supports multiple terminals per project with custom layout and screen posisitons. When launching terminal, inital path is set to current project root. I can get rid of most external working terminals and keep console sit together with project. I don't have to worry about looking for tabs in a sepearte 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 my myself.

Final thoguths

This merely covers surface of the features I love. I am extremely happy with IntelliJ helping me focusing on actual work and being really productive in multiple environment. This doesn't mean it works for your setup, but I strongly recommand to evaludate daily workflows, identify places can be operated more productively. Maybe just a few bundles in Sublime Text/TextMate might satisfy your need.

Hey, funny enough that I am writing this markdown post in Sublime Text. Just have to use the right tool, simple.

* Ultimate version ususally offers discount during the year, if you are looking for buying it, keep an eye on those offers.

Comments