Chapter 8: 101 guide to hate JVM environment.
Hello everyone, I´m Steve, your
host, and in this chapter, we will give the ultimate guide on why the JVM is
not the best execution environment (at least, according to Erik Meijer and Jim
Miller)
There are several assets people investigate
when searching for an alternative implementation path; Portability,
Compactness, Efficiency, Security, Interoperability, and Flexibility.
Portability stands for using n+m translators instead of n*m translators (Where
n equals languages, and m platforms.). Compactness is an important property in
the dynamically downloaded code context. Efficiency is delaying the commitment
to a specific native platform as much as possible, Security relates to higher level
intermediate code. Interoperability to sharing common type system and high-level
execution environment. Finally, Flexibility is combining high level
intermediate code with metadata.
Meijer explains how JVM excels at
anything Java related, but as a multi-language execution environment it lacks
many things that are important. On the other hand, CLI has a specific
architecture built from the ground up to support multi-language execution.
For starters, CLI manages
multiple concurrent threads of control, has an instruction pointer, an
evaluation stack, an array of local variables and incoming arguments.
methodInfoHandler, local memory pool, return state handle and a security
descriptor; It´s architecture also includes assemblies. CLI has its own type
system (where the CLI recognizes objects, bools, ints, floats, different primitives
and composite types). It also has its base instruction set, as well as different
value types and reference types. The way methods are invoked and the
interaction between value and reference types are also covered in the article.
I can´t dwell into details of
each topic mentioned in the article (due to how detailed they are), instead, I will
wrap around some thoughts according to the article; some engineers are still
chained to different languages and tools, and through the years, multiple
alternatives have appeared and as we are explained in the ideas of Meijer. The
CLI execution environment excels in some areas where JVM is not, and I think it
will be interesting how we are going to fully use the CLI in our class, and
combine it with everything we have been thought on the matter.
References:
Meijer E. (n.d.) Technical
Overview of the Common Language Runtime. Available on http://webcem01.cem.itesm.mx:8005/s201811/tc3048/clr.pdf
Comments
Post a Comment