Re: What databases have taught me

From: Marshall <marshall.spight_at_gmail.com>
Date: 28 Jun 2006 09:32:43 -0700
Message-ID: <1151512363.770062.74660_at_i40g2000cwc.googlegroups.com>


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.

# of results for queries on hotjobs.com
sql programer: 1728
java programer: 1257
c++ programmer: 879
visual basic programmer: 379
perl programmer: 336
php programmer: 173
python programer: 48
ruby programmer: 12

(as of today.)

Job listings aren't everything, of course, but I still consider the above statistics dramatic.

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"), 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.

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

Marshall Received on Wed Jun 28 2006 - 18:32:43 CEST

Original text of this message