Matz and fellow Rubyists,
On pragprog, we're sort-of discussing the creation of a new language
("Pragmatic") as an exercise in extending one's programming
experience. Now, there's a lot of discussion on the low-end, but the
most interesting to me was this, and I was wondering if something
like the idea behind Juice might be a good thing for Rite, rather
than a "pure" bytecode setup.
What do you think?
-austin
On Wed, 30 Jul 2003 11:57:26 +1000, Sumskas, Peter (Peter) wrote:
[...]
> The idea behind Juice was to encode a portable encoding of the
> program not as bytecode (which is the usual way to do things) but
> to encode the AST as the portable format. This lead to several
> interesting features for Juice:
>
> * the binaries were actually smaller than the equivalent bytecodes
> and smaller by far that machine-specific binaries.
> * the binaries contained far more information about program
> structure than the equivalent bytecodes did. This led to being
> able to take better advantage of the target platform. A JIT
> compiler would translate the AST into the backend representation
> and it had a much easier time of optimizing the code than an
> equivalent JIT compiler for a bytecode system would have. I saw
> this demonstrated in '97 or '98. Given that Juice had less
> resources than Java devoted to it you can imagine how impressive
> it was to see a recoding of some Java applets executing
> approximately five times as fast as the original Java did (I
> realize this is highly subjective but the implication is that
> wherever the limitation was with Java they had taken the wrong
> approach to portability and performance).
> * due to the small size of the binaries it was faster, on networks
> and PCs of the day, to download a Juice applet and JIT-compile
> them on the target machine than it was to download the
> equivalent platform-specific binary and execute it.
[...]
--
austin ziegler * austin / halostatue.ca * Toronto, ON, Canada
software designer * pragmatic programmer * 2003.07.29
* 23.18.28