Monday, April 16, 2007

You minus IDE=helpless?

Nowadays, the IDE is your workbench. You can generate your UML, debug, run embedded servers, inspect your code, read the Dilbert strip...all from within a single application.

With each release boasting nifty features, there is very little reason to leave the comfort of your IDE.

Or is there?

In the good old days, we had no such pleasures. I remember writing code in Notepad, and was thrilled when I discovered EditPlus. Debugging meant compiling on the command line, fixing error by error till you had a successful compile, starting tomcat and testing your web app. Today, you can do all this and more at the click of a button.
This is certainly great news for the developer...and a very bad habit as well.
No doubt IDE's save you a lot of trouble and time. IntelliJ IDEA has increased my productivity tremendously and helps me with a whole lot of things- including reading the Dilbert strip ;-)
But, if I had no IntelliJ for a day, then I would still be able to code in EditPlus and look up the JavaDoc from wherever if need be, deploy my application and debug it. And that is the difference.

Too often I see IDE whizzes who can do almost anything with CTRL, SHIFT or ALT and one or two keys. But take the IDE away...and they are helpless. This is Bad Thing in my opinion. The fallout of not knowing the basics is terrible. And this doesn't just apply to software.

I have seen cases where for some reason, the embedded web server plugin fails for whatever reason. Everyone is examining their code and can find nothing wrong...and they're re-examining it for hours and hours. I say shut it down and deploy manually...but few know how to :-)
In fact, very few know how to run javac !!! Turns out that the code base is fine...it was the embedded web server....hours and hours of valuable time wasted because we refused to abandon our beloved IDE.

Consider this scenario- you've developed this fantastic application, deployed it using your IDE, debugged it and it runs like a dream. Then you go to install it at the clients site. And horror of horrors, they don't have your IDE. And won't let you install it. Now what???
You should be able to say so what? You'd roll up your sleeves, check your code out of CVS or wherever, set your build properties, run ANT, deploy, start your webserver and go home in a couple of hours to have a nice drink.
But if you know no such thing...then you'll be pleading with IT to install your IDE and when they refuse you'll have to call someone in your team and have them guide you step by step. And you'll be drowning your sorrows in many drinks after many, many tense hours. Which is a better option??

I am not condemning IDE's. On the contrary. I have used a couple (and IntelliJ by far is THE best...though beware, after using it, like me, you will hate the likes of Eclipse). They are huge help. But use them after you know how to get up and running without their help. If you are developing a simple webapp, can you code a servlet for example, without the IDE? Can you compile it? Can you deploy it? Do you know how to run Tomcat? Where to find the log files?
If yes, then go ahead...open up your IDE and be happy :-)

-Luanne

12 comments:

Aldrin M said...

"many drinks after many" is a better option!! ....heh heh heh ;)

Craig said...

Even funnier is if the target deploy platform is a *NIX type system. There are people out there that will defend Java using the age old "code once, run everywhere" mantra, yet, when push comes to shove can't navigate a shell to save their life.

Anonymous said...

The biggest problem is, if you depend for the generation of your deployable units on your IDE.

it can always fail. or you do not have it. without the ability to build a release you can't even start thinking about solving a problem at hand. cause you can't test it, build it or do anything with it.

Anonymous said...

I would be lost with "vi"! Lost!

evanx said...

Without an editor we can't write any code. Without an IDE, we can't write code quickly.

Why would an IDE not be available? IDEs (Netbeans, Eclipse) are free and available for all platforms, so it's hard to imagine why one couldn't have an IDE available for any length of time?!

Anonymous said...

That should be "without vi"...

Anonymous said...

I don't need an IDE. I can leave it whenever I want... I just want to use it a little longer... It will be the last time, I swear!

thought-bytes said...

Evanx, believe it or not, there are many real world scenarios in which one might not have access to an IDE, even though they are free. My point is that one should not be so dependent on them. As mentioned in the article, I am not condemning them- they are highly useful. But in my opinion, one must be familiar with the best of both worlds- the shell and the IDE.
More comments
Anonymous, there's no need to give up your IDE :-)

zimozian said...

editplus,ant and commandline :) for me

RobJ said...

Learn in an editor, work in an IDE. Make sure your team can write code by not hiring anyone who can't code on a white board.

AJ said...

Hey, its me again. I wanted to suggest something if you do not mind. Please change your blog template to something that is wider and in which posts are easier to read. Look at my blog and you will get an idea of what I am talking about.

I want your blog to be better as there is a lot of excellent content and it, many times, does not attract the readers.

Gautam said...

Yeh its true that 'You minus IDE = helpless?'. I get irritated when people ask me whether X IDE has a feature of . and it lists all the related methods, constants, etc. Its always a good idea of having some experience of coding using notepads and manual deployments prior using IDEs..... Cheersssssssss