Via the Typesafe blog I learned that Phil Bagwell recently passed away. I met Phil at the 2011 Clojure Conj and had the absolute pleasure to wine and dine with him during the course of the weekend. Four things stand out to me from that time:
He had an amazing sense of humor. I was a bit intimidated in meeting him, but was soon put at ease by his friendly demeanor and willingness to crack a hilarious joke in a flawless deadpanned manner.1
His grasp of algorithmic complexity and data structures was staggering. In fact, his work defining HAMTs 2 has been a constant source of inspiration, not only for myself, but for data structure research in general and specifically in implementation within Clojure, Scala, and Haskell. These languages and their users owe Phil a great debt of gratitude for his pioneering work. It’s on us to learn3 from his valuable lessons and make something of them.
Although he probably knew more about functional data structures than anyone else in the room, he took pains to describe his work as “dabbling” and “a hobby”. His modesty was disarming and inspiring.
He talked very silently. However, because the people around him feared missing his wisdom, you would often see a crowd of people leaning in toward him as to not miss a syllable.
I will cherish those hours spent talking with him. I am saddened that the chance to converse with him again is gone, but mostly I’m saddened for his family, co-workers and computer science at large. We’ve lost an amazing individual.
Thank you Phil.
More information on HAMTs and their genesis in http://infoscience.epfl.ch/record/64410/files/techlists.pdf. ↩
His recent work on lock-free versions is detailed in http://lampwww.epfl.ch/~prokopec/ctries-snapshot.pdf ↩