3 ms·
A couple of observations and questions: I find it interesting that a lot of folks in this discussion seem to accept that an IDE is advantageous for cases invol
by actf 15y ago
A couple of observations and questions:
I find it interesting that a lot of folks in this discussion seem to accept that an IDE is advantageous for cases involving a large code base or a statically typed language. Why is an IDE any less appropriate to use with dynamically typed languages? A lot of the niceties provided by a good IDE for statically typed languages are still available for dynamically typed languages. For me, the case in favor of using an IDE is the same regardless of the language. The "killer features" an IDE provides are: autocompletion (i.e. intellisense style) and code analysis as you type. I see no reason an IDE cannot provide these features in a dynamically typed language.
Serious question, to those of you who believe an IDE is not useful for dynamically typed languages: Without intellisense like capabilities, how do you remember everything in the language's standard library and for that matter any non-standard libraries you use? Looking up a method or property in the documentation everytime you want to use it seems horribly inefficient. That's the type of job that is perfectly suited for a computer. It seems incredibly ironic to me that computer programmers are manually performing steps that a computer could easily be performing for them. As Albert Einstein said: "Why should I remember anything if I can just look it up?"
As some background I think Vim is a great editor - I use a Vim plugin in Visual Studio all the time, and I often use Vim for editing simple files. I think the addition of omnifunc in version 7 brings Vim a lot closer towards becoming an IDE. Unfortunately Vim's omnifunc capabilities are limited. Contrary to what you'd be led to believe by a lot of well meaning folks - Vim's omnifunc capabilities w.r.t python are nowhere near as capable as the same functionality found in Visual Studio or Eclipse.
I tried an experiment, wondering if I really was more productive in an IDE, and timed myself coding the solution to a couple of simple problems, using python in Visual Studio - I waited two weeks, so the solution was no longer fresh in my mind, and then coded a solution to the same problem again using Vim (note that I even gave Vim the benefit of the doubt here by using it second). For every one of the problems I tested I was significantly more productive in an IDE - sometimes by a factor as high as 2 or 3 times. Anecdotally I think the two features that make me so much faster are intellisense, and code inspection. Having errors appear automatically without the need to run my code is a huge time saver.
I think in the end it's not really about an IDE - it's about the availability of good intellisense like features, automatic code inspection, good refactoring tools, and a good debugger (integrated or not). If those features are available to me when I'm coding then I'll be happy and productive. If they're not then the tools I'm using are inadequate. As much as I would like to use Vim exclusively - unfortunately those features are not available (or do not work well) for the languages I predominately use (C# and python).