[Interest] Introducing the Backbone++ Programming Language

Phil Bouchard philippeb8 at gmail.com
Wed Jul 19 14:09:29 CEST 2017


Hello Qt,

(The former language name is already taken by Microsoft)

By taking advantage of the simplicity of the code of Javascript, the 
power of C++ and the deterministic C++ memory manager Root.Ptr, I 
decided to write my own programming language which takes advantage of 
all these powerful features.

On the downside Javascript suffers from a slow garbage collector that 
kicks in randomly which makes it impossible to write real-time engines 
and C++ just doesn't have any objective memory manager up to this day.

My initial attempt was to convert Javascript into C++ but then the 
principle of 'closures' and 'escape analysis' inlaid with Javascript 
just makes it impossible to get rid of the garbage collector. So if we 
sacrifice these principles away then we can integrate Root.Ptr and take 
advantage of the power of C++ and the true flexibility and run-time 
features of Javascript.

It has to be noted that BB++ is an extension of C++ and therefore 
everything we can do in C++ can also be done in BB++ and vice-versa.

You can find the source code here:
https://github.com/philippeb8/root_ptr/tree/bb++/bbpp2cpp

And the benchmarks indicate BB++ is 3 times faster than Node.JS! Note 
that the language is still in a preliminary state but we can already 
compare it.

Furthermore, in theory, it should be possible to offer a service which 
compiles the executables for combinations of major architecture / OS 
only once, cache these executables on the webserver and executing them 
in a specialized container on the client's desktop. This or convert the 
file BB++ -> C++ -> WebAssembly. Thus, in theory, we would be able to 
execute real-time engines from within our own browser!

So I am including Qt because it could be integrated into QML or the MOC 
compiler itself. You can see here an example of mixing BB++ with C++ 
code and how easy it is for the language to get rid of cyclic references:
https://github.com/philippeb8/root_ptr/blob/bb++/bbpp2cpp/tests/input2.bb


Regards,
-Phil
http://www.fornux.com
http://www.finitetheory.com
https://www.actatabula.com
http://www.backbonepp.com



More information about the Interest mailing list