Actually, just a brief post. LINQ has injected into the mainstream a whole range of functional programming topics previously seen as esoteric. Putting aside the merits of each of them, the interesting dynamic to watch will be if these approaches generate a new sub-niche of programming. For instance, C++ templates led to template metaprogramming, just such a sub-niche. To what extent will awareness of lambda functions and monads be integrated into mainstream awareness and to what extent will they exist as a self-perpetuating "eddy" in the mainstream? (Or will functional programming actually spread and come to be a dominant way of thinking about software construction in the same way that objects did? I still view it as unlikely, but not nearly as low-chance as I did a few years ago.)