Programming language VMs are now widely used, from server applications to web browsers. Benchmarks show that VMs can optimise programs to the same degree as, and often substantially better than, traditional static compilers. VMs, it seems, have more than proved their worth.
And yet there are still many people who are unhappy with the VMs they use. Frequently their programs don't run anywhere near as fast as benchmarks suggest; sometimes their programs run slower than more naive language implementations.
Often our reaction is to tell such users that their programs are "wrong" and to fix them. While this is sometimes a reasonable answer, this talk's thesis is that we use this answer too often. I will therefore discuss some of the reasons why I believe that real users don't see the same performance levels that VM implementers. I will then offer some thoughts for how, and to what extent, we can make more VM users more happy.