C++Now 2017 has ended
Back To Schedule
Wednesday, May 17 • 4:30pm - 5:15pm
Postmodern Immutable Data Structures

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.

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 gets to doing it 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 or 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 archectural style here proposed... not only is its code extremely simple, it outperforms most similar programs. Don't believe it? Come and see!


avatar for Juan Pedro Bolivar Puente

Juan Pedro Bolivar Puente

Freelance Consultant, Sinusoidal Engineering
I am Berlin based freelance software engineer, with a focus on interactive software, modern C++, functional programming and open source strategy. Before I worked for Ableton and I have been involved in various music technology projects. I have also developed for the GNU project and... Read More →

Wednesday May 17, 2017 4:30pm - 5:15pm MDT
Flug Auditorium