Define "winning".<p>Most new languages contain a type system. Is that "winning"? It means that the idea of type checking has achieved "flavor of the month" status, but it doesn't mean much more... yet. If some of those languages go on to take over the world, then yes, the fact that they have type checking means that static typing is winning.<p>And, define "static typing" and "functional programming". So C++ added some elements of functional programming. Does that make C++ a functional programming language? Or does it just make C++ a multi-paradigm language that can be used to do some amount of functional programming?<p>I claim that "winning" doesn't mean winning in the number of check boxes that languages tick. It means winning in the way the languages are used. If everyone who is programming in C++ starts programming in the functional style, then yes, functional programming is winning. If they don't, then having C++ support functional programming just means they added another paradigm that few people are using.