Monday, March 14, 2005
« User Group Updates | Main | Am I really that weird? »

This one might cause an interesting discussion, but I thought I'd throw it out there anyway.

Over the past several months I've toyed (without yet purchasing) a few 'productivity tools', namely ReSharper by JetBrains and CodeRush by DevExpress.  Honestly I was extremely pleased with both tools.  Each tool seamlessly integrates with Visual Studio .NET as an add-in.  Each provides mechanisms to quickly refactor code, perform syntax checking, efficiently navigate around the code base, and much more.

I found CodeRush to be extremely powerful.  Its feature set is so extensive, exhaustive, and customizable that it's bind-moggling.  I absolutely love its powerful code templates.  In just a few minutes I had created a template called singleton that upon typing the text 'singleton' it would automatically expand to provide me with code properly formatted, structured, and named (according to the template).  CodeRush has some pretty innovate and stylish features.  I very much like how it highlights code blocks, identifies method and switch exit points with the smooth animations, template usages with the semi-transparent arrows, and much more.  CodeRush has a lot going on.

I feel, however, that the sheer extensiveness of CodeRush's capabilities is overwhelming.  I feel, also, that it's just a little too helpful in an invasive way.  Maybe it's just me and how I enter my code, but I'm constantly having to go back and correct times when it would insert templated text erroneously.  In fact, I spent about 3-4 hrs (I might be low-balling that estimate) tweaking it and adjusting each of the templates to a) my coding standards and conventions and b) run at the appropriate times and not unexpectedly.  Even then I wasn't able to fully fix the issues.  All in all, I am very impressed with CodeRush, but for me it gets in the way too much and I end up spending too much time undoing its helpfulness.  (I'd be interested to see how people compare/contrast CodeRush's helpfulness to Microsoft Word's same inclination...I know people that curse products that do this (especially if they come out of Redmond) whereas they don't hold the same opinions for other products...interesting ;))

ReSharper, on the other hand, is a much simpler tool (not nearly the # of gizmos, shortcuts, and templates) but indeed powerful.  ReSharper provides its own intellisense that I really liked (it can pick up changes in other projects in a multi-project solution, for example).  Also, ReSharper has some very nice inline enhancements; for example it will identify unused using statements, insert using clauses as necessary, et al.  ReSharper also enhances the IDE by providing some functionality that will be present in Whidbey such as 'Close all' and 'Close all except...' context menu options.

It wasn't without its idiosyncrasies, however.  I frequently utilize conditional compilation directives in my code and it has a hard time understanding variables and types declares within directive blocks (e.g. #if DEBUG...).  I'm not sure if this (lacking) capability has been fixed in 1.5 or slated for 2.0+.  Also, sharing ReSharper settings among developers on a team is a bit cumbersome (involving copying a directory containing settings).

At the end of the day I would personally recommend ReSharper (I plan on purchasing it here shortly) as it is much less invasive, allowing me to code to my personal style and taste while still providing me with advanced (and time-saving) enhancements.  I was noticing today that JetBrains is (for a limited time) providing a free upgrade to 2.0 when it becomes available with a purchase of ReSharper for $99....sounds like a deal to me!

Monday, March 14, 2005 6:42:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [1]  |  Trackback