When I read Andreas’ article about developing without an IDE, I discovered that my point of view towards this topic is slightly different, so I’ll try to explain it:

The question is not about using an IDE or not: It is about where your focus is. When you are in a text editor, your focus is on text. Many people have told me that they are very fond of their favourite editor because it allows them to type faster. But when developing software, the most important thing is not the typing of the text. For me, the most important thing is

  • to get to know the already existing code
  • to find out how it is interconnected
  • to find out how it is organized into modules
  • to find stuff that is already there, so I can reuse it
  • to find the best spot for new stuff, so others will subsequently be able to find it
  • to think about how to implement the new stuff
  • to get inspiration from already existing stuff

and then, only then, some typing may be involved – again, strongly supported by the IDE (which in my case autocompletes about 50 - 75 % of all of the characters I produce).

Do we really want to focus on the typing? Shouldn’t we rather focus on the developing?

I wonder how people can survive in large software projects without proper IDE support. A developer once told me that after using Eclipse for some time on a project, he felt the desire to switch back to Emacs because with Eclipse he started to forget where all the stuff was located.

Doubtlessly, knowing things by heart is a value in itself. Still I wonder whether we really want to know all of this stuff by heart. Don’t we have enough other important things to keep in our minds? Shouldn’t we rather let the IDE take care of the things it can easily take care of, and only leave the hard things for ourselves?

What do you think?


Comments

28.2.2012 by Christoph Pater

One of the main points of GTD (Getting Things Done) is: “Use a system you trust”. So you can use your energie to do the thinks and not to don’t forget.

In my opinion there is so much more in software development to consider than remember the correct syntax, the code organization and so on. So a really good IDE is the system I will trust.

Ok there are exceptions from this rule. If I want to learn a new language or practice I will use no IDE in the beginning.


3.3.2012 by Alonso Albarez

What do developers want?
As Steve Yegge once said: “Tools, tools, tools”
….to automate stuff to get things done in a “better” way.

To me tools always have a context in which to use them.

So what is a reasonable context of using an IDE vs. emacs vs. vim?
I dont think that whatever context, the IDE always wins.

Sometimes I only want to look quickly at one line of code or change something small.
……With an editor as the tool of choice I can do that without waiting for eclipse to have initialized after some minutes.

Navigating a giant code base that I do not know anything about, ……sure IDEs are your friend.
Debugging legacy Java coding ….. without eclipse or some IDE hmm difficult I think.

But after a while I have found the component in the giant code base that needs some changing due to some bug that I was debugging with the IDE. The component is small. Some classes with nice unit tests.
……I switch over to an old fashioned editor which feels responsive and does not stall like eclipse sometimes does suspending work for a couple of seconds or even minutes. I start working.

I think context is key and it depends what you are working on primarily.

I have seen people trying to stage fights IDEs vs. editors.

Like the rails community I think has the tendency to be hands-on, so IDEs are frowned upon.
Like the Java/C# community has the tendency to say “Small code base, editors, ahhhhh they do not work in the business world with lots of legacy code. Will this scale? We do it right. Use IDEs or you are lost.”
When I listened to these kind of discussions I had the feeling that it was more about the definition to which group you belong rails people or java people than a question of tool usage.

In the end it is the judgement of the craftsman which tool to use.

PS: With refactorings I think IDEs should be superior tools, so my question to the rails people: “Can you tell me how to do refactoring in textmate?” I am not a rails person: Que sais-je?