Transferring the codebase of a game server?
We are planning on upgrading the codebase of our game servers for a MMORPG, which is currently coded in **C++** (90%) and **Python** (the remaining 10%). The issue is that deciding on a language is difficult.

**C++** 

 - Attempt to refactor and optimize the code, and possibly rewrite some modules entirely.
 - **Advantages**: Developers already know C++, can reuse existing libraries, very fast.
 - **Disadvantages:**  Painful data interchange, unmanaged, will require a lot of work to make the code more or less maintainable, hard to scale.

**Java** 

 - Rewrite it in Java.
 - **Advantages**: Enterprise oriented, managed, pretty fast, easier than C++.
 - **Disadvantages:**  Not very familiar with it, "clumsy", difficult data intercharge. 

**Python** 

 - Rewrite everything in python.
 - **Advantages**: Very maintainable, dynamic, garbage collected, good data intercharge capabilities (because it's dynamic), very easy to use.
 - **Disadvantages:**  Much slower than C++ or Java. 


Another issue is that the game server needs to be bridged with **C++** libraries responsible for server-side 3D things (collision detection, maps, regions) which are maintained by a different group of people.

In my opinion, the **best choice is Python** as it would make the whole development process easier but the main concern is speed. The technologies we utilize are *Memcached*, *MongoDB*, *MySQL* and *Cassandra*. A lot of server data is stored as *BSON* as well as *JSON*.

*Can anyone suggest the best choice out of those three languages?* Or are none of these a good choice? I've heard that some prefer **erlang** for those sorts of things.
 
Transferring the codebase of a game server?
===

We are planning on upgrading the codebase of our game servers for a MMORPG, which is currently coded in **C++** (90%) and **Python** (the remaining 10%). The issue is that deciding on a language is difficult.

**C++** 

 - Attempt to refactor and optimize the code, and possibly rewrite some modules entirely.
 - **Advantages**: Developers already know C++, can reuse existing libraries, very fast.
 - **Disadvantages:**  Painful data interchange, unmanaged, will require a lot of work to make the code more or less maintainable, hard to scale.

**Java** 

 - Rewrite it in Java.
 - **Advantages**: Enterprise oriented, managed, pretty fast, easier than C++.
 - **Disadvantages:**  Not very familiar with it, "clumsy", difficult data intercharge. 

**Python** 

 - Rewrite everything in python.
 - **Advantages**: Very maintainable, dynamic, garbage collected, good data intercharge capabilities (because it's dynamic), very easy to use.
 - **Disadvantages:**  Much slower than C++ or Java. 


Another issue is that the game server needs to be bridged with **C++** libraries responsible for server-side 3D things (collision detection, maps, regions) which are maintained by a different group of people.

In my opinion, the **best choice is Python** as it would make the whole development process easier but the main concern is speed. The technologies we utilize are *Memcached*, *MongoDB*, *MySQL* and *Cassandra*. A lot of server data is stored as *BSON* as well as *JSON*.

*Can anyone suggest the best choice out of those three languages?* Or are none of these a good choice? I've heard that some prefer **erlang** for those sorts of things.
 