High maintenance

The other day I went to buy some snack from the snack machine in the kitchen. The snack I wanted was in slot B-10, so I put in my coins, press B – one – zero, hey wait a minute there’s no zero button! And why is it serving me up the snack on the…

46

Tasty Beverages

“Diet Dr. Pepper tastes more like regular Dr. Pepper.” That was a previous advertising slogan for Diet Dr. Pepper, my personal favourite source of both caffeine and phenylalanine; I’m drinking it right now as I write this. The present slogan is the brain-achingly oxymoronic “Diet Dr. Pepper: There’s Nothing Diet About It” – really?  Seems…

35

What To Do When The Source Control Server Is Down

I have not forgotten about my series on method type inference; rather, the contrary. I have been thinking hard about how to change method type inference to be more accurate in a hypothetical world with covariant and contravariant interfaces, and this has led me to dig in even deeper to the method type inference specification and implementation. I’ve…

34

A Face Made For Email, Part Four

Good heavens, this just keeps on happening to me. If you’re interested in what we’re musing about for future versions of C#, check out this video of Anders Hejlsberg, Scott Wiltamuth, Paul Vick, Mads Torgersen, Matt Warren, Jim Hugunin and, off in one corner, me. Working with this caliber of people every day is a…

12

Customer Service Is Not Rocket Science, Part Two

I find it irritating, but not surprising, when I get absurdly bad customer service from a business whose business model is based on volume and high margins. But I find it quite surprising, and indeed, greatly amusing, to get absurdly bad customer service from a business whose business model is entirely based on quality of service. This…

28

Method Type Inference Changes, Part One

I want to start this by discussing the purpose of method type inference, and clearing up some potential misunderstandings about type inference errors. First off though, a brief note on nomenclature. Throughout this series when I say “type inference” I mean “method type inference”, not any of the other forms of type inference we have…

9

An apology

I posted an article recently entitled “The Managed Languages Team is Hiring”, and the response I received was nigh overwhelming. Dozens of resumes and CVs from industry professionals, researchers and students poured in. It was very gratifying, and I was excited to get so many great leads. I collected up all of those resumes for…

3

Method Type Inference Changes, Part Zero

Back in November I wrote a bit about a corner case in method type inference which does not work as expected or as specified in C# 3.0. A number of people made blog comments, sent me mail, and entered “Connect” issues with additional problems and ideas for how we could improve this algorithm. (Particular thanks…

5

Precedence vs Associativity vs Order

Raymond has written about this, I have written about Raymond writing about it, but I still frequently get questions from people who are unclear on the difference between precedence, associativity and evaluation order. I suspect that this confusion arises from the difference between how most people are trained to evaluate arithmetical expressions versus how compilers generate…

13

Method Hiding Apologia

Here’s some back-and-forth from an email conversation I had with a user a while back. Why should one avoid method hiding?  If there were no advantages and only disadvantages then we would not have added it to the language in the first place. C# implements hiding because hiding is frequently useful.   I therefore deny the…

25