A new, yet familiar, adventure

For the last four years I’ve been a part of a research team exploring extensions to the C# language. The effort focussed on adding features that improved the reliability, performance and overall correctness of the language. Like any good research project we had some features that were incredibly successful, some which were so-so and others that … well … they failed spectacularly!

Floating point casts are rarely redundant

Good developers are always on the look out for unnecessary code. Both to avoid in their own code and to help others avoid during code reviews. One such example is redundant casts: a cast where the type of the expression and cast are the same type. For example:

Use strong name references in a VSIX project

If you create a VSIX project using the most recent version of Visual Studio on your machine it will spit out a reference section in your project file containing the following:

Experiences using F# in VsVim

A few days ago while discussing VsVim with a coworker it occured to me that I’d been working on this project for 5 years now. It was a bit startling for me because it feels like just yesterday when I finally got permission to release it to the public. After reflecting for a few minutes I decided that I wanted to write a couple of posts on this project and how it shaped up over time.

Invalid Uses Of a Type

I joined a discussion recently about a new API being added to a type with well established semantics. The API seemed to violate the key invariants of the type and I was curious about the justifications. Of the various reasons given one in particular stood out to me as questionable: