Is Your Development Environment Integrated?

Aditya Gupta
97 Things
Published in
2 min readJun 15, 2019

Imagine you’re about to launch an application — but suddenly you notice a red line in your code. You stop the launch and hover the cursor over the line until your IDE tells you exactly what the error is. You fix the error and restart your launch, satisfied that your code will work. This is just one way good, intelligent IDEs can greatly speed up development and help you fix problems.

Java is a language with strict rules, which only makes it easier for IDEs to help developers. Stream operations, List methods, nested if statements — a good IDE can help with all of these. For example, I would never have known about the ArrayList constructor that creates a shallow copy of a Collection if I hadn’t previously tried to use stream operations and collectors to copy a List. A yellow highlight over my code told me, “Hey, something can be improved here!”

For the errors that aren’t caught before execution, good IDEs have debugging features. If you think a certain line might be causing a problem, set a breakpoint there and find out for yourself when the code reaches that point. Being able to look into the state of a program as it’s running is a valuable tool for fixing bugs.

Error reporting and debugging aren’t the only helpful features of a good IDE. One of the most useful (and, for me, time-saving) features is code completion. Good code completion detects patterns in code and fills things in for you, saving significant time. Imagine you just made a constructor with five different arguments, and all you want to do with them is assign them to instance variables. A good IDE can autofill statements like this.name = into this.name = name;. Some IDEs even have tools for automatically creating and assigning instance variables from nothing but a constructor signature. Even better, some IDEs show the Javadoc of whatever is about to be filled in.

But if an IDE only allowed you to write Java code, it would be called just a DE. The I comes from integrating external tools — versioning services like Git or Subversion, build tools such as Gradle or Maven, file formats like YAML and JSON, and much more. Without these integrated features, you would have to constantly switch between tabs to edit different parts of your project and run commands in an ever-increasing number of terminal windows. By combining everything into one interface, IDEs cut down on time and context lost while switching between windows.

And so, integration becomes arguably the most important feature of any IDE. If IDEs were unable to download and look into external libraries, they wouldn’t be able to offer code completion for methods in non-project classes. Without built-in integration for build tools, developers would have to write code in one place and build it in another. Without code completion, all code would have to be written explicitly. And without syntax and error highlighting and debugging features, finding bugs would be a much more tedious process.

Ask yourself: Is your development environment integrated?

--

--