I've been musing lately on IDEs and editors, and it seems to me that none really offer any facilities which actually help to
design code; they all pretty much focus on helping programmers write stuff which they have designed elsewhere (on a whiteboard, in their heads, on post-it notes, whatever).
Wouldn't it be cool to create an editor that helps with the design as well?
Some features I can think of straight away are:
- create function stubs from the (public and private) interface to a class
- add the set of classes comprising a design pattern to a project
- add unit test boilerplate to a class or function
- add function stubs for overrides when deriving a new class
- features to help design loops (using loop invariants), if statements (using truth tables) etc.
Even these suggestions don't really attack the design issue, but I don't know of any IDE or editor which implements them. Of course, this may be because I'm the only person on the planet who thinks this would be useful.
I'm sure others can think of many better features. Of course, almost all will be language and paradigm specific (I mainly work, think and dream in C++). But perhaps the SlickEdit team would be willing to look into this a bit (after all, the refactoring support is targeted mainly at C++).
I guess some of these things could be implemented using Slick-C, but I haven't really looked into it's capabilities yet. To be really useful you'd probably need to be able to parse existing code (e.g. the declaration of a C++ base class) and I don't think this capability exists in Slick-C (or any other IDE's scripting language).
Any comments?