[cap-talk] David Wagner's Google techtalk is now up!
Stiegler, Marc D
marc.d.stiegler at hp.com
Thu Dec 13 14:31:39 EST 2007
> Finally, a side comment on the whole static/dynamic issue.
> There are real restrictions that a safe static type system
> imposes. One, which MarkM can explain better than I, is that
> static types and first-class messages are not really
> compatible (more precisely: first class reply
> messages) within the current state of the art of type theory.
> In practice, however, I have not found any of these
> limitations to be compelling practical problems. This leads
> me to the opinion that the static/dynamic "battle" is
> *usually* a battle about something else
> entirely: the cost of annotating a program with types. And it
> is less about the cost of annotation per se than it is about
> the cost of being required to annotate before appropriate
> types are properly known (e.g.
> in early prototyping). Once they get over the new user hump,
> ML and Haskell users do not seem to incur much prototyping
> overhead in comparison to users of more dynamically typed languages.
> The first class message issue is arguably quite real, but it
> occurs at exactly the place where the runtime meets the
> language, and I/O is inherently a place where static typing
> breaks down at the boundary in all languages.
I like this characterization, but would like to point out that I/O occurs in places where one might not necessarily think of it explicitly. The thing that has historically driven me to madness with statically typed languages has been the interface to the relational dbms.
Having said that, my appreciation of Ocaml has been growing ever since I learned it, and continues to grow every day that I use Java. I say this even though, when faced with I/O, Java can be made to work much better because of reflection/serialization.
More information about the cap-talk