[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

OO Machines: Rekursiv



> What about programs made possible by the Rekursiv CONCEPT?  That is, all
> von Neumann machines execute some sort of operating system which manages
> memory, security, persistent store, etc.  When hardware support is
> tailored to object-oriented programs, the need for an operating system
> goes away.  Each object implements its own word size, storage format &
> optimization, security measures, and so on.

I think all you've done is moved the OS protection and resource management
issues into microcode and/or hardware, thereby making them far less
flexible, and more difficult to change and understand.  Having an object
"responsible for its own memory management, resource allocation, and
security" is a contradiction in terms: memory management, resource
allocation, and security are by their very nature things that happen at the
level of interactions *between* objects in some *larger* medium.  I.e., the
function of an OS is to manage resources that are intrinsically *shared*:
you can push the function around between implementation levels, but you
can't get rid of it.

I thought Mario Wolczko's point about the negative consequences of moving
paging and garbage collection down to the microcode level was a good
example of the kind of thing that goes wrong.

> Further, the objects, with
> their "OS" functions almost fully subsumed by their own implementation,
> could be executed on distributed processors.

I don't think that using "objects" (or capabilities, which is what people
generally call "objects" implemented at the OS level) addresses any of the
hard problems in the distributed domain -- the nature of object addresses
or references, remote execution vs. migration, synchronization, robustness
in the face of hardware and software failures, etc.

> This raises new control
> issues, but the point remains (at least in my opinion): Rekursiv
> explored a paradigm different from traditional von Neumann architectures
> and programming approaches.  This program paradigm transcends the issue
> of hardware performance.

I agree that object-orientation changes the way one thinks about software,
often for the better.  I strongly disagree that special-purpose hardware
gives one any advantage in supporting the object-oriented viewpoint.