Coderush vs Resharper
I’m shocked to admit that my programming side projects are consuming so much of my free time that I am considering the purchase of a tool to help me develop faster and better. The company I work for has an extremely limited budget and there is no way they will be sponsoring such a tool in or outside of work (I know, I know – the ROI should easily justify the cost…) so this one will be coming directly out of my own pocket. I’ve done the reading, downloaded the demos and fallen in love with both Resharper and Coderush (NOTE: If I refer to Coderush in this post I am actually referring to the combination of Coderush and its partner in crime Refactor). There are a lot of opinions in the blogosphere as to which tools is better. My goal of this post is to define a set of metrics that measure application features and concerns that are important to me, a measure of weight for each value and a final calculation to determine which tool I will in fact purchase.
There are some acknowledgements that I would like to make up front:
1. I am in no way linked with either organization or any organization in this space. I have no bias.
2. I have been working with the demos of these tools for the last 2-3 weeks. This short duration coupled with splitting my attention between the two tools means that I am an expert on neither. I am sure that some of the comments I make can be corrected by those who know more on the subject than I do and I would be grateful of anyone who can provide constructive criticism. I will edit my post (and let you know when I do) and scores based on any feedback I receive.
3. Most of the projects I am working on are in the genesis or near-deployment phases. While the latter is a good time to get into refactoring, I am not currently working on the meat of a project where code templates and other such niceties are at their most useful. To test these features I am contriving some somewhat artificial test apps. The only thing I believe that I am really missing out on here is an accurate sense of how much time I would be saving in a production scenario. However, it should still be feasible to compare the abilities of both tools.
4. The ratings I make are based on the factors that are important to me. I say this not to mute criticism (again, the constructive variety is appreciated) but to admit that there is a personal aspect to this comparison and I do not wish to bash any product or turn perspective purchasers away from either company. If different factors matter to you, then use them. if I am missing a crucial feature that ANYONE should use, then let me know.
5. I believe that either of these products will substantially improve productivity over Visual Studio on its own. If they were free applications I can guarantee I’d have both running side by side and use the best features of each as if they were a single application. However, my disposable income can only stretch so far and so I will be forced to choose between two great tools.
6. To those in similar positions who need to foot the bill themselves: estimate what your personal time is worth to you. Put a dollar value on it. This is not the same as what you would charge as a consultant – it is more to do with what you feel your spare time is worth. I came up with an EXTREMELY conservative estimate of $20 per hour. If either tools saves me 12 hours of work in a year then my ROI is in the green and I am enjoying time that I used to spend working. Give it a shot – it’ll change the way you think about purchasing this S/W yourself.
CLICK HERE TO SEE THE RESULTS TO DATE
Resharper | Coderush and Refactor Pro | ||||
Criteria | Weight (10) | Score | Comment | Score | Comment |
Cost (Personal License) | 10 | 3 | $199 | 2 | $249 |
Renewal Cost | 6 | 3 | Approximately $119 per personal license major upgrade. I.e. upgrading from the full version 3.x to full version 4.5 would cost $119. | 3 | $99 per year |
Coupons | 3 | 2 | Resharper has a referral program and if you know someone (search the blogosphere) with a copy you might be able to get a 10% discount. Not a fortune but $20 is worth saving. Also, the products are now $179 vs $249 which makes resharper quite a bit more cost effective. | 0 | No coupons or discounts as far as I can tell. There used to be one - but it looks like it expired at the end of 2007. Please feel free to prove me wrong! |
Trial Length | 2 | 4 | 30-60 days (60 if you know someone in the referral program - see coupons section) | 4 | 30 days. Pretty much the standard out there. No complaints here. |
Performance | 9 | 4 | Performance was surprisingly good on my laptop - and nothing performs all that well on my laptop. I expected the on-the-fly error detection to choke visual studio but to date it has been pretty good. Every now and again Visual Studio crashes but I can't necessarily blame that on Resharper. It is definitely slow when it analyzes my solution (i.e. solution-wide error checking is on) but not unusable by any means. | 4 | So far things have been pretty fast on my desktop but is at times sluggish on my laptop. Specifically, the code analysis hints in the scrollbar tend to take a while to pull up. Similarly to Resharper, I expected this one to kill my laptop altogether which it has not. huzzar! |
Time-to-Market (for new versions) | 7 | 3 | In the past resharper has taken some time to release new versions that support the latest and greatest Visual Studio. With 2010 around the corner this is a key metric. Hopefully they'll be quick with this one. | 5 | Coderush wins here. In the past they have supported newer versions of Visual Studio right off the bat and this seems to be something that they care about - and it is definitely something that I care about. |
Documen-tatoin/ Training | 8 | 3.5 | There are some good docs and demos up there - just not as many as with Coderush | 4.5 | I've got to give it to Coderush here - there are tons of high quality videos on the devexpress site. Would have gottent a 5 but it is hard to tell sometimes if the videos are out of date or if they are relevant to newer versions of the application. |
Look and Feel | 6 | 3.5 | Not ugly by any means but it doesn’t really have the eye candy that Coderush does. It wouldn’t stop me buying the tool, but as my father always says it's better to say "there you are" than "where are you" | 5 | It matters, Coderush is gorgeous and that's a scientific fact! I believe in the need for visual cues and Coderush has boat loads of them. |
Speed, | 10 | 3 | One of my gripes with Resharper is the constant need to switch between keyboard and mouse. If I want to convert a local variable to a constant I have to use the shortcut to convert it to a field and then follow the dialog that pops up. I HATE dialogs. Not only do i hate dialogs but I hate keyboard shortcuts that I need to write down to reference. Resharper does a LOT and it does it really well - but in terms of input efficiency it has a lot to learn from coderush. | 4 | I found with Coderush that everything (almost) I did, I did it from the keyboard. The keyboard shortcuts were intuitive and after a couple of days I had the basics down without even trying. The smart ALT-` key combination covered a ton of ground and all-in-all I felt a productivity increase very early in the game. I look forward to playing with it some more to see if I am really getting faster or if my computer is getting slower :o) |
Features | 10 | ||||
Unit Test Inte-gration | 6 | 3 | Supports NUnit and MSTest right out of the box allowing tests to be run from straight from the code or solution explorer. Lovely feature! Additional frameworks are available as plugins…which is nice! I'd love to see either product attempt to rival testdriven.net and add some more advanced features to the mix. Not their domain perhaps, but certainly a big efficiency booster. | 0 | It is on the coderush roadmap, but what it will consist of is anyone's guess. It wouldn’t have been a dealbreaker if Resharper didn’t have it. But they do. So it is! |
On-the-fly Error Detection | 6 | 5 | This is pretty massive and works quite well | 0 | Nada! Resharper cleans up on this one. Plain and simple. |
Code Templates | 8 | 5 | Both tools offer great support for templates and I really had no complaints. Declaring my own in Resharper was a breeze but actually utilizing them with keyboard shortcuts was a joy in coderush. This one is pretty even methinks! | 5 | <--- What he said |
Code Template Sharing | 4 | 5 | Allows templates to be shared by multiple users. | 0 | Not a dealbreaker but coderush does not proffer a straightforward method to share templates between users. Shocking, but as an individual user I wont lose any sleep over it! |
Navigation | 8 | 5 | Both tools offer great support for navigating to declarations, implementations, and so on and so forth. These improved my speed around the code 100% and I love this feature of both tools. More than anything, the ability in both apps to hold CTRL in order to unveil navigation links to class/method/etc. implementations is just astounding. Simple, but astounding. | 5 | <--- What he said |
Code Assistance | 9 | 3.5 | The coding assistance ranged somewhere between horrible and life-changing, depending on the time of day. For instance, Reshaper gives suggestions to remove redundant variables, redundant method calls, etc. But to my horror I noticed in a .NET 2.0 C# application 3.0 constructs were suggested. For example, I was advised to convert a method call followed by property intializations to an object initializer. Needless to say this broke my build! This is something that renders useless the assistance the tool provides - perhaps it is a bug specific to my version or project, but I don't want pay to second guess the code assistance. | 4 | Code assistance in Coderush was excellent and I really have no complaints. A fantastic feature is the visual feedback provided on the scrollbar which allows you not only to view where there are issues in your code, but also fix them without necessarily needing to navigate to them. Brilliant! |
Code Metrics | 8 | 0 | Resharper currently does not implement code metrics but "most likely will introduce suggestion system sooner or later" (reshaper.blogspot.com). | 5 | Don't get me wrong - I understand cyclometric complexity and appreciate the benefit of a quantitive measure for code complexity…I just don't do it by hand. To see a tool that not only does it for me, but inlines it in my code as low as the method level...well that is awesome! Also awesome are the various supported metrics as well as the ability to define one's own. Didn't know I needed it, now can't live without it! |
Code Generation | 9 | 5 | I really like some of Resharper's in-built code generation mechanisms. Creating a method from usage can be a real time saver, as can generating properties/constructors/equality members, etc. Actually, this is the one time I will not complain about Resharper's (over)use of dialogs. The GUI menus provided for code generation give you complete control over the code you are generating and I LOVE this area of Resharper. | 5 | This is another area in which both Coderush and Resharper have invested heavily. Similar to Resharper's 'create from usage' mechanism, coderush offers intelligent class/member declaration. |
Code Formatting | 9 | 5 | supports NUnit and MSTest. Allows tests to be run from the code or solution explorer. Lovely feature! Additional frameworks are available as plugins…which is nice! | 3.5 | Not built into the application but available through a plugin called CR_Classcleaner. It is great to have a community building such plugins and great that this functionality is available. However, I'd love this to become part of the core so that a) I don't need to reinstall it every time the dxcore is updated and b) I have the comfort of knowing that it is a key concern of the devexpress team - it is that important of a feature to me. |
Keyboard Shortcuts | 8 | 3 | Resharper offers keyboard shortcuts to do many of the same things as Coderush. However, they took a LOT of learning and often times I found myself having to interact with the mouse after I had used a shortcut - therefore defeating the purpose a little. not terrible, but not great either! | 5 | Coderush wins hands down here. The key combinations are logical and intuitive and within no time the more common functions had become almost mechanical. |
TODO lists | 1 | 3 | It's there but it's ugly. And honestly, it really doesn’t do much that the in-built functionality can't do…It is a bit of a lacklustre implementation and, I'm guessing, a feature for the sake of a feature. | 0 | Not there, but I don't care all that much. If either product adds a must-have feature in this space I'll start to care pretty quickly… |
Extensibility | 5 | 4 | Resharper has an open API and includes powertools for Visual Studio. There are a bunch of plugins for everything from Nhibernate to StyleCop. It is difficult to compare 1:1 with Coderush as I have not developed a plugin for either (if I had time I wouldnt need either of these tools :o) ) but I'm definitely happy that both have the option. | 4 | I thought Devexpress would really shine here. They build their applications on top of dxcore and provide devs with the resources necessary to create their own plugins. There are a number of plugins out three (Google is your friend) but not as many as I would have thought. But to their credit they provide the tools needed so i cant complain. |
Languages | |||||
C# | Y | Y | |||
VB.NET | Y | Y | |||
ASP.NET | Y | Y | |||
XML | Y | Y | |||
XAML | Y | Y | |||
C++ | N | Y | |||
HTML | N | Y | |||
Javascript | N | Y |
RESULTS Unbelievably, after my first round of comparison, there is a single point separating two applications!! These scores were not contrived and it was not by goal to be controversial. The closeness of scores proves a predicament as I am really no closer to choosing between the tools as I was when I started my testing 2 or 3 weeks ago. It looks like I will have to do some more testing before parting with my hard earned cash! Any advice would be much appreciated!
[UPDATE]
Hey folks,
Thank you for your excellent feedback regarding resharper vs. coderush. I am currently unable to reply inline to comments (blogger recently introduced support for this so i have to update my theme...) so i'm going to do one small post that will hopefully cover some of the points hit on in your comments.
1. Full disclosure: Last night I attended the monthly Chicago Alt.Net user group meeting and won a copy of resharper! I'm really pumped about it. If nothing else I will be able to dig really deep into resharper and hopefully optimize my development in the long run. That said, because I am EXTREMELY interested in these tools and what they can do (and I believe healthy competition leads to cross-pollination that benefits us all) I still plan a second post in this series. I will remain completely unbiased. Expect a follow up in the next few weeks….
Because I’m on the subject I’d like to point out that the Chicago Alt.NET meetings are awesome and full of informative information. If you’re in the area stop by – you’ll always learn something new from these (http://www.chicagoalt.net/Home)
2. To those who commented on "on the fly error detection" in Coderush - you are completely correct. The version I was using for my comparison was an older one than that which is available now. My redux post will take this into consideration.
3. I don’t know much about support for F# though read that 4.5 has improved support for F# therefore would expect some support for F#. very informative, I know…
4. I am pretty pumped to hear about access to daily build of R# but even more pumped that there is a beta plugin for VS2010.
5. I DEFINITELY should have talked more about Coderush Xpress – I just ran out of time and space. I will incorporate this more in my next post. With the number of plugins available this is certainly a handy tool for anyone in a similar position to myself whose employer can or will not purchase such software of its devs.
6. I was 100% WRONG about exporting templates in Coderush. I apologize for the misinformation. I spoke to a member of the coderush team who told me that:
“we actually do support template sharing through version control, email (you can export and import template folders and share those with colleagues), and through a shared settings folder on a network.”
7. Apparently I didn’t go into refactoring in enough depth – I hear your suggestions and will incorporate your feedback in my next post.
8. I have not yet used CTRL-SHIFT-R as a single refactoring key pattern in resharper but it appears this will address one of my concerns with having to remember a ton of keystrokes. I still love Coderush’s shortcuts thought!
9. It looks like I need to investigate a bunch of DXCore plugins before my redux. I won’t address each comment I received but suffice it to say it is an area that deserves more attention.
There is a ton of other stuff I’m probably not hitting but my lunchtime just ended and I have to get back to work :o)
Thanks again for your feedback,
Jason
Comments
i think it resolved around resharper's shotty support for lambda expressions and linq.
I would like to point out that I have both tools and I like them both very much.
My personal preference is for R#, however, I must admit that the plugin development environment by DXCore is superior since it provides a platform not just for refactorings but also for general use plugins.
The development cycle of both tools are amazing, while DevExpress pushes out new releases every few weeks, JetBrains has a page where you can download daily builds, so updates can be easily obtained, and they already have a VS 2010 beta plugin for R# (page is: http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+Early+Access+Program
I am a member of the JetBrains Seeder program and a member of the JetBrains Development Academy, so if you ever need some help with the tool and/or evaluation/purchase just let me know.
Thanks so much for such a wonderful study and looking forward to learn more about your evaluations and experience. (no matter the outcome).
Jose Rolando Guay Paz
http://weblogs.asp.net/joseguay
Twitter: @jrguay
For those on a completely constrained budget, this opens a HUGE door for them (and many of the free extensions for CodeRush on the http://dxcorecommunityplugins.googlecode.com site and elsewhere actually work just fine within the CodeRushXpress environment too).
Just FYI. In the interests of honesty, I am a former R# user who switched to CR+R! some time back and haven't regretted the choice at any point. I'm also just a working dev who doesn't have anything vested in people buying EITHER product, but strongly recommend against trying to code in 'pure' VS without at least SOME tool (and the CodeRushXPress being 100% free makes any excuse about trying to go-it-alone pretty weak now).
Good luck in whatever you select and great (pretty fair and balanced) review.
-Steve B.
I use this when I can't remember what the refactor shortcut key is and eventually I have learned most of them. I am in the process of learning to use the navigation shortcuts now.
You need to investigate the DXCore Community Plugins Project (http://code.google.com/p/dxcorecommunityplugins/). While there are some upcoming built-in features for unit testing coming, the Community Plugin Project has a Unit Testing plugin. I will admit it's not perfect, it does work. The community project also has some nice tools for creating unit tests, so I would contend that the CR score there wouldn't be 0 (there is a solution). Elsewhere you reference the CR_ClassCleanup plugin, so I guess it's valid to mention.
FWIW, I chose CR because the DevExpress folks are a pleasure to work with. JetBrains has been unresponsive to me in the past (might just be me).
That's my experience anyway -- I'm a big-time keyboard junkie, so that is my number one criterion. If you really want to speed up and connect with your code, slow down for a couple of weeks to learn vim and then invest in ViEmu for Visual Studio -- ViEmu + R# is the best investment I've made for coding and refactoring productivity.
If you need to contact me for any CodeRush (Xpress or Full) RefactorPro or DXCore questions, feel free to find me on twitter (twitter.com/RoryBecker) or email (Rorybecker@Gmail.com) and I will do my best to help you out. I should add that I do not work for DevExpress but I do enjoy helping people get the most out of these great tools. :D
On the fly Error detection - CodeIssues is hardly nada? there are many compile time issues picked up on here.
Code Template Sharing - You certainly can import and export templates allowing them to be shared using any media you like. Again Share Via import/Export is hardly no support and is deserving of > 0 marks. Additionally I have registered this suggestion (http://www.devexpress.com/Support/Center/p/S132701.aspx) which would allow CodeRush settings (or any subset of them) to be proliferated as far as you'd like.
TODO lists - I'm not sure what sort of functionality you'd like to see in this space. Perhaps you could elaborate on what you'd like to see here?
Some factors seem like they were missed of your list and might merit some consideration.
- CodeRush has not just a trial, but a completely Free edition in it's XPress Product, See a comparison with the full product here. http://rorybecker.blogspot.com/2009/07/coderush-vs-coderush-xpress.html
- How much do you rate Official Support?
- Support Center (http://devexpress.com/sc) for Suggestions, Bugs and questions all of which are publicly searchable unless expressly marked as private by their creators.
- Knowledgebase (https://www.devexpress.com/Support/Center/KB/Default.aspx) for official Kb articles on all manner of stuff.
- Search (http://search.devexpress.com/) A one-stop location for searching everything devexpress.
- Email (Support@devexpress.com, clientServices@devexpress.com) are very happy to take more detailed questions.
- Do you rate Community?
- Forums (Peer to Peer in CodeRush's case - http://community.devexpress.com/forums/default.aspx?GroupID=18)
- Twitter. A very community of people looking to help you out with your CodeRush Questions. Typically just mention CodeRush and ask for help :)
- Community Site (http://code.google.com/p/dxcorecommunityplugins/)
- Third party blogs (Rorybecker.blogspot.com, http://blog.unhandled-exceptions.com/)
- Is Extensibility worth anything?
- With CodeRush you can build your own Refactorings, Code Providers, Selection Embeddings, Templates and frankly everything else. Including
- The community site (http://code.google.com/p/dxcorecommunityplugins/), as previously mentioned, can give you many examples of plugins that others have created proving the extensibility of the products
- A growning resource for help on creating your own extensions to CodeRush is available on the community site (http://code.google.com/p/dxcorecommunityplugins/wiki/PluginResources)
- DevExpress have proven very helpful and open to suggestions as to how to improve the framework their product is based on. Even when such improvements do not directly enhance their own paid for offerings. A great many of the plugins mentioned have been built with help from DevExpress, such that they have no dependancy on the paid for products at all and can run with only CodeRush Xpress ( again this is completely Free) or even just the DXCore in place.
If you have any further questions, please feel free to contact me, either on twitter (@rorybecker) or via email (Rorybecker@gmail.com)
I must stress that I do not work for DevExpress. All these opinions are my own and I have not been paid to advertise these products :) I just really like them.
You were evaluating during late July/early August.
The best version of CodeRush you could have hoped to have (unless you got access to the beta) would have been 9.1.5.
This means that you were not using 9.2.4.
9.2+ has an incredible performance boost. See http://community.devexpress.com/blogs/markmiller/archive/2009/06/17/performance-and-memory-milestones-in-coderush-and-refactor-pro-preview-of-9-2.aspx
And my own similar real world review ... http://rorybecker.blogspot.com/2009/06/coderush-920-speed-and-memory.html
The memory savings and performance increase will surely be enough to rasie the 4 to a 5. It may even be enough to make you redetermine your scale in this area and lower resharper to a 3.
The version of CodeRush you used may also explain your apparent lack of on-the-fly error checking.
It was only really available as an early experience (beta) feature during the 9.1.x timeframe.
http://www.jetbrains.com/resharper/buy/index.jsp
http://web2asp.net/2009/09/resharper-discount-and-extended-trial.html
Thanks.