Menü
Developer

Duetto – C++-Compiler fürs Web

vorlesen Drucken Kommentare lesen 11 Beiträge

Das noch junge Unternehmen Leaning Techologies hat mit Duetto einen Compiler vorgestellt, der es ermöglichen soll, in C++ geschriebene Anwendungen in JavaScript-Code für die Clientseite und nativen Code für den Server umzuwandeln. Auf diese Weise sollen auch C++-Entwickler die Option haben, das Web für ihre Zwecke zu nutzen und bereits geschriebenen Code in einem neuen Kontext einzusetzen.

Das Projekt versucht die Vorteile von Node.js und Emscripten zu verbinden, indem es Programmierern das Erstellen von Webanwendungen vom Frontend bis zum Backend in einer Sprache ermöglicht – nur dass diese nicht JavaScript, sondern C++ heißt und der Code deshalb für das Web übersetzt werden muss. Anders als der LLVM-to-JavaScript-Compiler Emscripten versucht Duetto dabei nicht, den normalen Adressraum mit typisierten Arrays zu emulieren, sondern bildet C++-Objekte direkt auf JavaScript-Objekte ab. Die Entwickler erhoffen sich dadurch, den Speicherverbrauch zu reduzieren, da die Garbage Colletion nicht verwendete Objekte einfach löschen kann.

Duetto hat den LLVM/clang-Compiler zur Grundlage. Der entstehende Code ist durch die Nutzung der dazugehörenden Toolchain und den entsprechenden Optimierungsmaßnahmen vergleichsweise effizient, was die Last auf den Javascript-JIT-Compiler zur Laufzeit reduzieren soll. Duetto erlaubt darüber hinaus wohl den direkten Zugriff auf alle Browser-APIs, da das Projekt der C++-Philosophie, die Möglichkeiten und Einschränkung der genutzten Plattform dem Nutzer direkt zugänglich zu machen, folgt. Seine Entwickler wollen Duetto nicht als weiteres Framework verstanden sehen, sondern bezeichnen ihr Produkt als Erweiterung für C++11, auf dem sich allerdings neue Frameworks aufbauen lassen.

Der Compiler als Free and Open Source Software auf GitHub erhältlich, ein kommerzielles Paket mit entsprechender Lizenzierung soll demnächst folgen. (jul)