Why programming languages?

On this webpage, I will attempt to answer the question: Why do I like programming language research and what do I hope to accomplish with it? Note that I take the question to be synonymous with itself: what I like is what I strive for. That is, the meta-reason may simply be stated as I like PL because by doing PL I can learn about things that I like.

Aesthetics

Programming language research is pretty. The concepts of mathematical beauty and elegance come into play when talking about PL. Although this is not the forum to provide a definition of mathematical beauty (as I suspect one could fill several chapters of a book of philosophy trying to come up with a definition), I will take the definition implicit and apply it.

In PL, one strives to arrange for both the subject of discourse (that is, the language or language features than one studies) and the discourse itself (in the form of proofs of various interesting properties) to be as simple and minimal as possible. This minimality naturally leads to elegant methods of abstraction and proof.

Communication

That a programming language may be interpreted by a computer is, in my opinion, not the entirety of its usefulness. A programming language is also useful because it may be used to unambiguously communicate some fact. That is, I focus on the L in PL. The most appealing aspects of studying natural languages is in their ability to enable communication. It is just the same with PL. Rather than simple Turing-completeness, what is interesting about a programming language is the sorts of things that it allows one to easily communicate to another person.

Usefulness

There is a hope in studying PL, that by developing a more powerful language, one can really influence programming practice. That is, rather than directly building one system, one allows N other programmers to build N systems.

Conclusion and Status

This document is a work in progress. I will add to it when I'm in the right philosophical mood.

λgeek/aleksey