search
top

The importance of a good IDE

A programmer faces he’s problems through the tools he or she is using.

The romantic period of development.

Back in “those days” we were skillful programmers (well I was just in high school) taking the problems as they were. No tools (almost) were available for us. I was programming Basic and machine code on an old Russian made Sinclair Z80 clone. Now that was fun… But aside from my lack of experience in programming, it was a very slow process. There was no tool for code editing and I don’t think the word debugger was in my vocabulary yet.

In the faculty I’ve start using more evolved tools, like Visual Studio and Delphi but at my first job I have discovered Emacs. It was love at first sight. Back then there were three kind of developers: the ones that were using emacs, the ones that were using vi and the rest. And was not cool to be in “the rest” group. You were not being considered a real developer for doing drag and drop of buttons and other controls onto an interface and after that just change a bit the code.

Being a good programmer meant remembering a lot of C libraries and functions (STL was a breeze) or C++ and Java classes. Debugging meant investigating a core dump after a segmentation fault (that was a really nice error).

The competitive period of development

We have changed perspective and working places. The challenges grow up in size and the demands too. First time using a JBuilder (6) was bit frustrating but soon the rewards were far better than the lost of our “coolness”.

But how important is a good tool for a developer and what makes a tool to be a good or a great one?

  1. syntax coloring – I think this was the first feature that appear into a code editor. It is a helping hand in reading with ease the source code (aside code formatting but this is often the developer job the write a clear code)
  2. code completion – this is the feature that separates the good guys from the bad guys. Without a good and comprehensive code completion the programming is simply more time consuming as no person can remember every method and field in every class that he made. That is not speaking about the different third party apis that must be used into a project. Code completion comes now in different flavors. Some IDEs are trying to propose the best completion in the current context, others are offering the documentation along with the completion items.
  3. powerful search tool – while the code completion is in fact a search tool, helping us to easily find a method or field, in a lot of cases we must search for a text inside the current file or the current project. Regular expression searches have become now a standard in most of the IDEs and search and replace in multiple files is a very useful and used tool. From time to time you might encounter an innovation such as the file search tool from IDEA (Ctrl+N) that is looking for java files using camel letters.
  4. refactoring – I think this is kind of a “new age” feature. Changing a class name or method signature is becoming an easy task if you are using a refractory tool. No more searching for occurrences in other files.
  5. code snippets – this help in avoiding a lot of repetitive coding.
  6. versioning systems integration – as projects become bigger and the teams larger the necessity for a versioning system integration is obvious.

Along with this “basic” IDE features, each one of them comes with a lot of features that are related to the kind of development it is meant for. For example Together Control Center comes with a long list of preimplemented design patterns. If the IDE is meant for enterprise development it will come with specific tools to help developers to deploy their work on the server with ease. And so on.

Anyway, the time for romance has gone. Today you can spent a lot of time doing small, boring and unimportant tasks by not using the proper tool. A good IDE means better productivity for the programmer and more money for for his employer.

Leave a Reply

top