Anything in this that sounds authoritative is from Araq helping me a lot on IRC. I'm posting here to make the info easier for others to find; and of course additional opinions / suggestions / disputations / esp. experiences are always helpful. Goal: Write an application (almost entirely or entirely) in a language with syntax and expressiveness similar to python's. The application needs to interface with a lot of C++ (and to a lesser extent C) APIs. The application must be cross-compiled using a vendor-specific compiler that can only compile C++ code. Built-in support for QT4 / QML a bonus. As far as I can tell nim supports this workflow - write and test as far as possible an app written in nim that uses C++ APIs, then finally use the nim compiler's source-to-source transcompiler mode to compile to C++ code, and then build that C++ code with whatever separate C++ compiler. C++ interoperability has improved since the last easy to find info [1]. Use the development version. Doc is in that version's nimc.txt file [2] in the "ImportCpp pragma" section. The c2nim program knows about the new C++ interop features, so it can generate the code for you. Regarding using C++ APIs, how good a fit Nim is depends on how the C++ API looks like. If the API requires you to override every single function via inheritance (aka method overriding) Nim is still not good at that. Regarding Qt in particular, someone has alpha wrappers [3] (Not sure if this is QT4 or QT5). The same goes for QML [4].
[1] Interfacing with c++ (2014-02-12 09:13:34 ~ 2014-02-12 16:16:45) thread - http://forum.nim-lang.org/t/363
[2] Nim Development version nimc.txt file https://github.com/Araq/Nim/blob/devel/doc/nimc.txt
[3] Ideas for wrapping Qt? (2014-10-04 20:05:05 ~ 2014-10-09 15:47:48) thread - http://forum.nim-lang.org/t/579 source - https://github.com/PhilipWitte/NimQt
[4] Announcement: DOtherSide D and Nim QML bindings (2014-12-28 15:18:43 ~ 2015-01-01 17:25:02) thread - http://forum.nim-lang.org/t/692 source - https://github.com/filcuc/DOtherSide
Wow, another path of research just lead me back to nim...
I'd also like to include runtime / user-provided scripting support for some aspects of the app. The embedded-in-binaries/libraries-generated-by-a-C++-compiler repl scripting language interpreter options seem pretty sparse. Jx9: Embeddable Scripting Engine and V7: Embedded JavaScript engine were the only ones I could find that seemed alive and designed to work well with C++. Neither are for particularly appealing languages.
But then I found the nim compiler javascript target - which combined with V7 would seem to allow for the use of nim to do runtime scripting of a compiled nim program.
So in the best-case scenario the only difference between compiled-in functions and runtime-provided functions would be speed; and code compiled into the distributed app could also be used as example code for users who don't want to go through the really painful development environment and distribution setup. Where that pain comes from all the stuff that isn't nim related.
Update: It looks like Google V8 allows for this as well - https://developers.google.com/v8/embed