I've posted about this here and here before but now Mike Gunderloy writes about refactoring support (or lack thereof) in Whidbey. Some hard hitting points such as the fact that only C# has “refactoring” and not very good refactoring in that some of it does not even answer to the definition of “refactoring“. Also a good discussion about Paul Vick's comment regarding use of the word “refactoring” for vb.net programmers. In short - Mike thinks it's lame, and I think so too. Put refactoring on the map for vb.net developers as is. Heck, if nothing else, we'll be like that kid in school that everybody beats up on because his mom takes care of him too much in front of all the other kids. Have a little trust in us! we have brains. We'll figure out what that long word is.
Another thing in there that I could not agree more with is what Mike says about IntelliJ IDEA and it's refactoring support: “Microsoft could do worse than to copy that implementation.“
Why do I agree so much with this statement? here's the deal: For the past 3 days I've had to do some real world coding in Java. I used IDEA to do it, and I could not have been more impressed. The first impression I cam out of this experience with: “wow“ and this is from the mouth of a Microsoft geek who loved VS.NET. Until now. Coming back to the “grayness“ that is VS.NET now is like coming home to an empty house with a cold breeze: you just feel like you're on your own. With IDEA it was more like A warm cozy fire and a nice “uncle“ that helps you with whatever you forgot to do. It actually felt like I was not coding alone. Every variable I didn't use, every return statement I forgot to add, every constructor or get/set I had to add - I wasn't alone. The amount of support you get before you even do your first build operation is staggering to say the least. The IDE is almost self aware in that everything you do (or don't do) has an immediate effect on the state of things in front of your eyes.
If you decide you should have a new method to be called at a particular place, you just type the new method name and provide its parameters if necessary. IDEA will prompt you with an unobtrusive popup with a suggestion to create a new method, and if accepted, the method will be created in the corresponding class/interface, with the proper method signature (including correct parameters), so that you can implement it later.
The IDE was so helpful to me that even though prior to this week I had no real Java experience , I was able to get to build stages and build/compile without a hitch! The IDE actually saved my sorry but a lot of grief while I was writing the code. I had no “new writer's fear“ from starting new classes or unfamiliar syntax because I knew I had something to lean on. Now that's as close to pair programming as possible without having to add an extra chair , IMHO.
So Why all this raving about IDEA? Because I want to see Microsoft do it even better. I know they can when they put their minds to it (we've all seen it a million times before) and I wish this would be one of those things. Can we have that? please?
About Vb.Net refactoring: This hits the mark