On 05/12/2012 08:04 AM, Nick Sabalausky wrote:
"Timon Gehr"<[email protected]>  wrote in message
news:[email protected]...

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!".

The - ... points were meant to apply to all the other points in their group. Eg. navigate-to-declaration is extremely annoying if after the click, there is a pause of multiple seconds.

In fact, I'd put "responsive" at the top of the "essential" list.


I have to agree. It could be argued that responsiveness was included in 'starts up instantaneously'/'supports editing text efficiently'.

Reply via email to