Here are some more that come to mind:
Sandboxing+permissions+isolation. Being able to easily install, safely use and cleanly uninstall untrusted software totally changed the way most people consume software, on both the web and mobile. (Virtualization is neither sufficient (because I do want to give some apps access to some hardware) nor necessary (see NaCl))
Types. The static-typing wars may still be raging in other domains, but the vast majority [1] of our infrastructure is written in statically-typed languages, and many popular dynamic languages are growing gradual-typing tumours.
LLVM. Writing a compiled language used to be a major effort. Codegen quality was a huge incumbent advantage. Five years ago C, C++ were pretty much it for compiled languages, with some heroic efforts like OCaml and GHC on the sidelines. Nowadays pretty much all the language and database research that I see involves LLVM.
Packaging. Both OS and library package managers have come a long way since 1950, and to a first approximation 100% of programmers use one or the other.