Pain of C++ Refactoring, 2006
It was the end 2004 when I wrote about the "Pain of C++ Refactoring". What has changed?
Many hopes were held for Visual Studio 2005. It came out with first class refactoring support for C# folks, who by the way were already happy with beautiful ReSharper. For C++ people, the new Visual Studio was a big disappointment: no C++ refactoring whatsoever.
What else do we C++ developers have around in 2006? Well, not a whole lot.
Xrefactory crawled from version 2.02 to 2.08 with no major changes. Maybe for UNIX folks auto-completion and full undo are new and exciting features well worth $400, but I'm just too spoiled by Visual Studio to give up its usability for Emacs with primitive refactoring support by Xrefactory.
Ref++ Visual Studio plug-in grew a lot since I tried it last time, making its way to the top of Google. Under active development, it is $60 for a single license and may be worth a closer look. So far I am not aware of any team using it for real. If you do, please let me know.
SlickEdit is the new kid on the block. It comes as three products: a full blown code editor, an Eclipse plug-in, and a Visual Studio plug-in. To get it, I had to fill in the web form, register, give them my email, and wait for the trial key. When I finally installed the plug-in on VS 2003, it failed to do any basic refactoring on a two file project. The Slick broke its neck somewhere in STL because I dared to use stl::string! In frustration, I threw it away. Later, it turned out I was not the only one who uninstalled it in 20 minutes.
There are rumors that Eclipse C++ Plug-In will soon have some C++ refactoring, but 1) so far it is only rumors and 2) I don't see mainstream C++ developers migrating from Visual Studio to Eclipse.
Why is it that 7 (!) years after Martin Fowler published his "Refactoring" bestseller there is still no reasonable and recognized C++ refactoring tool? I think there are two reasons. First, C++ as a language is just too complex. Making a refactoring tool is a challenge, let alone making it perform reasonably. Second, C++ folks are outnumbered, and outdated. They are not doing refactoring, not interested in doing refactoring, and do not demand the refactoring tools. For software vendors, the market isn't worth the challenge.
A silver lining: C++ is not so bad. Try COBOL.