Re: What databases have taught me

From: Bruno Desthuilliers <onurb_at_xiludom.gro>
Date: Wed, 28 Jun 2006 20:49:02 +0200
Message-ID: <44a2cf1f$0$602$>

Marshall wrote:
> erk wrote:

>>On the other side of the coin, I'm learning Ocaml and Haskell. I think
>>the attention on the dynamically-typed languages is due primarily to
>>the problems with the major statically-typed languages; that doesn't
>>mean there aren't better statically-typed languages with good type
>>inferencing, and I think many strides are still being made on the
>>strongly-typed front.

> I would like to add a few point to yours.
> First of all, while a lot of ink is being consumed discussing ruby and
> python, please note that virtually all commercial software activity
> is happening with C++ and Java.

OTHO, and FWIW, the fact that Guido Van Rossum now works at Google, and that MS is working on a .NET version of Python are a sure sign that this is not just another cryptic language. We also see more and more Java and C++ programmers on

But that's only anecdotical, since, may I quote: """
we do not limit ourselves, (or sometimes, even concern ourselves) with what products are out there today



(snip jobs listings)

> The second point is that while many features of type systems
> are discussed in print, especially the much-misunderstood
> difference between languages that support static analysis,
> and those that do not (sometimes called "dynamically typed"),

Dumb question: isn't there a third category ? IIRC, in objective-C and CommonLisp, it's possible to mostly relie on (what's commonly called) dynamic typing, but yet provide type declarations when desired ?

(not trying to make a point here)

> there is an issue that gets almost no attention, but which
> I believe is actually quite important: the difference between
> nominal and structural type systems.
> Most statically typed languages, and all popular ones, are
> nominally typed, not structurally typed. Essentially what this
> means is that if you have two identical types with different
> names, are they consider the same type ("structural") or
> different types ("nominal.") SQL is structurally typed, and
> furthermore has a product type as its fundamental
> collection. Most "dynamically typed" languages are structural
> rather than nominal, and I believe it is that, and not
> <shudder> "duck" typing, that gives them a good bit of
> their interest.

Globally agree. The main problem with "nominal" static typing IMHO is the "nominal" part.

> I believe a structurally, statically typed language with a
> product type as its fundamental collection, (along with
> some relational operators) would be *most* interesting.

Could you elaborate on (of give pointer to) what's "product type" exactly ?

bruno desthuilliers
python -c "print '_at_'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb_at_xiludom.gro'.split('@')])"
Received on Wed Jun 28 2006 - 20:49:02 CEST

Original text of this message