What is Expresiveness in a Computer Language?

James Dennett jdennett at acm.org
Sun Jul 10 15:40:03 EDT 2005


Pete Barrett wrote:

> On 10 Jul 2005 02:57:04 -0700, "Xah Lee" <xah at xahlee.org> wrote:
> 
> 
>>Similarly, in computer languages, expressiveness is significant with
>>respect to semantics, not syntactical variation.
>>
> 
> It may just be me, but I tend to think of a computer language as a
> tool for directing computers to perform specific actions. Do we talk
> about the expressiveness of a spade?

Spades, however, are rarely used for communication between
human beings, whereas languages, definitely including
programming languages, are.  While there's a good case to
be made that communication from a person to a computer is
the *primary* use of a programming language, communication
between programmers is a major secondary use.

> There's a similar concept in the 'possible uses' of a tool (a spade is
> an excellent tool for digging the garden, but you wouldn't use it to
> clean your teeth; you *could* use a toothbrush to dig the garden, but
> you wouldn't if a spade was available). Similarly with computer
> languages - some are better for certain tasks than others, but I don't
> think 'expressiveness' is the way to describe that.

You're missing, maybe, the very special nature of one task,
namely that of communication between programmers.  Computers
care not if you use assembly code or Python, but people often
find one or the other easier to read and understand.  (Which
is considered easier depends on the background of the reader.)

-- James



More information about the Python-list mailing list