Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am highly IDE dependent developer (NetBeans and Eclipse as I am a JAVA dev). I can code properly if I have an IDE. I can rely a lot on that for development, debugging and deployment. But without IDE I can do nothing. Can code a simple hello world program or some simple UI arranging but I need an IDE to do complex things or long coding of simpler things.

Do you think it harms me? Some programmers who have more than 6 years of development experience strongly believe that it can be harm, but I think that if I can do some complex things rapidly and properly why should I stick to notepad and command line tools to perform a time consuming task when IDEs have a button click to do this?

share|improve this question
26  
Not gonna add this as an answer, but being a Java (only) developer is what can harm you, and a lot. Learn a real language, don't just be another code monkey out of the gazillions using Java just because it's cheaper to use bad programmers. Please? –  Lacrymology Jan 25 '11 at 13:52
5  
This is a fascinating question to me; I have never programmed in anything other than Emacs or Vi. As a consequence I have no idea what an IDE gives you that you could even become dependent on. –  kasterma Jan 25 '11 at 15:09
8  
@kasterma Let me see: code help, refactoring tools, code outlining, debugging, paramterized debugging, stack tracing, parameter watching, solution structuring, rad, intellisense, code snippets, compilation & compiler error assist, standards enforcement, quick start templates, syntax highlighting and alot more ;-) –  Syg Jan 25 '11 at 21:24
2  
I think @Lacrymology comes close to another point: Java is IDE-dependent. Try learning a language where most coders don't use an IDE, like Python, Scheme, or Common Lisp; that'll give you a new skill and keep you out of the IDE sometimes. –  JasonFruit Jan 25 '11 at 22:13
6  
@Lacrymology: Java is not IDE dependent and one of the most popular languages out there. I find it shocking you don't think it is "real" enough. –  Josh K Jan 26 '11 at 2:12

13 Answers 13

up vote 11 down vote accepted

As others have said, it is fine to be faster in your IDE than without it, that's kind of the point. Being able to use complex tools correctly to boost your productivity is an important skill.

However, over-dependence on IDEs can cause problems. Skills and knowledge you no longer exercise will fade away, and your understanding of some aspects may be shallow. A classic example is compiling and running on the command-line - almost every time I do this, I get something wrong (usually class path related), because 99% of the time I let Eclipse do it for me.

This doesn't just affect you when you're out of the IDE - if your knowledge of the complexities the IDE is hiding from you is shallow, then when it goes wrong (and it will go wrong, at some point) you will find it much harder to fix.

I handle this two ways:

  1. Learn new tools in their most basic form. For example, I switched from SVN to Mercurial, but started with the command-line client rather than the Eclipse plugin. This made my understanding of what was going on a lot deeper, which meant I knew what was going wrong and how to fix it when the IDE threw errors.

  2. Practice your basic coding skills on the command-line. One nice place to do this is CodingBat where you get no syntax highlighting, no bracket matching, no red underlines, nothing. Don't forget to also practice those java and javac command-line skills too, though! (And any others appropriate to your workflow - for me, this would also include hg and ant)

Lastly, don't worry about it too much. It's unlikely you'll ever have to do a large piece of work without either NetBeans or Eclipse, so as long as you are capable of coding without them, and understand what the IDE is doing for you, it doesn't matter that you're slower or make more mistakes without it.

share|improve this answer
2  
As a hobby, spending the time and brain cells on knowing the low-level details is fun. Commercially, it loses a lot of value. That's time better spent on learning the business, then implementing with the extra efficiency that the IDE affords. –  Brian Knoblauch Jan 25 '11 at 16:40

No, it doesn't "harm" you. Of course, you should understand how things work without an IDE (i.e. you should understand the basic compilation process, etc) but let's not be masochistic about this... if an IDE makes you more productive than not using one, then why wouldn't you?

share|improve this answer

No. I think it's the other way around actually. The IDE takes away the necessity for you to know a framework by heart (via intellisense) and simplifies otherwise boring/repetitive/complex tasks (debugging, deploying), stuff you really don't care about. This allows you to focus on solving the business problem at hand. Knowing and IDE and knowing it well can really help you write maintainable code faster.

And ofcourse being a developer isn't just about that. The experience you have as a developer helps you apply the correct solution to a problem the crosses your path. I think that's the real skill.

share|improve this answer
2  
+1 for intellisense! I feel sorry for people when I watch them type each character in a program when intellisense will speed that up so much. –  David Jan 25 '11 at 15:25
6  
That's called autocomplete for the rest of us :) –  mhitza Jan 26 '11 at 0:02
3  
@David: It's painful for me to watch people type two characters then wait half a second for the autocomplete to pop up and ask them which they actually mean. Then they will transfer to the mouse and scroll through the available selections until finally clicking on one of them. No, autocomplete is not a godsend or even truly useful. It's a tool of the lazy. –  Josh K Jan 26 '11 at 15:15
1  
@Josh K: That's true. Autocomplete can make bad programmers worse, but it can also help good programmers be more efficient. :) –  David Jan 26 '11 at 15:27
2  
@Josh But surely there is more to intellisense/autocomplete then finishing the name of your method? How about inline method descriptions (what is does and which parameters it takes), availabe method overloads, access to code snippets, insight in which methods you can override etc. It find it really helpfull, nothing to do with being lazy.... –  Syg Jan 27 '11 at 7:39

You're not that "dependent", as both of your IDEs are open source, so they won't just disappear or get accidentally "improved" to the point of being unusable. And the language of your choice does not leave you any options - you're dependent on gazillions of libraries, and it is just stupid to try to remember all that unimportant stuff when there is an IDE to assist you. Java is wordy, verbose, and you can't be productive without smart tools that leverage the redundant verbosity.

share|improve this answer
    
would you say the same for another language?(i'm thinking PHP in my case) but i'm not sure its a good advice as a general rule. JAVA might be an exception here though –  Quamis Jan 25 '11 at 12:33
1  
I'd say the same for C#, may be for PHP as well. Any combination of a language and a problem domain where you have to use a huge set of diverse libraries will require smart tools. Some languages are powerful and expressive enough to be usable without numerous libraries - and you can code simple things without IDEs. Some languages needs assistance always, for even simplest things. When I code in Lisp, I'm fine with emacs or even a CLI REPL. When I code in C# or Java, I won't do anything without a decent IDE (msvs or eclipse). –  SK-logic Jan 25 '11 at 12:38
    
but should't the need for "intellisense" or "form designer" be an alert for badly organised(or named) object members? I've that observed people that uses intellisense a lot tend to use longer and more verbose names for objects/functions/variables making these names harder to remember in the first place. should i understand that this is a good habit also? –  Quamis Jan 25 '11 at 12:45
    
Quamis: Isn't it the reverse? Having to type makes you choose short names that don't describe the class/method as well as a long name would. –  Niphra Jan 25 '11 at 13:00
    
@Niphra: yes, and i pesonally like shorter names more:) in my opinion makes the code easier to read..if the method does something that cannot be described in a short way, then yes, a longer name is acceptable, but i'm trying to keep it short basically, and i dont see anything wrong with it. –  Quamis Jan 25 '11 at 13:07

There's nothing wrong in being more productive with your chosen set of tools. But if you just can't work without it, I would be very suspicious about your inner knowledge.

Don't abandon the IDE; but from time to time try to do a couple of 'easy' classes with just an editor and documentation on a browser.

Remember that even faster than the best tools is not having to use them.

share|improve this answer
    
I am not stopped or dumbstruck (in 40% cases) if I don't have an IDE, but my speed will be drastically reduced if I don't have an IDE around. To do a ten mins task with IDE I have passed a whole day with notepad and javac when my ide is crashed. –  Prasham Jan 25 '11 at 12:35
    
well, notepad is going too low. try a programmer's editor, like notepad++. Think of it as an exercise: it's not fun but makes you better if you do it regularly. –  Javier Jan 25 '11 at 13:47

Being IDE dependent has the following risks:

  • you end up creating a software build that requires a specific IDE and version.
  • you force other people on your team to use that IDE to build the system.
  • you can't easily automate the building of your software.
  • you have no idea what your software dependencies are.

So make sure you can build your software from the command line also. E.g. In Java use maven or ant. Then you mitigate the above risks.

Other IDE dependency risks:

  • the IDE flags errors and warnings in your code and gives you quick fixes. These may not be appropriate - maybe there is a design or requirements issue at play.
  • you forget the basics - you need to know the basics of your chosen language so that you can master it and so that you can convey proficiency at interviews.
  • you end up stuck in an IDE sandpit - afraid to try anything new or anything that is not supported by your IDE. For example your IDE may have quite extensive functions for search and replace. But these are nothing compared to the power and speed of command line tools such as grep and sed. You may not do Android development because your chosen IDE (e.g. netbeans) does not support it well.
  • some IDEs can't handle large files - e.g. try to open a large server output file in eclipse. It takes forever and/or runs out of memory.
share|improve this answer
3  
I agree with your points, but I don't think it addresses the real question. The asker is not just dependent on Netbeans for example. If he/she was then all these points might be true, but the question as I understand it was just using an IDE in general as opposed to a basic text editor and the command line. –  jzd Jan 25 '11 at 13:55
2  
References to IDE instances in my answer are just examples of how IDE dependence can be risky. I'm not specifically pointing out netbeans or eclipse. –  Conor Jan 25 '11 at 15:55
    
I use Netbeans at work, but I wrote all my Ant scripts by hand so that anyone can build the project without requiring Netbeans. I like the editor features and easily navigating the code, but I do whatever I can to keep it IDE independent. –  jonescb Jan 25 '11 at 21:23

I think the harm from overdependence on an IDE comes in to play when you mindlessly rely on the wizards to generate code for you. Both NetBeans and Eclipse are fairly light on those, which is a good thing IMO. Another harm would be if you only know one IDE and can't use others. Some companies have policies that dictate what you will use. For better or worse, it is what it is.

I would argue that if an IDE doesn't make you more productive, it is not worthwhile. For example, I'm the most productive with JetBrains IDEA, but Eclipse has come a long way and I can be pretty productive with that. Eclipse has also been adapted for a wide range of uses--which is a double benefit. While I can get around in VIM, or some other text editor, there are other features that I find irreplaceable in most current IDEs like refactoring support.

share|improve this answer

I don't think you're doing yourself any favors. Granted, you're using Eclipse, which is freely available and runs anywhere you have a JVM. But I've run into situations before where I had to remote in to another machine via a terminal session with no X server, meaning I had to use a plain text editor like vi and build on the command line. I also work in an environment where the development network is physically isolated from the rest of the world, and all transfers between it and the public network are via physical media. The only reason we have Eclipse on that network is because it went through several layers of approval first.

I cut my teeth on C and Fortran 77 in a command-line environment (VAX/VMS), so I find the notion of needing an IDE somewhat suspicious. However, those are tiny languages compared to the beast that is Java; given that you need a forklift to carry the latest Java Nutshell book around, I can see how having the IDE available makes life a lot easier.

share|improve this answer

But without IDE I can do nothing.

I need an IDE to do complex things or long coding of simpler things.

You can fix that, you know.

You could actually learn the language and framework.

Nothing's stopping you.

Unless, of course, you're bragging about being dependent on the IDE.

why should I stick to notepad and command line tools to perform a time consuming task when IDEs have a button click to do this?

Is unrelated. "Stick to notepad" is entirely unrelated to "without IDE I can do nothing". Doing nothing in notepad is nothing like sticking to notepad. Which is it?

share|improve this answer

Let's try a good text-editor, e.g. PSPad for MS-Windows (freeware), TextMate for Mac OS X, Geany for GNU Desktop (opensource) or Kate for KDE (opensource).

MultiEdit4.0 for MS-DOS has changed my life several years ago, since then I am very sensible for text editors.

share|improve this answer

It may not really "harm" you, but you would gain if you are also familiar with doing things without the IDE. Don't be afraid to expand your horizon.

Remember that most dev tools are written as command line tools first. IDEs are afterthoughts, which is fine. On the other hand you'll often find some "hidden gem command line switches" or "advanced tricks" that you can never find out if you keep point and clicking.

So to answer the question "How can it harm me?" I think it would harm you when you become so attached to it that you believe all command line tools are going to be slower than clicking buttons, to the point that you avoid learning the command line tools (which are the origins).

It's just like learning assembly as a programmer -- very few of us write assembly by hand today, but I believe the ones that understand assembly are better programmers in whatever language they're using.

share|improve this answer

Being IDE dependent may not necessarily harm you, but being able to operate without your environment of choice is a vital skill.

IDEs can stop you from learning 'little things' that are typically insignificant and can help you get the job done faster because you avoid the useless typing/boilerplate. You can also typically fix problems as they occur e.g. misspelling a function.

My personal rule when learning any language/framework/etc is to learn it the hard way first. Then once I've mastered it, I fell I have earned the right to do it the easy way. The thing is, if you do not know some of the little nitty-gritty details, when your sewer main starts spewing crap out of the kitchen sink, you will be SOL. If you know what the underlying operations that could be a potential cause, you can likely fix the problem or stop it from occurring altogether.

share|improve this answer

Being computer dependent is already pretty harmful. I always program in a loin-cloth with a big stone tablet and a hammer. The code takes a while to smash out, but when you finish a particularly big method, you usually eat something. There I try to be independent of the supermarket and that sort of thing, so I grow all of my wheat at home and just eat that. Of course, the wheat seed and water suppliers pretty much have me hooked, making me think that there's no way out of this cycle of dependence.

Seriously: if <disclaimer>you use an IDE and</disclaimer>you find yourself without an IDE and you MUST program, you should just consider yourself game over and

  1. Call IT or
  2. Fix the problem yourself if you are IT

Not only shouldn't you program without whatever tools you deem necessary, but you also cannot use toothpaste as thermal paste.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.