No IDE: A New Experience

Last week, we were attending a small conference that also included some one-day workshops. I chose to dig a little bit into Node.js. The workshop was held by Golo Roden.

I must admit I’ve had prejudices against JavaScript. And so I chose this topic to gain new insights. Now I know a lot more about JavaScript, have more questions and I really wonder:

Is it possible to conduct large complicated projects without an IDE?

I started developing software more than a decade ago with Smalltalk. For those of you who do not know Smalltalk: There is no separation of the IDE and the product. You don’t even work with files. Have a look yourself: – The non-existence of files in the Smalltalk IDE will give you an impression of how I feel with files. About ten years ago I had my first encounter with a different language based on files: Java. – Wow, that was strange at first.

To you this may seem weird. Programming without files? – To me it has been the other way around.

And last Thursday I’ve been attending my first workshop without even an IDE. Only an editor and a command line. – And it worked well for me. At least I was able to type in all the code (or should I say text?) Golo showed on the screen and made only few typos. I was really happy to have a quite sophisticated editor capable of JavaScript: syntax highlighting, able to show brace coherence.

But: I really wonder whether this will scale.

  • How will this work with more than ten files?
  • How will you do refactorings?
  • How can you see relations?

To me one aspect – if not the most important one – of programming is to be able to navigate my code. I definitely do want to see the implementation of a method or function I call. I want to be able to find the potential callers of a function. All this typing is so distracting from the product I’m about to build.

  • I have to know what is already defined to be able to use it.
  • It’s a pain (and slow) to look it up by reading potentially concerned files or documentation.
  • I have to remember the filenames where stuff is defined.
  • I have to track everything inside my head – in detail!

Is this really a professional working style? – What do you think?

 Instead I’d like to be able
  • to see an overview of my code
  • to see the big picture

This is even hard in today’s IDEs. But closer than just an editor.

P.S.: Some googling pointed me to obviously working IDEs for JavaScript with more than syntax highlighting.

4 thoughts on “No IDE: A New Experience

  1. Working without an IDE is nothing too special… in the realms of Ruby and Ruby on Rails it is quite common for coders to works with Textmate/Vim/SumblimeText and the command line only.

    Yes, those editors come with syntax highlighting, a file/folder-view and various tools that you also may find in an IDE (like running test from within the editor). But while they are missing some of the goodies an IDE will present you, working with those much leaner tools feels faster and more ‘hands-on’, as you are always in control of what is happening (e.g. you do not rely on some IDE macros).

    And at least in the Rails world it is possible to handle large projects without an IDE.

    Right now, working with the Editor + Command combination, is my favorite way.

    • Thanks for the illustration. I guess I should have made clear what I really mean by big: (much) more than 500 classes, more than 100k LOC.

      What is your dimension of “big”?

      • We also do Rails-work. There is one project (7 years old) with about 400 classes and 150k LOC (ruby is very terse, so take this times 5 for java :). I personally prefer the Ruby Mine IDE, but we had two devs on the project, who always use vi only.
        You need to have good command line tools to compensate for missing IDE features. Stuff like test runners, code coverage, documentation look up, etc…

  2. Even when using Smalltalk, your sources will end up getting stored in files. The IDE might or might not hide that from you but that doesn’t change the fact. BTW: Eclipse shows files only when you ask it to do so. The notion of class = file breaks with simple things like inner/anonymous classes.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s