GoingNative 8: Introducing Casablanca - A Modern C++ API for Connected Computing
Welcome to the 9th installment of GoingNative. Charles flies solo this time around as Diego is on a well-deserved break from work.
At GoingNative 2012, Herb Sutter addressed the need for more general purpose standard C++ libraries - high level libraries - for use in modern computing. So, things like HTTP, REST, JSON are important today (and working with these technologies is not as easy as it should be in C++), not to mention simplifying asynchronous programming for C++ developers. We live an asynchronous world and C++ libraries need to evolve to compensate for this fact (and catch up to .NET and Java in this regard both on the client and on the server...). What's the story for C++ in the cloud?
A very small group of C++ developers inside Microsoft have started an incubation project to make native libraries that afford both developer productivity and performance and power - and for C++ developers. We love this! This is the Casablanca API and it takes full advantage of C++11.
This episode is dedicated to the Casablanca "dev lab" project with the hope that all of you will download and experiment with the API, vet it, push it, break it, provide feedback to speed up its maturation (it is alpha quality, of course (it's an incubation and this is the first release), so there will be a few bugs, but it's stable enough to be useful right now). Go get it!
What does Casablanca provide, exactly?
With Casablanca, you get support for doing things like developing REST services for Azure, or accessing them from clients via an HTTP library, sending JSON data, accessing Azure blob and queue storage, and using TCP for flexible networking needs, all in a library that takes advantage of modern C++.
Casablanca also gives you a convenient model for composing asynchronous operations. C++ 11 offers a whole new set of capabilities that can make dealing with asynchronous operations easy, and Casablanca takes advantage of that throughout.
Another aspect of Casablanca is its implementation of the actor programming model, which has proven itself useful in building reliable and scalable systems. (not familiar with the Actor Model, well, learn from the inventor of it here).
Table of Contents:
[00:00] GoingNative(); //Charles flies solo for this episode (Diego is on vacation). Quick chat about what's coming (new STL series (the person, not the library)), introduction to Casablanca, a modern C++ API (incubation) for asynchronous client/server computing (so, modern C++ for the cloud and the client)