sábado, 19 de mayo de 2018

El fenomeno de la Tecnologia Java

Hablar de la Tecnología Java es tan común hoy día, pero ¿Que es exactamente la tecnología Java?, hay muchos conceptos y subtecnologías involucradas que muchos se confunden. He decidido escribir una serie de entradas para aquellos novatos que recién se están incorporando al mundo Java.
En esta entrada trataré de explicar como la tecnología Java se compone de un lenguaje de programación mas una plataforma.
La tecnología Java es tanto un lenguaje de programación como una plataforma.

El lenguaje de programación Java

El lenguaje de programación Java es un lenguaje de alto nivel, puede ser descrito por las siguientes palabras claves:
  • Simple
  • Orientado a objetos
  • Distribuido
  • Concurrente
  • Dinámico
  • Portable
  • Alto Redimiendo
  • Robusto
  • Seguro

Cada uno de estos conceptos se explica en The Java Language Environment, un informe redactado por James Gosling y Henry McGilton y que discutiremos más tarde.


En el lenguaje de programación Java, todo el código fuente es escrito en archivos de texto plano con extensión .java. Luego estos archivos son compilados en archivos con extensión .class por el compilador javac. Un archivo .class no contiene código nativo para el procesador, en su lugar contiene bytecodes - el lenguaje de la maquina virtual de Java (Java VM). Entonces el comando de java puede ejecutar tu aplicación en una instancia de la Maquina Virtual de Java.

Una vista general del proceso de desarrollo de software en Java

La maquina Virtual de Java esta disponible en diferentes sistemas operativos, los mismos archivos .class pueden ser ejecutados en Microsoft Windows, Solaris, Linux, o Mac OS.
Existen varias implementaciones de la Maquina Virtual, Oracle proporciona una, conocida como Java SE HotSpot, esta maquina ejecuta algunos pasos adicionales en tiempo de ejecución para darle a la aplicación mayor rendimiento. Esto incluye varias tareas como encontrar cuellos de botella que afecten el rendimiento y recompilar a código fuente nativo aquellas secciones de código usado con frecuencia.


Por medio de las maquinas virtuales, la misma aplicación puede ser ejecutada en diferentes plataformas.

La plataforma Java

Una plataforma es el entorno hardware o software en el que se ejecuta un programa. Ya hemos mencionado algunas de las plataformas más populares como Microsoft Windows, Linux, Solaris OS y Mac OS. Se puede describir a la mayoría de las plataformas como una combinación del sistema operativo y el hardware subyacente. La plataforma Java difiere de la mayoría de las demás en que es una plataforma solo-software que se ejecuta encima de otras basadas en hardware.
La plataforma Java tiene dos componentes:

  • La Máquina Virtual Java
  • La Interfaz de Programación de Aplicaciones (API)
Ya hemos presentado a la máquina virtual Java; es la base de la plataforma Java y ha sido portada a varias plataformas basadas en hardware.
El API es una gran colección de componente de software listos para usar que proporcionan muchas funcionalidades útiles. Está agrupada en bibliotecas de clases relacionadas e interfaces; estas bibliotecas se conocen como paquetes. En la siguiente sección, ¿Qué puede hacer la tecnología Java? se resaltan algunas capacidades proporcionadas por el API.
El API y la máquina virtual Java aíslan al programa del hardware subyacente.

Al ser un entorno independiente de la plataforma, la plataforma Java puede ser un poco más lenta que el código nativo. Sin embargo, los avances en las tecnologías de los compiladores y las máquinas virtuales están acercando el rendimiento al del código nativo sin amenazar la portabilidad.

¿Qué puede hacer la tecnología Java?

El lenguaje de propósito general y alto nivel Java es una potente plataforma de software. Todas las implementaciones completas de la plataforma Java le proporcionan las siguientes características:

Herramientas de desarrollo: Las herramientas de desarrollo proporcionan todo lo que necesitará para compilar, ejecutar, monitorizar, depurar y documentar sus aplicaciones. Como desarrollador novel las principales herramientas que usará son el compilador javac, el lanzador java, y la herramienta de documentación javadoc.

Interfaz de programación de aplicaciones (API): El API proporciona la funcionalidad esencial del lenguaje de programación Java. Ofrece un amplio conjunto de clases listas para usar en sus propias aplicaciones. Abarca desde objetos básicos hasta el trabajo en red y la seguridad, la generación de XML y acceso a bases de datos y más. El núcleo del API es muy grande; consulte la documentación del Java SE Development Kit 6 (JDKTM 6) para obtener una vista global de lo que contiene.

Tecnologías de distribución: El software del JDK proporciona mecanismos estándar, como con el software Java Web Start software y Java Plug-In para la distribución de sus aplicaciones a los usuarios finales.

Conjuntos de herramientas de interfaz gráfica: Los conjuntos de herramientas (toolkits) Swing y Java 2D aportan la posibilidad de crear sofisticadas interfaces gráficas de usuario (GUIs).

Bibliotecas de integración: Las bibliotecas de integración como las APIs Java IDL, JDBC, «Java Naming and Directory Interface» (JNDI), Java RMI y «Java Remote Method Invocation over Internet Inter-ORB Protocol Technology» (Java RMI-IIOP Technology) proporcionan el acceso a bases de datos y la manipulación de objetos remotos.

¿Cómo cambiará la tecnología Java mi vida?

No podemos prometerle fama, fortuna, ni siquiera un trabajo si aprende el lenguaje de programación Java. Aún así, es probable que mejorará sus programas y requiere menos esfuerzo que otros lenguajes. Creemos que la tecnología Java le ayudará a hacer lo siguiente:

Empezar rápidamente: Aunque el lenguaje de programación Java es un potente lenguaje orientado a objetos, es fácil de aprender, especialmente para programadores que ya estén familiarizados con C o C++.

Escribir menos código: Las comparaciones de métrica de programas (número de clases, número de métodos, etc.) indican que un programa escrito en el lenguaje de programación Java puede ser cuatro veces más pequeño que el mismo programa escrito en C++.

Escribir mejor código: El lenguaje de programación Java fomenta las buenas prácticas de programación y la recolección de basura automática le ayuda a evitar fugas de memoria. Su orientación a objetos, su arquitectura de componentes JavaBeans y su API extensa y fácilmente extensible le permiten reutilizar código existente y probado y generar menos erratas.

Desarrollar programas más rápidamente: El lenguaje de programación Java es más simple que C++ y, por esto mismo, su tiempo de desarrollo puede llegar a reducirse a la mitad. Sus programas también necesitarán menos líneas de código.

Evitar dependencia de la plataforma: Puede mantener su programa portable evitando el uso de bibliotecas escritas en otros lenguajes.

Escribir una vez, ejecutar en cualquier lugar: Puesto que las aplicaciones escritas en el lenguaje de programación Java se compilan hacia bytecodes independientes de la máquina, éstas se ejecutan en cualquier plataforma Java con consistencia.

Distribuir software más fácilmente: Con el software Java Web Start, los usuarios podrán lanzar su aplicación con una sola pulsación del ratón. Una comprobación automática de versión asegurará que los usuarios siempre estén al día con la última versión de su software. Si hay disponible una actualización el software Java Web Start automáticamente actualizará su instalación.


No hay comentarios:

Publicar un comentario