# Polymorphism, threading, ...

## srenner@mail.ru — 2000-05-06 17:52:51

    "Both of these languages

    which I proposed would have to be written in themselves (although it

    would

    be permissable to write the second one in the first).

    And GC is not trivial no matter what you do :-), and leaving it to

    some

    other language doesn't let you take advantage of how your language

    behaves."

    Probably true but not the only consideration. Building a VM in Oberon

    for a language like Squeak, which already has its own memory model and

    way of performing GC, might be clumsy. One would either have to use

    Oberon much as one would use C, using the pseudomodule (actually

    implemented in the compiler) SYSTEM to evade type-safety, or make

    major changes to the VM, leaving it incompatible with images from

    other systems. But we are not in the position of a Squeak porter. Joy

    has no preferred memory model at this time, and no legacy images that

    must be run bit-identically. If every box is an Oberon POINTER TO

    RECORD, then GC is trivial enough to be called trivial. This wouldn't

    be the best way to write Joy for a minimal (OTA-like) environment,

    but

    is the best way I can think of otherwise. If we don't use Oberon, what

    shall we use? C? Ugh! This is 21st! Leave C in 20th!

    C

    ****

    efficient

    portable to anything

    Oberon

    ****

    efficient

    portable to x86, ARM, can be ported elsewhere

    typesafe

    GC

    I agree that there is an attraction to running on bare hardware.

    (Which is why I prefer to run Oberon with Oberon as the OS). But it

    will be far easier to make a Joy-like VM with static typing and

    polymorphism in Oberon than in itself/over bare metal, and speed is

    not important (not that I am conceding the spped argument) at this

    point.

    I suppose the new language will have to have a name besides "Joy-like

    VM". "Surprised by Joy?" Suggestions?

    sr

    PS I am not making this up!