For most of my ~30 year career I’ve been working on Virtual Machines. In that time, much has changed. VMs were obscure in the 1980s; now they underpin much of computing. Performance has improved by about two orders of magnitude; complexity by much more than that. And yet, many problems remain. In this talk, I will use VMs which I’ve worked on (for Smalltalk, Self and Java) to outline some of the milestones of the past 30 years, list some of the problematic areas, and describe work in progress in Oracle Labs’ Virtual Machine Research Group, which is attempting to address some of the problems in building new, high-performance VMs for dynamic languages.