MenTaLguY wrote:
SWIG for multiple languages means pulling in a lot of (potentially mutually incompatible) runtimes, though. As a practical matter we need to pick either a single language (i.e. Python), or multiple languages on a single runtime (i.e. the JVM). So I don't think I'll mourn SWIG much.
There are two main reasons I wanted to move away from SWIG, from actually giving it a try:
1. It doesn't do JS. There was a separate project that added that, but I think it's dead. 2. Its main task is to bind scripting languages to C. It doesn't understand C++ much. It can't handle overloading or templates, and even has problems with inheritance. We would need to artificially dumb-down the API specifically for SWIG, and not because of good design. I am using PyCxx, which is tiny, but it should be reasonably simple to convert to Boost's Python binder if we ever add Boost as a dependency (it's kinda huge). Doing it this way is just cleaner and more elegant. Does Boost have an ECMA binder?
bob