Flash is great for stuff that runs in the browser, but for server-side heavy lifting, C++ is my go-to tool.

C++'s many flaws and disadvantages have been carefully documented over the years. The language is too big; the compilers produce lousy error messages; the standard template library is too hard to understand; there is no need for a low-level language in this day and age.  My biggest gripe with C++ is the sheer number of ways to introduce near-impossible-to-find bugs: using uninitialized memory, freeing memory twice, using a dangling pointer, mixing malloc/free with new/delete, leaks, overruns, dereferencing NULL ... the list goes on and on.

However, C++ has one advantage that makes it all worthwhile: predictable, screaming fast performance. The compiler generates real machine code, not bytecode, and the old school manual memory management means that the server will never take a time out to garbage collect. For MMOs, better server performance saves money by reducing the number of machines needed, and it increases the number of people that can play together on the same server. As for the excruciating task of preventing pointer bugs ... I guess I'll just have to live with that.