Inside every complex gadget is a programming language. How are programming languages designed, and how should they be designed? What are the common design problems? A look at a range of programming languages: the language of Lego, the extraordinarily popular general purpose language Java, and the specialised mathematics programming language Mathematica.