C# is retarded

So, our project team has decided that C# will be the language the system will be written in. I tried (really hard!) to sway them towards Visual Basic, but all of DCS's negative rhetoric and slander about VB has given it a poor name (and hence, the other team members were reluctant to endorse it).

There's one thing that's reeeally gotten me worked up about C#: It's overly verbose. It doesn't appear to have any concept of optional arguments (other than through function overloading)!

Allow me to present a simple example: Opening a file in a Word object.

Visual Basic:
Set WordDoc = word.Documents.Open(fileName)

C#:
doc = word.Documents.Open(ref fileName, ref Type.Missing, ref trueValue, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing);

Count that -- 16 Type.Missing's.

I've many other gripes about C# (and well, .NET in general), but I'll save them for another day...