Sei sulla pagina 1di 4

Repblica Bolivariana de Venezuela

Instituto Universitario Politcnico


Santiago Mario
Extensin Caracas
Programacin no Numrica I
Corte 2, Tarea #1-10%

MQUINA VIRTUAL DE JAVA


CON COMPARACIN Y CARACTERSTICAS DEL
LENGUAJE JAVA CON EL LENGUAJE SCALA

Profesor: Alumna:
Miguel Mena Meudis Silva C.I. 22.380.101

Caracas, Agosto de 2017


Mquina virtual de java

Una mquina virtual Java (en ingls Java Virtual Machine, JVM) es
una mquina virtual de proceso nativo, es decir, ejecutable en una plataforma
especfica, capaz de interpretar y ejecutar instrucciones expresadas en un cdigo
binario especial (el bytecode Java), el cual es generado por el compilador del
lenguaje Java.
El cdigo binario de Java no es un lenguaje de alto nivel, sino un
verdadero cdigo mquina de bajo nivel, viable incluso como lenguaje de entrada
para un microprocesador fsico. Como todas las piezas del rompecabezas Java,
fue desarrollado originalmente por Sun.
La JVM es una de las piezas fundamentales de la plataforma Java.
Bsicamente se sita en un nivel superior al hardware del sistema sobre el que se
pretende ejecutar la aplicacin, y este acta como un puente que entiende tanto el
bytecode como el sistema sobre el que se pretende ejecutar. As, cuando se
escribe una aplicacin Java, se hace pensando que ser ejecutada en una
mquina virtual Java en concreto, siendo sta la que en ltima instancia convierte
de cdigo bytecode a cdigo nativo del dispositivo final.

Comparacin y caractersticas del Lenguaje JAVA con el lenguaje Scala

Scala es un lenguaje de nueva generacin para JVM, que se est haciendo


popular como alternativa del ms utilizado Java. Como cada vez ms y ms
programadores Java estn aprendiendo Scala e inspirado por Twitter, ms y ms
compaas estn usando Scala, el futuro parece muy brillante. Para empezar,
Scala tiene varias caractersticas que lo diferencian de Java pero al mismo tiempo
tiene gran cantidad de similitudes, por ejemplo Scala y Java son lenguajes
basados en JVM.
Se puede programar Scala a la manera de Java y se puede utilizar cualquier
librera Java, que es una gran decisin de los diseadores de Scala. Ya que se
han creado grandes trabajos en forma de frameworks open source y libreras.
Java, es mejor reusarlas que crear un conjunto separado para Scala. Aparte de
varias otras, una de la principal diferencia entre Scala y Java es su habilidad para
tomar ventaja del paradigma de la programacin Funcional y la arquitectura multi-
core de las CPUs actuales. Ya que el actual desarrollo de las CPU tiende hacia el
aumento de ncleos en lugar de ciclos de CPU, esto favorece el paradigma de la
programacin funcional. Aunque estas diferencias podran no se ser significativas,
ahora que Java 8 incluir lambdas, an es demasiado pronto para decirlo.
Aparte del aspecto de la programacin funcional, hay muchas otras diferencias.
Una obvia es la mejor legibilidad y brevedad del cdigo. Java est siempre en la
linea de fuego por ser demasiado "verbose" (demasiadas palabras para expresar
algo), creo que Scala soluciona eso y cdigo que supondra 5 o 6 lineas en Java,
se puede escribir en slo 2 o 3 con Scala. Los programadores Java
experimentados disponen de algunas buenas introducciones a lenguajes JVM
como Scala, Grooby y Closure que merecen la pena una lectura. En este artculo
veremos similitudes y diferencias entre Scala y Java.

Similitudes entre Scala y Java


A continuacin algunas de las principales similitudes entre los lenguajes de
programacin Scala y Java :

1) Ambos son lenguajes bajados en JVM, Scala produce el mismo byte code que
Java y se ejecuta en la Mquina Virtual Java. Igual que el compilador Java, javac,
Scala tiene el compilador scalac, que compila cdigo Scala a byte code. A este
nivel todos los lenguajes JVM como Groovy, JRuby, Scala llegan a ser iguales a
Java, porque usan el mismo espacio de memoria, sistema de tipos y se ejecutan
dentro de la misma JVM.
2) Se puede llamar a Scala desde Java y a Java desde Scala, aportando un
integracin fluida. Ms an se puede reusar cdigo de aplicaciones existentes y
libreras Java open source en Scala.
3) Los principales IDE para Java soportan Scala.
4) Otro parecido ms es que ambos son Orientados a Objetos.
Diferencias entre Scala and Java
1) La primera y principal diferencia que se notar entre Scala y Java es el cdigo
breve y conciso. Scala reduce drsticamente el nmero de lineas de una
aplicacin Java realizando un uso inteligente de la inferencia de tipos, tratando
todo como objetos, el paso de funciones y algunas otras caractersticas.
2) Scala est diseado para expresar patrones comunes de programacin de una
forma elegante, concisa y con seguridad de tipos. El lenguaje mismo anima a
escribir cdigo en estilo inmutable, que facilita la aplicacin de la concurrencia y el
paralelismo.
3) Comparemos algo de cdigo escrito en Scala y Java para ver cmo difieren:
Java:
List<Integer> iList = Arrays.asList(2, 7, 9, 8, 10);
List<Integer> iDoubled = new ArrayList<Integer>();
for(Integer number: iList){
if(number % 2 == 0){
iDoubled.add(number 2);
}
}
Scala:
val iList = List(2, 7, 9, 8, 10);
val iDoubled = iList.filter(_ % 2 == 0).map(_ 2)

Se puede ver que la versin de Scala es mucho ms sucinta y concisa que la


de Java. Se vern muchos de estos ejemplos, una vez se empiece a aprender los
conceptos y patrones de la programacin funcional. Estoy esperando con
anhelo Scala Design Patterns: Patterns for Practical Reuse and Design de John
Hunt, que no est todava publicado y slo disponible para reserva. El libro se
publicar este mes.

Potrebbero piacerti anche