Re: terminology

From: Marshall <marshall.spight_at_gmail.com>
Date: 18 Jun 2006 17:28:54 -0700
Message-ID: <1150676934.000326.195220_at_c74g2000cwc.googlegroups.com>


Tony D wrote:
> Marshall wrote:
>
>From what I can remember of asking Chris Date about this, I think the
> idea was to show the ideas in something approaching a familiar
> framework, which meant hanging on to the baggage of variables,
> assignments and procedural programming. I think the idea was that
> moving wholesale to functional or declarative programming might have
> scared the horses too much. This was three or more years ago, so I may
> not have remembered this correctly; I do remember that Chris said that
> they had explicitly rejected functional programming for Tutorial D.
> >From a later conversation with Hugh Darwen, I think at that time they
> also accepted that Tutorial D wasn't a full blown production language,
> and that things would have to be added to it to make it one (hence the
> Tutorial in the name).

That makes sense; TutD's purpose is pedagogical rather than industrial.

> All that said, I still think that Haskell +
> relations-as-first-class-citizens = Nirvana-of-a-sort.

Yeah, Haskell has had a significant influence on my thinking. Another book on my shelf (on that I've actually read all the way through) is "Haskell: the Craft of Functional Programm" (Thompson.) Although I'm not a fan of monads or laziness.

> (You may also like to look for references to Russell, which I think is
> the only (if not only, then one of a very few) imperative language
> which tried incorporating the Milner type system, if you haven't come
> across it already. There was a paper on it in SIGPLAN, July 1986.)

Wow. It's rare these days to come across a PL I haven't even *heard* of. ... It seems there's a paper on the acm site; I'll check it out when I get back to work.

> > The thing is, I think the goal (or at least *a* goal) is to produce
> > a great general-purpose programming language with first-class
> > support for RT. I don't think that producing a relational algebra
> > system with support for general purpose computation is quite
> > as interesting. So in that sense, I think what I really want to
> > see is RT embedded into PLT, and not the other way around,
> > although I agree that the RT part is foundational and therefor
> > crucial.
> >
>
> It depends what you think the PLT part is going to bring to the party;
> the last two programming languages that made me sit up and take notice
> were Prolog and Haskell (I learned Standard ML first; but it has normal
> order evaluation and (gasp) updateable variables (shhhh !)).

Sure!

Although I think SML doesn't always get the credit it deserves. Sure it's "impure" but I think ultimately that's a real advantage. It lets you be as pure as is appropriate to the task at hand. Functional purity increases the ability to reason about code, but imperative idioms, for all their *unclean* reputation (mostly deserved) allow for some impressive achievements in modularity and efficiency. There's also the scaring the horses issue you mentioned, and I think purity-or-else is likely to make them whinny nervously, whereas purity by default with an option to escape is much more palatable.

> Most of the rest of it has just been fiddling with Algol-60.

Ain't that the truth! And wasn't it "an improvement on most of its successors" after all?!

> (If I'm feeling
> charitable, I might give you Smalltalk as almost new; I might even
> concede some specialised languages like Snobol or Logo, and applaud the
> efforts of the APL family.)

Rather than Snobol I'd cite Icon, as the more developed and therefore more interesting of the two. (Both by Ralph Griswold.) I've not played with APL but I have read a fair bit about J and K, which derive from APL, and they're quite an achivement.

But the real Mother Tongue is Lisp; like Latin, every idea has already been tried there; like Latin, it is worthy of respect and study, though I wouldn't want to have to use it for anything.

Marshall Received on Mon Jun 19 2006 - 02:28:54 CEST

Original text of this message