This week, the Chromium project offered a sneak peak to its Native Client SDK.
Why Do Web Clients Need C++?
It seems particularly appealing to have the ability to have more graphics power and speed by using native libraries for C and C++. From the Chromium blog:
"... the SDK lets you write C/C++ code that works seamlessly in Chromium and gives you access to powerful APIs to build your web app."
Here, in Google's video, Henry Bridge, program manager for the SDK shares the scenario of building a video editing application and where native C++ code fits in to the web development paradigm.
Lower Level Virtualization, Everywhere
One of the themes heard from developers want Google to go further with cross compatible libraries and abstract itself with LLVM (Low Level Virtual Machine) approach towards interfacing with specific compiler implementations.
From what we see, Google is planning on enabling additional compilers and plans to support LLVM in time.
The company is inviting developers to start building with the SDK now.
A Few Architecture Musings
Several things come to mind when thinking about the connection of browser, compilers, and the cloud in respect to Native Client SDK.
- Will the adoption of C++ in the core influence implementations in the back-end service design? If you know your client has a native compiler will web service orientated services package lower level objects to the client?
- Will the OS share implementations with the browser in the future for compiling code, or will the browser continue to bring in more OS layers over time?
- Will tools like Flash also implement similar strategies, and/or share libraries such as the one's being packaged in the Native Client SDK?
- Will this influence web frameworks like PHP and other tools that also have been implementing C and C++ compilers to speed up operations. Will there be tighter coupling of processing and will local clients have options on how much to process locally?
- Is this an prelude to a disrupting the games market, but offering a powerful enough browser to process games today? Can existing game code be ported easily and wrapped in a web view?
Google is making progress in emphasizing the browser the default experience for application frameworks and bringing C and C++ libraries into the mix makes sense for higher-order fun in building compelling tools.
Web developers, are there places in your code that you would want to always default to lower level libraries such as C++?