On 02/21/2011 08:29 PM, Guzdial, Mark wrote:
Sherry Turkle's new book "Alone Together" raises an important point
that is missing from this discussion. Programming languages can't
saying anything *important* from a human perspective. I enjoyed the
review of "Alone Together" at
Computer programming languages are not languages in any way that is
important or meaningful.
Coming late to the conversation. Apologies if I'm rehashing covered ground.
I don't really take issue with Mark's point (and others stated upthread)
since its obvious that humans use different languages (sign, written,
body) to express things that aren't computations or properties thereof,
which is often the types of things programming languages are used for.
However at the same time, this solves the problem only by boxing in
programming languages artificially by defining them to be the
communication that humans (currently) make to computers. There's three
useful arguments to counter this.
First, in the future we may program our robots using Natural Language --
real Natural Language -- in which case the categorical distinction
vanishes by definition.
Second, there are some *extremely* technical sub-languages for
human-human communication and these would never have expressions of "I
love you" or "I'm sorry". Yet if we took away all such common speech
would that sub-language suddenly cease to be a natural language?
Likewise we'd be hard pressed to full express all of Nietzsche using
body language. So requiring some target concepts be expressed to call it
a Natural language seems like a tenuous point to hang the whole argument on.
Even if you don't like these two arguments, surely most would admit that
*one* of the primary purposes of good programming languages is
human-human communication. In fact, this was an essential point of the
title of Peter Naur's collection "Computing: A Human Activity". In
this narrow sense programming languages and natural languages are not
incomparable. Rather than pound on this second point I offer some examples.
Comments. Use of whitespace. Programming idioms, design patterns,
reference architectures. Mutual intelligibility is not by accident,
readers of code form linguistic communities. There is a social
dimension to code as well as the classic utilitarian dimension.
The following is clearly human-human communication. It is syntactically
Please, listen to, my $words;
seek love, joy, happiness for everything;
study hard and sleep longer if able;
The following is also valid Perl:
print "I love you.";
This expresses a simple emotion. Electronic greeting cards and computer
art are merely more elaborate versions of the same trick. If algorithms
are expressive in themselves then they are ways for humans to
communicate (see the thesis of Lopes http://apoca.mentalpaint.net/).
The thesis is a specific extension of Naur (computing is a human
activity). If true, programs are expressive beyond their ability to
formalize a computation since the computations are expressive.
The explanation of this program is here
This is an entry into an obfuscated C programming contest. Many will
agree that C is obfuscated by construction. Others observe that we have
no shortage of inscrutable code -- certainly introductory programming
instructors are acutely aware of it. Still, we have an obfuscated C
programming contest where the winners do not win by merit of the
computation expressed, but by the properties of its expression as
interpreted by humans.
This page provides Haiku versions of the DeCSS DVD decryption algorithm.
The DeCSS code was put on t-shirts and into dramatic reading and into
Haiku. Many people did this because the algorithm was being suppressed,
and the link above can be seen as expression of political discourse
through the use of programming languages.
TL;DNR It is useful to confine programming languages to only their
ability to formalize computations or properties thereof, but from a
wider perspective they are used by people for some of the same purposes
that natural languages are used for.
The Open University is incorporated by Royal Charter (RC 000391), an exempt charity
in England & Wales and a charity registered in Scotland (SC 038302).