1. Introducción.

¿Qué es Java?

Java es una tecnología que engloba principalmente las siguientes subtecnologías:

  • El lenguaje de programación Java: es un lenguaje orientado a objetos, con tipos de datos estáticos y cuyos programas se compilan produciendo una aplicación con código bytecode.
  • Java Runtime Environment (JRE): está compuesto por la Java Virtual Machine (JVM) más otros componentes necesarios y su finalidad consiste en ejecutar los programas codificados en bytecode.
  • Java API: es el conjunto de todas las Application Programming Interface (API), o interfaces, que permiten al programador crear aplicaciones Java. Para programas más generales se utiliza la Java SE y para programas más complejos o con finalidad empresarial se usa la Java EE.

La expresión Java es un término muy ambiguo. Generalmente cuando se habla de Java se está refiriendo al lenguaje de programación, y así lo haremos durante el resto del curso.

Debido a que instalar y configurar cada una de las partes es un proceso bastante lento, existe un kit llamado Java Development Kit (JDK) donde se encuentra todo lo necesario para empezar a programar.

Aquí os dejo una imagen donde se abarcan casi todas las subtecnologías de Java:

¿Cuándo programar en Java?

Es cierto el axioma que dice que para cada tipo de programa le corresponde un lenguaje de programación. Y Java no es una excepción. Es conveniente decir de antemano que Java se ha convertido en un lenguaje de propósito general, por tanto su uso se puede extender a todo tipo de programas. Sin embargo hay puntos donde Java es más fuerte y donde menos.

Cuando es muy recomendado programar en Java:

  • Aplicaciones portables: aunque haya lenguajes que permitan ejecutar, mediante compilación o interpretación, programas en cualquier sistema, nunca van a ser tan portables como un programa hecho en Java. Su grandeza radica en que un mismo código puede ser ejecutado en cualquier parte gracias, y esto es lo más importante, al alto nivel de penetración en todos los sistemas. Y es cierto, un algoritmo puedes reutilizarlo para aplicaciones de escritorio, web, móvil y en cualquier máquina que tenga instalado el JRE.
  • Servicios web empresariales: si tienes pensado crear una página web dinámica sin muchas pretensiones en cuanto a funcionalidades lo mejor es usar PHP. Es sencillo de aprender, práctico y muy escalable, un ejemplo claro es Facebook. Sin embargo, si estás en un entorno empresarial los servicios web corporativos hacen uso de transacciones, comunicaciones remotas, seguridad estricta, controles de la concurrencia, etc. que sólo Java puede proporcionar.

Cuando no es recomendado programar en Java:

  • Aplicaciones multimedia: si necesitas hacer un juego de altas prestaciones, donde es imprescindible un grupo de trabajo, utiliza C++ con OpenGL. En cambio si sólo quieres hacer un juego tú sólo o con dos o tres personas más y que sea portable utiliza el lenguaje ActionScript 3. Por último, si te gusta crear juegos sencillos usa directamente el lenguaje Javascript.
  • Aplicaciones con alta carga computacional: los programas en Java consiguen altos rendimientos de procesado. Sin embargo nunca serán tan eficaces como un programa compilado. Para este tipo de programas utiliza los lenguajes C y C++, en mayor medida, y, para casos muy específicos, el lenguaje ensamblador.

Resumen

Java es una tecnología que a su vez lo componen varias subtecnologías. La principal de ellas es el lenguaje de programación Java junto con todas sus API. Conocerlas en profundidad es la clave para ser un experto en Java.

En el siguiente capítulo aprenderás a cómo instalar y configurar todo el entorno de Java y crear tu primera programa.