Loose type checking in E

Ka-Ping Yee ping@lfw.org
Mon, 12 Oct 1998 23:35:00 -0700 (PDT)


Tyler Close wrote:
> Since E does not have static type checking, I was not suggesting that
> compile time polymorphism was possible. However, with E's runtime checks,
> it is still possible to write generic algorithms that expect their argument
> objects to have methods with specific method name / # parameters signatures
> without using inheritance based polymorphism. 
[...]
> This seems to me to be a very powerful advantage that was gained by doing
> less work rather than more.
[...]
> One of the really neat things about templates in C++ is that you don't need
> to create deep and complicated inheritance structures to get seamless
> communication between separately developed code. E also has this really
> neat advantage without doing anything at all.

Well, if i understand you correctly, Python works this way, and
has this advantage too.  But only by convention.  But then isn't
this what interfaces are supposed to do for Java?

> >Surely you don't mean this.  It reminds me of a tale that Gerald Wienberg
> >tells of consulting to a project that had a buggy but efficient algorithm
> >for some problem.  When he proposed a correct algorithm they objected that
> >it was three times less efficient than theirs.  He replied that if they
> >wanted an algorithm that didn't work, he could provide one much more
> >efficient than theirs.
> 
> Sure, but which one of us is playing the role of Gerald Wienberg.

Are you implying that atomic transactions are more important than
deadlock prevention, then?  I'm doubtful that this is the case,
especially when a secure operating environment for mutually
suspicious parties is your goal.

> I am having a lot of difficulty accepting that a single computer should be
> treated as a distributed environment.

Well... effectively it is, if you want each vat on it to be
confined and unaware (in general) of its host-mates.  Running
any particular vat on a particular host should never prevent
you from being able to run any other vat on that host, and
should never affect any other vat without your permission.

> however, this ignores the fundamental truth that your
> execution space is not a homogeneous environment. Designs that ignore
> fundamental truths make me nervous.

It's not like there are no optimizations in the implementation
for communication between vats on the same host.  I don't see
why the computational model needs to betray this heterogeneity.


Ping                                                 Got a PalmPilot?
<ping@lfw.org>                              http://www.lfw.org/pilot/