Frank, of course, means native C++ performance and Java JIT performance compared to CLR JIT performance. I don't know how Java Hotspot stacks up against CLR these days.
Correct. I am not sure how java hotspot stacks up these days either, but I know the CLR JIT stagnated for many years. Simple things we have had in C++ for decades, such as temporary object elimination, were never added, except recently for structs in some
cases. Here is the latest I could find discussing it: http://blogs.sun.com/jrose/entry/bravo_for_the_dynamic_runtime
In regards to a "good" library versus a "bad" one: ease of learning is the most important aspect, inversely proportional to size and complexity.
Regarding IEnumerable: "Abstraction and Specification in Program Development," by Liskov and Guttag, published in 1980, discussed implementing iterators in Clu. IEnumerable is the CLR equivalent of iterators. It is nice to see these ideas make their way
into common high level languages, but it is hardly a new concept.