OIL review ?

Laurent Martelli martelli@iie.cnam.fr
08 Nov 1999 15:42:34 +0100


>>>>> "Jim" == Jim Little <jiml@inconnect.com> writes:

  Jim> Laurent Martelli wrote:
  >>  I think that I've implemented almost all the features that I
  >> wanted to have in OIL, so I believe that it's time for a
  >> review. Do you think it has flaws ? Is it missing important
  >> features ? (I am not talking about performance issues here, just
  >> functionnality).

  Jim> As I imagine you are also discovering, useful responses are
  Jim> hard to find on this list.  :) So I'd like to critique OIL.
  Jim> That's hard, though, because you haven't really issued a strong
  Jim> statement of what it's for.  But I'll do my best:

  Jim> On your web page, you state that your goal is to support an
  Jim> "open interpreter" that will support AOP.  I don't know what an
  Jim> open interpreter is, but it seems to me that OIL does not meet
  Jim> the goal of supporting AOP, other than in the most general (and
  Jim> not particularly useful) Turing-compatible sense.

This is perfectly true. For now, we only have an interpreter. In fact,
I'd like to have critism before we start opening it. By "opening the
interpreter", we mean providing generic means to specify the way it
interprets programs and specification. For the moment, it is not very
optimized, but we want to provide means to introduce special
optimizations. 

  Jim> In a previous email message to this list, you stated: "What I
  Jim> really want to achieve is separation of concerns :
  Jim> specification and implementation."  I don't see how OIL meets
  Jim> this goal, either.

You're rigth once again. It only allows users to specify. 

  Jim> It seems to me that what you do have is a system for lambda
  Jim> abstraction, not too much different than any other programming
  Jim> language that supports function calls.  OIL's uniqueness
  Jim> appears to lie in the fact that it's run-time extensible in
  Jim> that you define new lambda abstractions at runtime -- its
  Jim> interactive.  It's also persistent, which is nice.

One thing that I'd like to know is : "Does OIL allow us to compute
anything that is computable". I think it does, but since I haven't
done a formal proof of this statement, I cannot be sure. 

  Jim> I see some things that could potentially be problems, but
  Jim> without knowing what your concrete goals for OIL are, it's hard
  Jim> to say if they're really problems or not.  Without that overall
  Jim> vision of where OIL is going, though, I can't see how OIL is
  Jim> much different than an interactive Lisp -- and I'm not a Lisp
  Jim> guru, but I believe that such things are already available.

I'd say that the main difference is that all objects but variables are
immutable. And the fact that bindings are not part of the core
semantics of the language. 

  Jim> So in summary, I'd say my biggest critique of OIL is not the
  Jim> system itself but the lack of published direction.  Without
  Jim> that, it's impossible to say if OIL is feature-complete or not,
  Jim> because I don't know what the feature set is supposed to be! :)

For the moment, it is supposed to be able to compute anything that is
computable.

  Jim> Jim

  Jim> PS: I'm not trying to be harsh, but I AM trying to provide
  Jim> useful feedback -- something which is SORELY LACKING on this
  Jim> list, HINT HINT folks!!  (And I'm sure Brian would agree with
  Jim> me on that point, even though we seem to disagree on everything
  Jim> else.  ;) )

I have to thank you very much. This was helpful. It showed me that my
question was not precise enough. 

-- 
Laurent Martelli
martelli@iie.cnam.fr