While it shouldn’t be banned, it should be used appropriately. We have some areas of our project that communicate with hardware where we cannot use it because of the performance hit.
[1]: Well, at least directly enough for LINQ performance to be a problem.
Yes, all this was kicked around and argued about.
One of Kevlin Henney's talks references a really neat quote by Poul Anderson on this subject:
> I have yet to see any problem, however complicated, which, when you looked at it in the right way, did not become still more complicated.
var x = 10;
int x = 10;