Are futures a thing of the past?

Details
Java 21 introduced virtual threads. They bring characteristics to concurrent programs that, up till then, were commonly achieved in Java by using higher-order methods on futures. Are virtual threads to be seen as a performance improvement for thread-centered programs, or more as a move away from futures? Put it differently, is the impact one of performance only, or will virtual threads affect current styles of concurrent programming? In this talk, I discuss several iterations of a simple concurrent program, emphasizing how issues of thread blocking and thread reuse have been handled in Java over the years, up to today's functional futures and tomorrow's virtual threads.
Speaker
Michel Charpentier is an associate professor with the Computer Science department at the University of New Hampshire. His interests over the years have ranged from distributed systems, formal verification and mobile sensor networks. He has been with UNH since 1999 and currently teaches courses in programming languages, concurrency, formal verification and model-checking. His new book is Functional and Concurrent Programming: Core Concepts and Features (Addison-Wesley 2023).

Are futures a thing of the past?