  Programming language design requires making many usability-related design
decisions. However, existing HCI methods can be impractical to apply to
programming languages: they have high iteration costs, programmers require
significant learning time, and user performance has high variance. To address
these problems, we adapted both formative and summative HCI methods to make
them more suitable for programming language design. We integrated these methods
into a new process, PLIERS, for designing programming languages in a
user-centered way. We evaluated PLIERS by using it to design two new
programming languages. Glacier extends Java to enable programmers to express
immutability properties effectively and easily. Obsidian is a language for
blockchains that includes verification of critical safety properties. Summative
usability studies showed that programmers were able to program effectively in
both languages after short training periods.
