Lots of people talking about
this Meijer / Drayton paper (warning: PDF, sane HTML version here)
coming out of Microsoft Corporation. The paper is titled,
Static Typing Where Possible, Dynamic Typing When Needed:
The End of the Cold War Between Programming Languages.
We are interesting in building data-intensive three-tiered enterprise
applications. Perhaps surprisingly, dynamism is probably more
important for data intensive programming than for any other area where
people traditionally position dynamic languages and scripting.
That’s the first part of one of many paragraphs I found intriguing and,
IMO, is dead on. Unfortunately, that leads us to the sentences that are
meant to support that claim:
Currently, the vast majority of digital data is not fully
structured, a common rule of thumb is less then 5 percent. In many
cases, the structure of data is only statically known up to some
point, for example, a comma separated file, a spreadsheet, an XML
document, but lacks a schema that completely describes the instances
that a program is working on. Even when the structure of data is
statically known, people often generate queries dynamically based on
runtime information, and thus the structure of the query results is
statically unknown.
I’m not sure I follow the logic here. Dynamic languages like Python,
Ruby, and Perl have a more powerful set of data manipulation facilities
that require less code and read easier than their statically typed
analogs in Java, C#, and C++ but they’re no more aware of the data’s
underlying type system. I have a bad feeling they really wanted to go
down the same old SOAP/RPC and XML Schema (see: gHorribleKludge) data
binding path here and figure out how we can just abstract away the
entire concept of data and make everything look like nice little
objects. If it didn’t work with our current languages, it must be a
problem with the language, right?
Anyway, the paper received a pretty thorough beat-down over at
Lambda, which is always a bad sign when you’re talking at the
type/language theory level. I personally have mixed feelings on the
paper - while I think anything that puts dynamic languages on equal
ground with the more accepted statically typed languages is a good
thing, I’m not sure that inventing a new peacefully integrated
language and discarding the ones we’ve actually observed working for so
long is the best way forward.
How about you guys just drop your types for now and we’ll add them back
in later. :)