An exploration of programming languages