Maquina Virtual de Java

República Bolivariana de Venezuela Instituto Universitario Politécnico “Santiago Mariño” Extensión Caracas Programación

Views 85 Downloads 0 File size 98KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

República Bolivariana de Venezuela Instituto Universitario Politécnico “Santiago Mariño” Extensión Caracas Programación no Numérica I Corte 2, Tarea #1-10%

MÁQUINA VIRTUAL DE JAVA CON COMPARACIÓN Y CARACTERÍSTICAS DEL LENGUAJE JAVA CON EL LENGUAJE SCALA

Profesor: Miguel Mena

Alumna: Meudis Silva C.I. 22.380.101

Caracas, Agosto de 2017

Máquina virtual de java

Una máquina

virtual

Java (en

inglés Java

Virtual

Machine, JVM)

es

una máquina virtual de proceso nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (el bytecode Java), el cual es generado por el compilador del lenguaje Java. El código binario de Java no es un lenguaje de alto nivel, sino un verdadero código máquina de bajo nivel, viable incluso como lenguaje de entrada para un microprocesador físico. Como todas las piezas del rompecabezas Java, fue desarrollado originalmente por Sun. La JVM es una de las piezas fundamentales de la plataforma Java. Básicamente se sitúa en un nivel superior al hardware del sistema sobre el que se pretende ejecutar la aplicación, y este actúa como un puente que entiende tanto el bytecode como el sistema sobre el que se pretende ejecutar. Así, cuando se escribe una aplicación Java, se hace pensando que será ejecutada en una máquina virtual Java en concreto, siendo ésta la que en última instancia convierte de código bytecode a código nativo del dispositivo final.

Comparación y características del Lenguaje JAVA con el lenguaje Scala

Scala es un lenguaje de nueva generación para JVM, que se está haciendo popular como alternativa del más utilizado Java. Como cada vez más y más programadores Java están aprendiendo Scala e inspirado por Twitter, más y más compañías están usando Scala, el futuro parece muy brillante. Para empezar, Scala tiene varias características 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 librería Java, que es una gran decisión de los diseñadores de Scala. Ya que se han creado grandes trabajos en forma de frameworks open source y librerías.

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 programación Funcional y la arquitectura multicore de las CPUs actuales. Ya que el actual desarrollo de las CPU tiende hacia el aumento de núcleos en lugar de ciclos de CPU, esto favorece el paradigma de la programación funcional. Aunque estas diferencias podrían no se ser significativas, ahora que Java 8 incluirá lambdas, aún es demasiado pronto para decirlo. Aparte del aspecto de la programación funcional, hay muchas otras diferencias. Una obvia es la mejor legibilidad y brevedad del código. Java está siempre en la linea de fuego por ser demasiado "verbose" (demasiadas palabras para expresar algo), creo que Scala soluciona eso y código que supondría 5 o 6 lineas en Java, se puede escribir en sólo 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 artículo veremos similitudes y diferencias entre Scala y Java.

Similitudes entre Scala y Java A continuación algunas de las principales similitudes entre los lenguajes de programación Scala y Java :

1) Ambos son lenguajes bajados en JVM, Scala produce el mismo byte code que Java y se ejecuta en la Máquina Virtual Java. Igual que el compilador Java, javac, Scala tiene el compilador scalac, que compila código 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 integración fluida. Más aún se puede reusar código de aplicaciones existentes y librerías Java open source en Scala. 3) Los principales IDE para Java soportan Scala. 4) Otro parecido más 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 código breve y conciso. Scala reduce drásticamente el número de lineas de una aplicación Java realizando un uso inteligente de la inferencia de tipos, tratando todo como objetos, el paso de funciones y algunas otras características. 2) Scala está diseñado para expresar patrones comunes de programación de una forma elegante, concisa y con seguridad de tipos. El lenguaje mismo anima a escribir código en estilo inmutable, que facilita la aplicación de la concurrencia y el paralelismo. 3) Comparemos algo de código escrito en Scala y Java para ver cómo difieren: Java: List iList = Arrays.asList(2, 7, 9, 8, 10); List iDoubled = new ArrayList(); 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 versión de Scala es mucho más sucinta y concisa que la de Java. Se verán muchos de estos ejemplos, una vez se empiece a aprender los conceptos y patrones de la programación funcional. Estoy esperando con anhelo Scala Design Patterns: Patterns for Practical Reuse and Design de John Hunt, que no está todavía publicado y sólo disponible para reserva. El libro se publicará este mes.