thoughts about Tunes OTOP & JavaVM

Mahler Thomas thomas.mahler@karstadt.de
Mon, 19 Jul 1999 09:08:44 +0200


Hello Basile,

Basile STARYNKEVITCH wrote:

> * I have very few experience with Java and the JVM. (but I read the 3
>   Java+JavaSpec+JVMspec books) I do know that it is not as portable as
>   Sun claim it is. I don't know in practice how is Java nonportable
>   (is it limited to system [eg filenames] & GUI issues?)

AFAIK Java IS portable as long as you only use JDK liraries. Problems
arise when you have to use third party libraries and components (perhaps
worst example: Microsoft AFC which provides some kind of mapping of MFC
to Java which is of course only compatible to Windows...)
> 
> * Some good enough JVM exist on Linux, notably Kaffe (which has a
>   rather slow JIT implementation, dynamically compiling methods into
>   very bad x86 code).
Guarana (a reflective system on top of JVM) uses Kaffe: They had to
modify the VM and thus needed an open source VM. See
http://www.dcc.unicamp.br/~oliva/guarana/index.html

> 
> Again my point is not to code in Java, but to generate JVM classes
> files and make a Tunes on top of JVM. This would be easier that Tunes
> OTOP.
> 
> Any thoughts about Tunes on top of JavaVM (=Tunes OTOJVM) instead of
> Tunes on top of Posix - which would only be, in my opinion, Tunes on
> top of Linux/x86 for some time.
> 

Of course it will be MUCH easier to implement prototypes on top of
existing platforms rather than building everything from scratch.
IMHO building version of TUNES that boot on a naked PC should be one of
the last steps in the development cycle.

IMHO it is a good idea to use an existing VM for first step experiments.
If you want to use JVM, KAFFE (or guarana) will be the natural choice.

But once byou accept the general idea that it is better to start with an
existing VM, why not use a system that provides (almost) everything
needed for building reflective systems?
IMHO Squeak (an OpenSource Smalltalk) is the ideal candidate for such a
job:
- it's OpenSource
- Smalltalk  provides a Meta Object Protocol to implement reflection
- Smalltalk has a concept of code-blocks which allow to use functional
programming techniques (like higher order functions)
- Smalltalk provides everything you would like a modern OS to provide
(Multitasking, Persistence, Objects from top to bottom, Advanced GUI...)
- completely selfcontained: even a compiler to generate modified
versions of the underlying VM is integrated
- the Squeak VM is highly portable and has small footprint (it even runs
on palmtops like HP Jornada)
- there is a working prototype of arrows implemented in Squeak


regards, 

Thomas