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
[…]
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.
[…]
···
On Wed, 30 Jul 2003 11:57:26 +1000, Sumskas, Peter (Peter) wrote:
–
austin ziegler * austin@halostatue.ca * Toronto, ON, Canada
software designer * pragmatic programmer * 2003.07.29
* 23.18.28