Code Rush Vs. ReSharper

iStock_ Shrugging Man Medium Its funny how sometimes there are pairs of products that contend for “best” and yet seem to be so evenly matched that the decision is often arbitrary, a pick made based on what your friends use, what you used first, which commercial (or Evangelist) is better.  Some classics come to mind

  • Coke v Pepsi
  • Parallels v Fusion
  • Starbucks v Pete’s

None of that prevents adherents from a total conviction that whatever product they happen to use is far superior (see cognitive dissonance), but I’ve never been able to detect much difference.

There are times, however, when we are confronted with a choice between two products where the choice is consequential.  This is especially true if the investment in learning how to use one makes converting to the other painful, if the product will be critical in your life and especially if your sense of self is tied up in your choice.  We see this very clearly with the Mac v PC choice, the C# v. VB.Net choice and so forth.

My dilemma is with CodeRush v ReSharper.[1] They meet all the criteria: the learning curve on either makes switching to the other non-trivial; they are critical in my work and I certainly don’t want to choose the one that all the hip geeks sneer at.

What Are These Things?

Let’s start with what they have in common.  Both are add-ins to Visual Studio and both greatly enhance your productivity and the quality of your code. They do this in three key ways (and lots of other smaller ways)

  • Making it easy to identify areas of the code that are outside your own coding guidelines
  • Making it very easy to refactor your code
  • Providing “Intellisense on steroids” reducing the amount of typing you have to do.

CodeRush is a DevExpress product, and their front page says,

For Developers, CodeRush for Visual Studio® .NET will help you create sophisticated code blocks in seconds and extend code templates instantly. CodeRush will complete identifiers as you type and expand or contract selections logically. With CodeRush, you will be able to instantly place selected code inside Try/Catch blocks, Regions and your own custom wrappers with ease.

ReSharper is built by JetBrains and their front page says,

  • Continuous code quality analysis
  • Instant fixes to eliminate errors and code smells.
  • 40 solution-wide refactorings to safely change your code base
  • 200+ code editing helpers.
  • I’ve yet to see a comprehensive head to head review that wasn’t out of date by the time I read it, and, to be honest you won’t find one here either.

    Some of the most important distinctions I have found so far, however, are these:  [2]

    CodeRush Wins ReSharper Wins
    Refactoring – fewer key strokes Ability to apply formatting and refactoring rules all at once (one key fix)
    More refactorings Some key refactorings not in CodeRush
    Better identification of memory leaks in non-managed code More code issues reported
    Many more snippets – much less typing but you have to remember the short-cuts Better Intellisense supplement
    Terrific real-time learning, context sensitive window Possibly more focused on C# and less on non-managed code
    Better support for Unit Testing Better searching

    It’s a pretty close call. One thing that I’m hoping is that if I spend enough time in both I’ll get a better sense of which is less intrusive and which is more readily called upon when needed. These are surprisingly elusive characteristics.

    So, do you use one or the other? Do you have a clear preference and if so why?  Please, use the comments to share your thoughts and experiences.

    Footnotes

    [1] Full Disclosure: I have multiple license of each. At least one of the companies provided a free copy because I was working on an Open-Source project, at least one license was provided at an educational discount because I’m on the faculty at Brandeis University. It is very possible either or both provided free licenses before I joined Microsoft, and certainly the technical evangelists for both have been wonderfully eager to help me stay within corporate and ethical guidelines while making it easy to obtain their products.

    [2] Even Fuller Disclosure – this list is based on my observations and also comparison points from both company’s sites and in private correspondence from Gary Short, a truly terrific human being who is a DevExpress Technical Evangelist.  Interestingly, the most balanced evaluation was Gary’s!

    Share

    About Jesse Liberty

    Jesse Liberty is a Master Consultant for Falafel Software, and has three decades of experience writing and delivering software projects. He is the author of 2 dozen books and multiple Pluralsight courses, and has been a Technical Evangelist for Telerik and for Microsoft, a Distinguished Software Engineer for AT&T, a VP for Information Services for Citibank and a Software Architect for PBS.
    This entry was posted in Tools and Utilities and tagged , . Bookmark the permalink.

    63 Responses to Code Rush Vs. ReSharper

    1. Do you mind if I quote a couple of your articles as long as I provide credit and sources back to your weblog?
      My website is in the very same area of interest as yours and my visitors would genuinely benefit
      from some of the information you provide here.
      Please let me know if this alright with you. Appreciate it!

    2. Hugh says:

      ReSharper is simply not a tool that I would trust when developing serious software I’m afraid. It reports false errors sometimes that suggest it misunderstands the C# language at a fundamental level.

      For example it reported (as an error) “Cannot declare a pointer to a non-unmanaged type” for some code that compiles and runs fine under VS 2008, VS 2010 and VS 2012.

      In this case the analyzer failed to see that the pointers were being used within a “fixed” block and so it was completely legal C#.

      Another is an error reported about the use of the “??” operator, it claimed that the left hand operand can never be null but this was untrue (and could never be deduced anyway by any static analysis).

      Entrusting costly (and often already tested) source code to such a tool with these kinds of fundamental weaknesses in its semantic analysis is just too big a risk in my view.

      I can’t speak for the other products, I simply tried ReSharper a few weeks ago and applied to some pretty complex real-time stuff I have here and was pretty shocked at the laxity I saw.

      Hugh

    3. Dicky says:

      Thanks for the post. I have been a long time ReSharper fan (from 2.0 to 6.1), but I start consider trying other tools. I love ReSharper’s search functions, but my solution is getting too big, and VS performance is getting slower. On my 64 bit OS, my VS can used up to 2.3 GB. It’s hard to focus on coding when the IDE becomes sluggish.

    4. Wes says:

      Cost is the biggest factor for me. I get an academic discount with Resharper, bringing the price down to $49. DevExpress doesn’t offer me that, so it’s $249. That’s a heck of a difference. They directed me to a free version, but it seems to be lacking quite a bit off of the paid version, so Resharper it is for me.

      • Ken says:

        ReSharper for me also. I did email and ask about academic pricing and was also referred to the free version. I suggested that they consider offering academic licenses. Get future developers hooked on your tools now while they are young. Kind of like tobacco company attitudes in years gone by. I am guessing DevExpress could care less as they still do not offer such a license a year and a half after I first asked.

      • White Wolf says:

        I have just been talking to CodeRush people. I am not a student, but I would use the product for learning. So I have asked them for options. Did you? Because I have got one very different from your $249. ;)

    Leave a Reply

    Your email address will not be published.

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>