C++ on the web

web_bjarnstroustrup_homepage1

As webdesigner and webdeveloper must know, when you want to include scripting in your web page, you include the <script> tag. And you must specify the language property. Generally the value is javascript or VB for Microsoft environment. I always was surprised that this property was not a open door for other scripting language. And I thougth to languages like C++ directly into the browser. Even if it was more an intention than a possibility, I remark that C++ come closer and closer to the browser environment. Here is a short list of such projects.

Adobe Achemy

 web_adobe_alchemy

Initially code named FlaCC, Adobe Alchemy is a research project that allows users to compile C and C++ code that is targeted to run on the open source ActionScript Virtual Machine (AVM2). Alchemy is primarily intended to be used with C/C++ libraries that have few operating system dependencies. Adobe Alchemy seems to be adapted especially for computation-intensive use cases, such as audio/video transcoding, data manipulation, XML parsing, cryptographic functions or physics simulation.
Read also the Automata Studios’s post , « Understanding Adobe Alchemy » to understand the link between Alchemy and the LLVM compiler infrastructure.

To use Alchemy, you perhaps will need to use Cygwin, a Linux-like environment for Windows.

Google Native Client

web_google_nativeclient

Google launches its project Native Client as « an open-source research technology for running x86 native code in web applications, with the goal of maintaining the browser neutrality, OS portability, and safety that people expect from web apps ».  The Google Native Client consists of a runtime, a browser plugin, and a set of GCC-based compilation tools. Together, these components make it possible to build applications that run in a web browser but incorporate native code modules. To help protect users from malware and to maintain portability, Google engineers have defined strict rules for valid modules. At a high level, these rules specify :

¬ that all modules meet a set of structural criteria that make it possible to reliably disassemble them into instructions and
¬ that modules may not contain certain instruction sequences.

Nixysa

Nixysa is a framework written in Python to automatically generate glue code for NPAPI plugins (plugins for browsers such as Google Chrome or Firefox), letting you easily expose C++ classes to Javascript from a simple IDL (Interface description language) representation.

Wt

 web_webtoolkit_wt

Wt is a C++ library and application server for developing and deploying web applications. The API is widget-centric, and inspired by existing C++ Graphical User Interface (GUI) APIs.
A web application developed with Wt is written in only one compiled language (C++), from which the library generates the necessary HTML/XHTML, Javascript, CGI, SVG/VML/Canvas and AJAX code.

C++ Server pages

web_micronovae_cserverpages1

C++ Server pages (CSP) is a MicroNovae company’s project. CSP scripts are blended HTML/C++ language scripts. Within a CSP script, the C++ code resides inside the <% …(c++ code)… %> tags and HTML outside those tags. t’s equivalent to a JSP, or a PHP page.

I highly recommend C++ on the web.

PS: Let’s me know if I miss another project or technology.

Advertisements

About this entry