A few more features besides these come to mind when I think of other IDE’s I’ve used in the past that gave me the “ooh” factor. One of the more prominent ones is JBuilder 7.0 (That’s the version I played with). Several cool features exist in the IDE, that do no exist in VS.Net or IntelliJ IDEA:
· Auto Generated UML diagram of the object model for the current project
o This is a very nice window to show to the boss when they come around asking “SO, where are you?”. It very easily and quickly tells you what your object model looks like, and how each class is connected to others. Although this feature is simple to do (VS.Net has Rational intergration, right?), it’s still not there.
· Full integration with JUnit
o Unit testing has been around for quite a while now. It’s practically one of the corner stones of agile development and is one of the key concepts every developer should at least be aware of. The easier you make creating and running unit tests, the more you provide a better platform for safer, less buggier code. It’s all in the education. No wonder JBuilder have built in integration with JUnit. In a real agile project creating a unit test is about a 50% time consuming task when generating new code, so adding a unit test should be an easy natural thing. While Borland have already come to this realization, and IntelliJ have announced this feature for their upcoming version of IDEA, VS.NET still has to rely on outside sources to do its bidding. Shame on you Microsoft! Either select one framework of unit testing and rely on it for unit tests, or create your own framework (“MSUnit”?) that all vs.Net development will be able to take advantage of. Doing this will signal the world of developers out there that unit testing is a mainstream thing, and that MS is committed to quality code generated by its IDE.
· “Code History” panel
o What’s cooler than this? You have a list of versions of your source file, and just double clicking on the list takes you back before the big changes you just made. It’s easier than “Undo X times” and simpler than doing multiple checkins and “Get versions” from you source code repository. It’s not a replacement, though,. Just an aid to version management on a smaller, more local scope. Can we please have that?