IntelliJent Software Development
June 08, 2017

IntelliJent Software Development

Kevan Dunsmore | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with IntelliJ IDEA

We use IntelliJ IDEA as our primary IDE for software development. We use it to develop Java, Scala, Python, Ruby, Node.js and front end Javascript code for our entire platform. As part of that development, we write unit tests, integration tests and end-to-end tests for our software. Intellij IDEA is used by all development groups.
  • Smart code development - completion and suggestions are a strong point.
  • Code presentation - folding and highlighting make reading code easy.
  • Tool integration - Download extension plugins for any type of file you want to edit.
  • Source control integration - Use any source control system you like. We use Git and the integration is super simple.
  • IntelliJ IDEA is a *big* product - the learning curve is very steep. I've been using it for years now, so it doesn't affect me too much anymore but developers new to it often get overwhelmed. Perhaps limiting the options, in a similar way to the separate IDE products (RubyMine, PyCharm, etc) would help streamline and reduce the curve.
  • The plugin system is rich but very difficult to navigate and find plugins that might be useful.
  • It significantly cuts down on development time, once the learning curve is overcome, particularly compared to the de rigueur trend of using customized text editors to develop code (Emacs, sublime, etc).
  • It does a great job of code coverage in Java, putting it front and center when writing tests. This encourages developers to not only write tests but to target them to specific areas of code and lets them know when to stop.
  • IntelliJ IDEA lets us standardize our development environment without impinging upon developers' requirements to customize.
There are a number of alternatives to IntelliJ IDEA on the market, some free, some paid. Overall, IntelliJ IDEA is easier to use and far more full-featured as it comes out of the box. It provides a simpler level of customization and the ability to share this customization with other developers. Product support is excellent and feature releases are continuous. I've been using it for years based on these strengths.
I use it for pretty much everything, from Java development to scripting. However, some of the developers will use it only for larger development tasks and wouldn't use it for, say, bash scripting, where they feel it is somewhat heavyweight for a task like that.