What is Expressiveness in a Computer Language

Joachim Durchholz jo at durchholz.org
Sat Jun 17 07:03:19 EDT 2006


Raffael Cavallaro schrieb:
> On 2006-06-16 17:59:07 -0400, Joachim Durchholz <jo at durchholz.org> said:
> 
>> I think it's easier to start with a good (!) statically-typed language 
>> and relax the checking, than to start with a dynamically-typed one and 
>> add static checks.
>
> This is purely a matter of programming style. For explorative
> programming it is easier to start with dynamic typing and add static
> guarantees later rather than having to make decisions about
> representation and have stubs for everything right from the start.

Sorry for being ambiguous - I meant to talk about language evolution.

I agree that static checking could (and probably should) be slightly 
relaxed: compilers should still do all the diagnostics that current-day 
technology allows, but any problems shouldn't abort the compilation. 
It's always possible to generate code that will throw an exception as 
soon as a problematic piece of code becomes actually relevant; depending 
on the kind of run-time support, this might abort the program, abort 
just the computation, or open an interactive facility to correct and/or 
modify the program on the spot (the latter is the norm in highly dynamic 
systems like those for Lisp and Smalltalk, and I consider this actually 
useful).

I don't see static checking and explorative programming as opposites.
Of course, in practice, environments that combine these don't seem to 
exist (except maybe in experimental or little-known state).

Regards,
Jo



More information about the Python-list mailing list