C++ and C++ development are hugely different from Java and Java development. If Java and C++ don't look very different to you, it's because you need to take another look at C++. About the only thing they have in common is their hideous verbosity. You can write C++ as if it were like Java, but you can write C++ as if it were like Haskell, too. Given the question, "What mainstream language is most like Haskell," the answer is C++. Unlike Java, C++ is actually capable of sidestepping its limitations.