Re: One Ring to Bind Them

From: Dawn M. Wolthuis <>
Date: Tue, 15 Jun 2004 11:56:17 -0500
Message-ID: <can9nq$q7r$>

"Eric Kaun" <> wrote in message news:eAEzc.25646$
> "Dawn M. Wolthuis" <> wrote in message
> news:cal5og$5e4$
> > So, how should we fix the situation or is declarative vs procedural a
> matter
> > of taste? --dawn
> Declarative is better; there are enough different styles of declarative to
> satisfy many (not all) of those who find, say, Prolog distasteful. It's
> simply easier to lapse into procedural; you quickly find yourself in a
> quagmire, but that apparently is a lesson not easily learned (even by
> who've been through one quagmire after another). It's that resistance to
> learning abstraction that's made me somewhat less tolerant of bad code
> I used to be... the knowledge that in most cases, they'll just do the same
> type of thing again. And I'm even less intolerant of my own bad code...
> until we use our procedural abilities to write "engines" that interpret
> declarations, we'll keep writing spaghetti. The trouble, of course, is
> those focusing in procedural (and OO) generally don't see the value in
> bothering to deal with declarations at all.
> What we're trying to accomplish is basic logic and computation; the
> restrictions of the languages we use, and the adherence to algorithmic
> thinking, keep us from advancing very far.
> And, of course, the above is all just hand-waving and generalities, though
> generally true. I've just been debugging some horrific splicings of Java
> InstallAnywhere (a rotten package with a GUI and no language at all), and
> in a foul mood...

Take a deep breath and then delegate ;-)

Both relational and declarative seem rather obvious choices to you and neither does to me. My issues with declarative include:

  1. There seem to be no standards for the black box that does something with the declarations. I don't need standards-committees with years of process to adopt a standard -- I don't even know anything that would help ensure portability of such declarations. SQL has come the closest and does have standards, but we all know you can't just take any code you write against one database and run it against another.
  2. It doesn't read like English -- the verbs are missing, for example. I'd like to keep some of Grace Hopper's goal alive of writing code that human beings can read
  3. While hiding much that should be hidden, it "feels like" so much gets hidden that people spend time trying to figure out how it does things in order to be good at writing declarations
  4. Invariably functions become one of the things to get specified. If we are going to specify both data and functions, which, afterall, is what needs to happen, then what benefit is there to specifying a function and specifying where it is to be used rather than specifying the function and then using it where it needs to be used?

It's all about data; It's all about functions. --dawn Received on Tue Jun 15 2004 - 18:56:17 CEST

Original text of this message