I think the biggest improvement that would help people like @dstorrs would be making it more like the Python GIL, in that blocking operations would resume parallel execution after they complete (this is called a "synchronized" operation in the futures docs). It's not clear to me how difficult it would be to make IO operations, in particular, synchronized, but that would be needed to make futures useful in eg web server applications.