On 06/19/2012 11:27 AM, Bjoern Michaelsen wrote:
On Tue, Jun 19, 2012 at 10:42:39AM +0200, Stephan Bergmann wrote:
On 06/14/2012 01:58 PM, Bjoern Michaelsen wrote:
Actually writing down the static information can have a huge benefit
on maintainability. (Even in static languages with type inference
like Haskell, where you would not actually need to write down type
signatures, it is common practice to nevertheless do so especially
for exported entities, for better documentation.) Witness gbuild:
we do run into cases there where a macro is called with more
arguments than it expects, and at least I often need to decipher
definitions (or worse, use "monkey see, monkey do" copy/paste) to
figure out what arguments, and in what order, a macro takes. I
would *love* to have a more statically typed machinery there...
The problem with gbuild is not that it is dynamic typed, but that it is weakly
typed (everything is a string).
While gbuild indeed only has a single basic data type (string), it does
have the notion of functions (aka macros) that take arguments, so it
does have more elaborate types, namely "string* -> string" (i.e., a
macro takes an arbitrary number of string arguments and produces a
single result string). What I was complaining about is that it does not
have more specific types like "(string, string, string) -> string"
(i.e., a macro that takes exactly three string arguments).
Literature often calls gbuild's "everything is a string" design
"type-unsafe" rather than "weakly typed" (then again, nomenclature is
certainly inconsistent in this field).
Testing an Any to be of a type able to provide what it
should at runtime is still a sane thing to do, and is done anyway most of the
time.
It is the minimum of what one needs to be done, I'd say. ;) (Or I
maybe don't get what you want to say here exactly.) What I'm arguing is
that having to resort to runtime checking is needed rarely, so I
wouldn't make dynamic typing the default.
Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice