Minus 100 points

Microsoft’s Eric Gunnerson, who AFAIK “owns” C#, describes how features are added to the language (or not): “So, we decided on the additive approach instead, and worked hard to keep the complexity down. One way to do that is through the concept of ?minus 100 points?. Every feature starts out in the hole by 100 points, which means that it has to have a significant net positive effect on the overall package for it to make it into the language.”

This is an unusual and refreshing approach in these days of bloatware; where huge numbers of features are forced into an app (think: Word) so that marketing can produce a longer tick-list than the competition. Its kind of hard to imagine the Work team (to pick on them again) saying “Hey – the built-in spreadsheet feature is really neat but it just doesn’t have a net positive effect. Lets leave it out.” marketing would /terminate/ them.

It seems to me that the C# can get away with this because, uniquely in shrink-wrapped software, the programming language component just isn’t marketed on the basis of its features anymore. Layered stuff like RAD designers, IDEs, and components, are – and they have the feature lists to prove it, but languages themselves havn’t been since the Turbo Pascal era. Funny, that.&nbsp