What is Expressiveness in a Computer Language

Joachim Durchholz jo at durchholz.org
Wed Jun 14 15:04:34 EDT 2006


Raffael Cavallaro schrieb:
> On 2006-06-14 09:42:25 -0400, torbenm at app-1.diku.dk (Torben Ægidius 
> Mogensen) said:
> 
>> It takes longer for the average
>> programmer to get the program working in the dynamically typed
>> language.
> 
> Though I agree with much of your post I would say that many here find 
> the opposite to be true - it takes us longer to get a program working in 
> a statically typed language because we have to keep adding/changing 
> things to get the compiler to stop complaining and actually compile and 
> run

I think Torben was assuming a language with type inference. You write 
only those type annotations that really carry meaning (and some people 
let the compiler infer even these).

 > a program which would be perfectly permissible in a dynamically
> typed language such as common lisp - for example - heterogeneous lists 
> and forward references to as yet non-existent functions.

Um... heterogenous lists are not necessarily a sign of expressiveness. 
The vast majority of cases can be transformed to homogenous lists 
(though these might then contain closures or OO objects).

As to references to nonexistent functions - heck, I never missed these, 
not even in languages without type inference :-)

I don't hold that they are a sign of *in*expressiveness either. They are 
just typical of highly dynamic programming environments such as Lisp or 
Smalltalk.

Regards,
Jo



More information about the Python-list mailing list