Java’s appearance at the dawn of the Internet Age helped to propel it to near-instant prominence, and lodged cross-platform virtual machines and garbage-collection firmly into our mainstream consciousness. In Java’s wake, .NET introduced the concept of the “cross-language” virtual machine, and helped to foster a new discussion on the benefits of functional programming. Did Java and C# have an evolutionary advantage over C++, or were they simply “Cool” (the original code name for C# / .NET)?