Watershed -- what's up ?

David Wragg dpw93@ecs.southampton.ac.uk
27 Oct 94 15:33:22 GMT

Francois-Rene Rideau writes:
> [ ... ]
> Then, perhaps STAPLE is for you. It's a persistent computing system, based
> on a lazy functional programming language.
> FTP://ftp.dcs.st-and.ac.uk/pub/staple   staple
> http://lochnagar.dcs.st-and.ac.uk:8080  staple
> Tell me if you use it and what you think about it.

I'll look at it very soon.
> > But pure functional semantics have a big problem - they don't go well
> > with user-interfaces, since user-interfaces rely heavily on a concept
> > of state.
> If you really want heavy side effects perhaps Scheme is for you.
> See the WWW page
> http://www.ai.mit.edu/projects/su/su.html (Scheme Underground)
> for information about people rewriting OS stuff in Scheme.
> But as for persistence, I don't think it's entirely included in the system.

I've heard of this project. I really want to have no side effects,
many of my reasons for turning to function semantic rely on a lack of
side effects. I think I have ideas on how to crete a stateless user
interface (this is not as bad as it sounds), and I might experiment
with this in the near future, but it seems silly to do work that I'd
have to repeat for Watershed, unless there are important things I can
learn from it.
> > And that's about it. I'm confident that this is a "better" design than
> > the one I had before, but it relies on too many things that are still
> > being researched by people worldwide.
> Please mail me as you progress on your quest.
> > Please write and tell me what your aims are. If you are interested,
> > I'll try to write out my current design more fully.
> I also like functional programming, but I know what a computing system must
> provide is *useful services*, that is, *reuse*. *Reuse* does mean
> object-orientation (i.e. term-dependent types);it also mean security,
> thus program typing and specification.

Most functional languages go for code reuse through modules
(especially SML). 

> A dynamic interactive persistent system should mean (I'm only 90% sure)
> dynamic typing. So all these do not match the functional languages I know.
> So I'm looking for a language with all these features, and am looking around
> BETA, SELF, ICON, Scheme, SML; but if I need do it, I'll design my own
> language, as an extension to one of these perhaps.

Yes, I am also unsatisfied with functional languages because their
type systems are not sufficiently powerful (compared to the type
systems of OO languages). I think this is because they derive from
lambda-calculus, which is very weakly typed (mathematicians know
nothing about types). Even strongly-typed functional languages lack
power and flexibility in this respect. As far as I know, no-one has
extended the lambda-calculus to include a polymorphic type system. I'm
not sure how difficult a mathematical exercise this would be.

Dave W.