Published Sep 3, 2019

Episode 44: Interview Brian Goetz and David Holmes

Brian Goetz and David Holmes dive into the future of concurrency, exploring advanced models like concurrent data structures and transactional memory, while examining the Java memory model's implications for current trends. They balance discussions on safety, liveness, and optimization complexities to illuminate the path forward for high-performance programming.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Memory Model

    In this episode, and explore the complexities of the Java memory model and its impact on concurrency. They emphasize the importance of understanding synchronization to avoid relying on "lucky timing" for program correctness 1. highlights the safety guarantees provided by the memory model, ensuring that even if synchronization is mishandled, Java's security mechanisms remain intact 1.

    The hardest part of the memory model is actually coming up with these safety guarantees.

    ---

    and also discuss the "not out of thin air" rule, which ensures that memory reads return values that were actually written by some thread, preventing random data from corrupting program execution 1.

       

    Future Directions

    Looking ahead, and discuss the future directions of concurrent programming. They express a desire for higher-level languages that simplify concurrency, moving beyond current mechanisms that require explicit identification of interactions 2.

    The hope is that eventually we will have higher level languages that can express concurrency in more succinct forms.

    ---

    mentions ongoing research projects that aim to address these challenges, indicating a promising future for more intuitive concurrency solutions 3.

Related Episodes