Ticker

6/recent/ticker-posts

Introducción y características del Lenguaje Java

Introducción a Java:

Java es un lenguaje de programación de propósito general, tipado, orientado a objetos, que permite el desarrollo desde aplicaciones básicas, pasando por aplicaciones empresariales hasta aplicaciones móviles. Java nacía como un lenguaje de programación con el fin de ser multiplataforma y multidispositivo, bajo el paradigma de "Write Once Run Anywhere" (WORA) - Escribe una vez / Corre en cualquier lugar. De esta forma un programa Java escrito una vez podemos ejecutarle sobre diferentes plataformas, siendo soportados los sistemas operativos Windows, MacOs y UNIX; a su vez en diferentes tipos de dispositivos. 

Para poder seguir este paradigma la compilación de un programa Java no genera código fuente, si no que genera bytecodes. Estos bytecodes son interpretados por una máquina virtual o simplemente el JVM (Java Virtual Machine). Dicha máquina ya está escrita para cada uno de los sistemas operativos en cuestión.

Historia del lenguaje Java

Los Inicios de Java

El lenguaje Java fue desarrollado en sus inicios por James Gosling, en el año 1991. Inicialmente Java era conocido como Green o Oak.

La primera versión del lenguaje Java fue publicada por Sun Microsystems en 1995. Y es en la versión del lenguaje JDK 1.0.2, cuando pasa a llamarse Java, corría el año 1996.

En las primeras versiones de Java 1.1, 1.2 y 1.3 es en la que el lenguaje va tomando forma, con la inclusión de tecnologías como JavaBeans, JDBC para el acceso a base de datos, RMI para las invocaciones en remoto, Collections para la gestión de múltiples estructuras de datos o AWT para el desarrollo gráfico, entre otros.

Java Community Process (JCP)

La versión Java 1.4 pasa a ser la primera versión gestionada por la comunidad mediante el Java Community Process (JCP).

Se trabaja con Java Specification Requests (JSRs) que son las nuevas funcionalidades que se busca que tenga el lenguaje.

Java 1.4 se liberaba como JSR 59, corría el año 2002. Algunas de las características que contenía eran: librería NIO para IO no bloqueante, JAXP para el procesado de XML y XSLT o el API para preferencias.

Java 5

En 2004 se estaba trabajando con la versión Java 1.5, pero con vistas a reflejar el nivel de madurez de la plataforma Java se renombra a Java 5.

A partir de este momento se identifica el JDK con la versión 1.x, mientras que la plataforma Java sigue con la nueva política de versionado. Así JDK 1.5 corresponde con Java 5 , JDK 1.6 corresponde con Java 6,… y así sucesivamente.

Dentro de Java 5 podemos encontrar el uso de genéricos, el autoboxing/unboxing entre tipos de datos primitivos y sus clases, el uso de enumerados y la aparición del bucle for-each.

Java 6

En el año 2006 aparece la versión Java 6 en la que podíamos encontrar cosas como el soporte de lenguajes de script, facilidades para la exposición y consumo de webservices mediante JAX-WS, nuevos tipos de drivers con JDBC 4 y la versión 2 de JAXB.

Java como Open Source

Una de las cosas que sucede en noviembre 2006 es que Sun Microsystems lo convierte en Open Source mediante una licencia GNU General Public License (GPL). Dando lugar en mayo 2008 a lo que se conoce como OpenJDK, con OpenJDK 6.

Java 7

Llegado julio de 2011 ve la luz Java 7, la cual trae como novedades el soporte de lenguajes dinámicos, dotando a la JVM de un soporte de mútiples lenguajes y una nueva librería I/O para el manejo de ficheros.

También aparecen cosas menores, pero muy útiles como el manejo de String dentro de la validación en una estructura switch o la capacidad de poner subrayados en los números para que se puedan leer mejor.

Java 8

Apareció en marzo de 2014, entre las características de Java 8 tenemos el soporte expresiones Lambda y uso de Streams, que permiten un estilo más funcional para los programas Java. Dentro de este enfoque más funcional también aparecen las transformaciones MapReduce.

Ve la luz el Proyecto Nashorn para disponer de un engine Javascript y así poder incluir este lenguaje dentro de las aplicaciones Java. Otras cosas son un nuevo API Date y Time y la inclusión de JavaFX 8 dentro de la JDK de Java.

Java 9

Aunque en el roadmap se esperaba que Java 9 estuviera disponible para el 2016, los problemas de seguridad encontrados dentro de la plataforma han causado que se vaya demorando.

En setiembre del 2017 se anuncia el lanzamiento de Java 9. Dentro de esta versión podremos encontrar el Project Jigsaw que establece la modularización de la JDK, el Java Shell con el que podremos trabajar e interactuar al estilo RELP (Read–eval–print loop), soporte para http 2.0 y algunas cosas más

Características del lenguaje Java:

Dentro de las características del lenguaje Java encontramos:

Independiente de Plataforma

Cuando compilamos código fuente Java no se genera código máquina específico, si no que se generan bytecodes, los cuales son interpretados por la Java Virtual Machine (JVM), posibilitando que un mismo código fuente pueda ser ejecutado en múltiples plataformas.

Orientado a Objetos

Cualquier elemento del lenguaje Java es un objeto. Dentro de los objetos se encapsulan los datos, los cuales son accedidos mediante métodos.

Sencillo

Java está enfocado para ser un lenguaje fácil de aprender. Simplemente se deberán de entender los conceptos básicos de la programación orientada a objetos (POO).

Seguro

Es seguro ya que los programas se ejecutan dentro de la Java Virtual Machine (JVM) en un formato de “caja de arena”, de tal manera que no pueden acceder a nada que esté fuera de ella.

Tiene una validación sobre los bytecodes para comprobar que no hay códigos de fragmento ilegal.

Arquitectura Neutral

Independientemente de que se ejecute en una arquitectura de 32bits o de 64bits. En Java los tipos de datos siempre ocupan lo mismo.

Portable

Java no tiene nada que dependa de la plataforma, lo cual le hace que sea portable a diferentes plataformas.

Robusto

El lenguaje Java intenta controlar las situaciones de error en los procesos de compilación y de ejecución, reduciendo de esta manera el riesgo de fallo.

Además Java realiza el control total de la memoria alocándola y retirandola mediante un garbage colletor, de tal manera que no podemos utilizar punteros para acceder a ella.

Multi-hilo

Java nos permite la programación concurrente, de tal manera que un único programa puede abrir diferentes hilos de ejecución.

Interpretado

Los bytecodes son interpretados en tiempo real a código máquina.

Alto Rendimiento

Java ofrece compiladores Just-In-Time que permiten tener un alto rendimiento.

Distribuido

El lenguaje Java está pensando para ser ejecutado en arquitecturas distribuidas, como pueda ser Internet.


Publicar un comentario

0 Comentarios