View analytic
Thursday, September 28 • 4:45pm - 5:45pm
Postmodern immutable data structures

Log in to save this to your schedule and see who's attending!

The C++ elites have been talking for years about value semantics, immutability, and sharing by communicating. A better world without mutexes, races, observers, command patterns and so more lies ahead! When it comes to doing it in practice, it is not so easy. One of the main problem lies in our data structures...

Immutable data structures don't change their values. They are manipulated by producing new values. The old values remain there, and can be read safely from multiple threads without locks. They provide structural sharing, because new and old values can share common data — they are fast to compare and can keep a compact undo-history. As such, they are great for concurrent and interactive systems: they simplify the architecture of desktop software and allow servers to scale better. They are the secret sauce behind the success of Clojure and Scala, and even the JavaScript crowd is loving it via Facebook's Immutable.js.

We are presenting Immer, a C++ library implementing modern and efficient data immutable data structures.

In this session, we will talk about the architectural benefits of immutability and show how a very efficient yet powerful persistent vector type can be built using state of the art structures (Relaxed Radix Balanced Trees). We will also show an example application (a text-editor) built using the architectural style here proposed. Not only is its code extremely simple, it outperforms most similar programs. Don't believe it? Come and see!

Immer: immutable data structures | https://sinusoid.es/immer
Ewig: a text editor with an immutable data model | https://github.com/arximboldi/ewig

avatar for Juan Pedro Bolivar Puente

Juan Pedro Bolivar Puente

Independent consultant, Sinusoidal engineering
Juanpe is a Berlin based freelance software engineer, with a focus on interactive software, modern C++, functional programming and open source strategy. Before he worked for Ableton and he has been involved in various music technology projects. He has also developed for the GNU p... Read More →

Thursday September 28, 2017 4:45pm - 5:45pm
Meydenbauer TBA #4 Meydenbauer Center
Feedback form isn't open yet.

Attendees (26)