"Timon Gehr" <timon.g...@gmx.ch> wrote in message news:jok96k$l7t$1...@digitalmars.com... > > Properties of a 'good IDE', as I see it: > > some essential properties: > - starts up instantaneously > - uses the screen space efficiently > - supports editing text efficiently > - accepts keyboard input as given by the user. > - reasonable support for auto-indentation > - supports searching the code for some text efficiently > - keeps all code _readable_, especially the one that has been written > recently > - pattern recognition based code completion > > - ... by default! > > some 'nice to have' properties: > - code analysis based code completion > - navigate-to-declaration > - for those languages that require it: automatic generation of > boilerplate. > - integrated debugger > - useful refactoring tools > - visualization of compilation errors (but please don't nag me) > - actual support for detecting semantic errors as they happen (extremely > difficult to do properly) > - any other argument that is commonly used to advertise IDEs > > - ... _responsive_ on halfway recent hardware! > > some anti-features: > - splash screen > - cannot run code if there is no 'project/solution file' > - sometimes messes up those files > - build fails - restart IDE - build works > - fancy GUI > - requires pointing device > - accidental hit of obscure keyboard combination ... > => permanent, extremely annoying configuration change > => no way to tell what happened > => no undo operation > - termination of the debugged program kills the output console > > > As long as IDEs fail to satisfy every single point in the 'essential' > category and strive to have all of the stated anti-features, they don't > have much value for me anyway. >
Hear hear! Although I'd swap the positions of "pattern recognition based code completion" and "_responsive_ on halfway recent hardware!". In fact, I'd put "responsive" at the top of the "essential" list.