Beneficios de Java

Beneficios de Java

Cuando hablamos de los beneficios de Java nos referimos a la filosofía de desarrollo bajo la cual fue creado. A continuación listaremos cada uno de estos beneficios.

Orientado a Objetos

Java fue concebido bajo el paradígma Orientado a Objetos. El concepto está basado en la idea de objetos (entidades que tienen caraterísticas y comportamiento), convirtiendose en la simulación del problema real que estamos tratando de resolver. Todo en Programación Orientada a Objetos es un objeto, y todo objeto define algún aspecto del problema. Ellos interactuan entre ellos a través de mensajes que son parte de este comportamiento, permitiendo una solución que fluirá a lo largo del programa. Los objetos definen un programa en términos de sustantivos, verbos y adjetivos del problema.

Los principios de la Programación Orientada a Objetos son encapsulación, herencia y polimorfismo, algunos incluyen la abstracción, pero en mi opinión, abstracción es el resultado de la correcta implementación de estos principios. Todos ellos trabajan juntos para ofrecernos beneficios como la modularidad, ocultación de información, reutilización de código, y mantenimiento de código.

Encapsulación y Abstracción

La encapsulación es una de las características de la Programación Orientada a Objetos. Este principio permite generar componentes autónomos tomando una parte de la funcionalidad y escondiendo los detalles de la implementación del exterior del mundo. La encapsulación por si misma es una estrategía que consiste en el uso de la protección de datos (empleando los modificadores de acceso) y exponiendo solo alguna de su información y métodos a través de interfaces públicas. Por el otro lado, la abstracción hace más fácil la flexibilidad y la reutilización de código, creando soluciones generales para problemas específicos. Es la capacidad de combinar algoritmos generales con los principios de la Programación Orientada a Objetos.

Independiente de la Plataforma

Java trabaja bajo el concepto WORA (Write Once Run Anywhere, por sus siglas en inglés), lo que significa que corre en diferentes sistemas operativos y arquitecturas de hardware sin la necesidad de recompilar el código para cada uno. Así que Java es compilado utilizando el compilador de Java (javac) generando bytecode independiente de la plataforma, luego ese bytecode es interpretado por la JVM (Java Virtual Machine), un interpretador de bytecode que puede ejecutar este en una plataforma específica. Por esta razón Java suele ser referido como un lenguaje interpretado, incluso cuando el código es compilado. Una forma más apropida de llamarlo sería que es un lenguaje de programación intermedio.

Simple

En los 90's cuando Java fue creado, C y C++ eran lenguajes de programación populares, pero ambos requerían el uso de punteros para almacenar objetos en memoria. Esto hacía responsable al desarrollador de manejar la memoria (asignación y deasignacieon de la memoria utilizada por el objeto), esto generaba algunos comportamientos desfavorables como alterar directamente la memoria, y crear algunas pérdidas de la misma. Java fue diseñado para manejar la memoria con el objetivo de eliminar dichos inconvenientes.

Robusto

Este puede ser considerado una extención del beneficio simple. Para prevenir las perdidas de memoria, Java se apoya del Garbage Collection (GC). Java almacena las referencias a objetos en el stack memory junto con datos y tipos de datos primitivos, y guarda los objetos en el heap memory. Por tanto, nuestro código solo tiene acceso directo al stack memory, y todo el proceso de asignación y desasignación en el heap memory es administrado por el Garba Collection.

Seguro

Java provee herramientas de seguridad y servicios para aplicaciones seguras. Nuestro código corre adentro de un sandbox creado por el JVM (Java Virtual Machine), esto bloquea el acceso directo a la computadora donde se está ejecutando, evitando el mal uso de los recursos y manteniendolos a salvo. La seguridad en Java esta basada en sus cuatro capacidades.

  • Acceso de control Fine-grained.
  • Política de seguridad fácilmente configurable.
  • Estructura de control de acceso fácilmente extensible.
  • Extensión de controles de seguridad a todos los programas Java.

Multi-Propósito

Java está diseñado para crear una variedad de soluciones tecnológicas, no está solo restringido a la creación de applets, o escritorio o aplicaciones web. Nosotros podemos utilizar Java para crear frontend, backend, escritorio, móbil, SD Card, embebidos, internet de las cosas, cualquier cosa que podamos imaginar. En el siguiente diagrama, podemos ver como está dividida la Plataforma Java para hacer todo esto posible.

Comparte este artículo