The programming language landscape