In his own words: http://twitter.com/#!/ID_AA_Carmack/status/21119808432
I consider myself a decent programmer but I have more trouble reading template heavy C++ than I do haskell code. To me, restrained C++ means keeping the unreadable bits outside the code base and isolated in their own library, like Boost :)