Considering that I’am embarrassed with its first incarnation, Sharpen obviously didn’t launch too late :-) And I hope it didn’t launch too early either.
Why embarrassed and proud at the same time?
Embarrassed because the version 0.1.0 is still light years away from the Sharpen’s vision. It hardly gives even a slight glimpse of features listed on the Sharpen’s homepage:
Faster Learning of New C# Features
Yes, v0.1.0 “points to places in real-life production code, your code!, where new C# features should be used.” But it does that for just a very limited number of C# 6.0 and C# 7.0 features.
Critical Approach to New C# Features
Recommendations are still not there and will not be there for some time…
Consistent Usage of C# Features
… and the same is with the user configuration…
Code Refactorings on Arbitrary Scale
… and with the refactorings…
Improving the Design on a Larger Scope
… and with that “intelligent heuristics that recognizes potential improvements of your codebase on a larger scope”…
Extensive Documentation on C# Language
…and with the built-in extensive documentation on C# language features.
The version 0.1.0 has also sparkled interesting discussions with my friends and colleagues on the topic of effective learning of new C# features.
Last but not least it has given first interesting results and insights. I was always puzzled with a question how much an average, few-year-old C# program, could benefit of new C# features. In other words, on how many places in the existing code can we meaningfully apply new C# features and get smaller, simpler, more expressive and more readable code.
As soon as the first Sharpen suggestions were implemented I ran them on one of such “average” projects, average for the company I work for:
Intuitively I expected thousand-something findings. But not tens of thousands! Here are the Sharpen v0.1.0 results for that average C# project:
The results for open source C# projects were no less surprising. Here are the Sharpen v0.1.0 results for NHibernate:
Of course, not all of those 10,000+ places are the places where we want to use the features. My manual inspection of the findings says that roughly 30% of them are places where we actually do not want to apply a certain suggestion. Exactly on these 30% I expect Sharpen recommendations to one day give a clear No! to a language feature.
I can only guess how big the number of findings will be once when many more C# features are going to be covered by the Sharpen analysis.