HackerTubewatch
Surprise me
Frame from CppCon 2017: Juan Pedro Bolivar Puente “Postmodern immutable data structures” Plays via YouTube's privacy-enhanced embed

CppCon 2017: Juan Pedro Bolivar Puente “Postmodern immutable data structures”

48 videos recommended on HN
YouTube
5 HN users recommended this talk7 months2017–2025 score 7.5
Years with an HN recommendation, 2007–2026

HN people point to it for rrb-trees, text editor data structures and bringing Clojure-style persistent structures to C++.

Juan Pedro Bolivar Puente explains immutable and persistent data structures in C++ and how they support value semantics. He presents the Immer library, rrb-trees, and a prototype text editor that opens a huge file instantly.

“Immer [0][1] seems like a really serious attempt at bringing high-quality persistent data structures to C++.” (HN, 2021)

1 strong recommendations · 6 recommendations · 6 citations · Talks · advanced

13 Hacker News comments

From the HN archive; up to 20 kept per video, favoring different commenters. Recommendations first.

@nightowl_games Dec 2020 Strongly recommends
on HN thread Ask HN: What are the best advanced computer science courses online?
Hey. Check out Juan Pedro Bolivar Puente's talks om value oriented design. He worked on Ableton which is a large application. He specifically speaks to Undo. He describes a much better pattern than the Command Pattern. He also released his source for Value Oriented Data structures Juan Pedro is a next level programmer who I think has pushed the craft forward through his work on bringing Value Oriented Design into the C++ world. Talk I [this video] Talk II [link] Data Structures: [link] Application Structure: [link] Text Editor: [link] Good luck.
Better undo pattern than Command Pattern from Ableton developer
@proverbialbunny Aug 2019 Recommends
on HN thread Build Your Own Text Editor
In case anyone hasn't seen it this CppCon talk [this video] talks about rrb-trees and how they're a great data structure for writing a text editor that can handle unlimited sized documents without locking up, and allows for editing while saving and opening, and an easy way to support an undo command. Most text editors today do not support such functionality. With lockless data structures like an rrb-tree it becomes easy. It really is an ideal way to do write a text editor.
Using rrb-trees for large-document text editing with undo
@modernerd Jun 2023 Recommends
on HN thread Text Editor Data Structures
You might be interested in ewig and immer by Juan Pedro Bolivar Puente: [link] [link] See the author instantly opening a ~1GB text file with async loading, paging through, copying/pasting, and undoing/redoing in their prototype “ewig” text editor about 27 minutes into their talk here: [this video] It’s backed by a “vector of vectors” data structure called a relaxed radix balanced tree: [link] That original paper has seen lots of attention and attempts at performance improvements, such as: [link] [link]
Prototype editor opening a 1GB file instantly using immutable vectors
@zelphirkalt Oct 2025 Recommends
on HN thread Type Theory and Functional Programming (1999) [pdf]
Read more
> [...] which is a must for anything performance oriented. But that's also not really true. Using functional data structures it is possible to write highly performant software. Check out for example "CppCon 2017: Juan Pedro Bolivar Puente - Postmodern immutable data structures"[1], an impressive talk, in which someone shows their developed editor that can edit huge text files without lag faster than any mainstream editor today. This is enabled by functional data structures. Usage of functional data structures throughout a project also ensures, that parts can be trivially parallelized, which is not true for traditional algorithms, and therefore can easily scale with number of CPUs available. For more on that subject, you might want to watch a few Joe Armstrong talks. Rust achieves type safety by introducing more language concepts like ownership, borrowing, and lifetimes, to formalize, who has access when and how. It also creates things as immutable by default, unless you make use of `mut`. Unfortunately, Rust's philosophy is shared memory and making shared memory access safe, rather than message passing, which is at odds with FP. [1]: [this video]
Editor handling huge files with functional data structures

Citations, criticism and jokes

@arximboldi Nov 2017 Cites it
on HN thread Ask HN: How much time do you spend on “marketing” your open source projects?
Read more
My most popular open-source project [1] I talk about at conferences, mostly C++ ones (last example [2]). I was lucky to also land a paper about it at ICFP'17 [3]. On Friday I will talk at the MeetingCpp conference in Berlin about a new library I am building (kind of experimental Redux for C++ with time-travelling debugger!). I work as a freelancer and at the moment I do client work 3 days a week and dedicate the rest of the time to the open-source work. The open-source work includes doing research and implementing these tools, but also preparing the talks, which is a very time consuming task for me. Doing conference talks is very emotionally exhausting, I dread the previous weeks to the talk---but the feeling afterwards is very good and it is a good way to get exposure, I hope. My dream is to some day form a social company with a coop structure that works full-time on open-source, either directly or indirectly helping clients use these tools in their system. I hope I am set up in the right direction. Recently I opened a Twitter account to talk mostly about my open-source stuff [1]. I admittedly hate Twitter as a social network, but I've been convinced that it is a good place for networking in our industry, so I just play the game. I keep telling myself that I should open blog too, but then I realize that one can't simply do everything all the time, so I guess maybe I'll never do it. To your last question: is it unfair to not do marketing to your work? Totally not. Just do wha
Author's own conference talk about his open-source library
@arximboldi Oct 2018 Cites it
on HN thread Clojure at Netflix (2013) [slides]
Interesting to hear about C++ in this context, since of my goals is to make C++ more like Clojure: [this video] [link] There is a lot of I could say about the relationship between C++ and Clojure, but I'll leave it at that for now :-)
Bringing Clojure-style persistent data structures to C++
@proverbialbunny Aug 2019 Cites it
on HN thread Why Are So Many Developers Hating on Object-Oriented Programming?
Read more
One example is streaming. Streams allow for a near infinite array size to be processed, because it works on one element at a time as it comes in. Streams come from the FP world. From that function chaining originates from the FP world and is used in modern languages like Python quite heavily. You mentioned research, so a valid example of this is the difference between Spark and MapReduce. Spark was introduced to optimize processing large sets of data, by streaming it. MapReduce does not. For a more heavy example, a few data structures that are quite powerful come from the FP world. For example, this cppcon talk is introduces one, which gives near O(1) time for all uses (insert, delete, lookup, ...), and can be used in a thread safe way: [this video]
Example of a powerful functional data structure
@proverbialbunny Sep 2019 Cites it
on HN thread Show HN: Array with Constant Time Access and Fast Insertion and Deletion
Interesting. I wonder how similar a Judy array is to an rrb-tree (relaxed radix binary tree), or if they're the same thing. An rrb-tree is an effective O(1) time for every category. Scala's Vector type implements one. If interested about the data structure: [this video] Scala bigO doc: [link] Scala's doc on it: [link]
Explains the rrb-tree data structure
@arximboldi Jan 2021 Cites it
on HN thread Build Your Own Text Editor
For another approach: I built a didactic text editor to teach "value oriented design" and immutable data-structures in C++: [link] It's design is covered in these talks: - Postmodern immutable data structures: [this video] - The most valuable values: [link]
Talks covering the design of a didactic text editor
@henrydark Jan 2023 Cites it
on HN thread Functional Programming – How and Why
Not to disagree, but to be fair modern fp runtimes use data structures that wouldn't have to copy so many bytes as the whole state. A nice showcase of this idea is in Juan Pedro Bolivar Puente's CppCon '17 talk Postmodern Immutable Data Structures: [this video]
Shows immutable structures need not copy all state

Video list and Hacker News comment labels from HackerTube (prompted by @karpathy), released under ODC-By 1.0, built on the open-index/hacker-news archive. Hacker News data is provided by Y Combinator; comments remain the work of their authors. Video titles, channel names and thumbnails belong to their creators and are shown via YouTube. HackerTube Watch is an unofficial edition. Data export of 2026-10-31.

Keyboard shortcuts

/
Search
j k
Next / previous video
r
Surprise me
l
Like (video page)
w
Watch later (video page)
?
This help
Esc
Close