Lists Home |
Date Index |
I agree on all points. I think that for about 50 years or
so, we have watched the emergence of computer science which
some barely think qualify as a science from the soup of
formal theories of language, philosophy and logic in an
environment that has been at times rigorous in its demands
of proofs for requirements and at other times, quite market-driven.
At times it has emphasized performance and other times,
ease of composition. During the 80s at least, the realization
that languages and data were outliving the hardware offered
new challenges to the language designers. With data becoming
a first class citizen and as Tim Bray says, 'it's not what
you say but what you save' becoming a new mantra, we once
again try to find the right combinations of tricks we
know how to perform on the von Neumann architecture.
All I know is from having written the same application
in three languages, Visual Basic, FoxPro and C# is that
VB was easy to learn but the hardest to do anything
right, C# was harder to learn but once learned, the
easiest for adding features to the application, and
that FoxPro, even being a two tier language, was the
most productive although the trickiest to debug (and
the programming GUI simply sucks). The main reason
was the integrated queries.
So perhaps it is true that as a result of our work
on the web, for the first time, all of the different
models and tricks are comparable in a common zeitgeist
and a common platform. We now know a lot more about
how hypertext systems, object and relational databases,
plus the file-oriented systems such as XML and delimited
ASCII can be combined. We can compare scripting with
objects to programming objects, and we understand the
value of unified addressing. As a result, even if this
is another cakewalk to see which technology is left
without a chair, computer science itself is maturing
in the fact of our practice of having to implement
systems that reach to the entire world and scale at
least to the complexity of e-mail/gmail/3DMaps.
I'll skip over the object-oriented vs relational
issues we I think are not really boolean (no single
selector suffices without other considerations).
From: Michael Kay [mailto:email@example.com]
> Thanks. Off the top, some of what I like about Foxpro
> comes back with the language integrated query.
I don't know FoxPro but there were a lot of 4GLs in the 1980s that
integrated database access closely into the programming language. I've never
been sure why they failed. For some reason the market was incredibly
fragmented (no-one had more than 3%) and there were no standards. I think
people wanted better programming languages than the 4GLs offered by the
database vendors, and the independent 4GL vendors wanted to be
database-independent; and of course the disaster called client-server became
fashionable. So in the end loose coupling won the day - people moved to
dynamic SQL embedded in anything (in the form of character strings passed to
procedure calls), which on the surface is about as bad a design as you can
get from a programming language theory point of view.
So on the one hand I'm pleased to see a resurgence of interest in database
programming languages, and on the other hand I'm feeling a strong sense of
deja vu and wondering what lessons have been learned from the last time
One thing I am convinced of: a good database programming language is likely
to be very declarative.