Did we ever tell you that writing a full-feature compiler is not a job for the faint of heart? During the last couple of months we have been marching forward in our quest to bring a great, seamless C++ programming experience for the Web. And we see victory at the end of our journey!
Duetto is our clang-derived C++ compiler which makes it possible to really translate the value of C++ to Web programming. What we want is for you to be able to reuse your oh-so-hard-to-reimplement C++ code (like simulation libraries, or physics engines) in your shiny new HTML5-based app or videogame, with no need of rewriting it in JavaScript. But not only.
We are aware, of course, that there are already other solutions, such as Emscripten, to solve this problem. What makes Duetto different is that it is a C++ compiler with a C++ mindset.
We believe that the strength of C++ comes from enhancing the platform capabilities, without trying to hide the limitations from the developers. In Duetto, JavaScript is our machine architecture and an HTML5 browser is our OS. Our tool compiles standard, compliant C++11 code to JavaScript and exposes all the awesome HTML5 features of modern browsers, including WebGL. There is no middle layer, no inefficiencies, no custom half-crippled widget library. You write you web page in HTML and CSS, and code the logic with C++. We truly believe this is taking best of both worlds.
We have worked long and hard to polish Duetto and we are now almost satisfied by its capabilities and robustness. We are now ready to share this tool with the first 100 developers that are going to share their interest, in order to collect the most feedback and provide the best possible support and experience.
Interested in trying out Duetto for free? Visit http://leaningtech.com to get your copy.
If you’re not one of the 100 lucky beta testers, do not despair. We will be releasing Duetto in roughly a month. Just enough time to hammer out some bugs, add some more awesomeness and figure out last details on our licensing model. Duetto will be released under a dual licensing scheme, so it will be an open source/free software project, available for anyone. We will also be offering paid commercial licenses for people which are not comfortable with free software libraries and/or want enterprise-grade support.
UPDATE: I forgot to link the incredibly awesome demo by Daniele Di Proietto. He used Duetto to port his own implementation of the “Not tetris” concept to the Web.