Programming languages have long had to carefully balance between human usability and computational efficiency. Indeed, many programmers constantly need to keep efficiency in mind as they implement their projects. This concern often forces programmers to write code in ways that are hard for them and their colleagues to read but which will execute more efficiently. This may happen at fine-grained levels such as within a procedure, but it can even force programmers to use library designs that they know are fragile and error prone but which can get them the performance they need. In this presentation I will present technologies that enable programmers to extend the compiler with new optimizations by example and even to automatically infer optimizations from library properties. These technologies allow programmers to write intuitive code and execute efficient programs, thus making programming languages more usable by lifting the burden of optimization.