As part of our computer science studies, we have
used different machines to use programming languages; one of these machines is
the Java Virtual Machine (JVM) that we used in our Programming Languages course
with the LISP language Clojure.
Nevertheless, why do we use virtual machines? Well,
we use them because they are a good alternative implementation paths for native
compilers. Also, using this
alternative can bring benefits related to:
- Portability: the use of less
translators to implement certain number of languages on different
platforms.
- Compactness: Code is smaller than
the original source.
- Efficiency: Adapt the behavior
of a program and use knowledge in a better way.
- Security: Deployment is easier.
- Flexibility: Better typesafe
metaprogramming concepts are created.
Even though we have used and proved that the JVM is
a great resource, we have to admit that there are other good machines that can
work even better than JVM. An example is the Microsoft .NET Common Language
Infrastructure (CLI), designed to be a multi-language platform.
The thing that makes CLI
better than JVM is its architecture, because it uses control threads. In
addition, it has an instruction pointer (IP), an evaluation stack, a zero-based
array of local variables, a methodInfohandle, a local memory pool, a return
state handle, a zero-based array of incoming arguments and a security
descriptor. As we can see, since the CLI storage locations are polymorphic,
they are much better than the JVM storage locations.
We have reached a point where we can be able to say
that, as a multi-language platform, the CLI is more powerful than the JVM, but
this conclusion does not mean that Microsoft will stop researching and
improving its product. Since strongest language implementors are being needed
every single day, they will try to create a better solution or they might try
to provide better ideas to use their product in a better way.

Comentarios
Publicar un comentario