Re: What databases have taught me
Date: 28 Jun 2006 10:06:00 -0700
Message-ID: <1151514360.236772.278520_at_b68g2000cwa.googlegroups.com>
Marshall wrote:
> 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.
Agreed. I just think the ink may be a harbinger of future trends, and would rather the ink were on more worthy languages.
> 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.
I believe that most (if not all) of the ML family of languages uses structural typing.
> I believe a structurally, statically typed language with a
> product type as its fundamental collection, (along with
> some relational operators) would be *most* interesting.
I agree completely, though the product type gives you (essentially)
tuples; the next obvious step would be proper relations as (minimally)
powersets of these product types. I think that those operations would
fall out nicely from the product type.
Still missing are constraints; however, I have a white paper burning a
hole in my book bag, related to this very thing. Witness Alloy
constraints and model elements as annotations on Java code:
http://cag.lcs.mit.edu/~marinov/publications/KhurshidETAL02AAL.pdf
- Eric