Lenguaje totalmente orientado a
Objetos. Todos los conceptos en los que se apoya esta técnica,
encapsulación, herencia, polimorfismo, etc., están presentes en Java.
·
Disponibilidad de un amplio conjunto de
bibliotecas. Como ya se mencionó anteriormente, Java es algo más que un
lenguaje. La programación de aplicaciones con Java se basa no solo en el empleo
del juego de instrucciones que componen el lenguaje, sino, fundamentalmente, en
la posibilidad de utilizar el amplísimo conjunto de clases que Sun pone a
disposición del programador y con las cuales es posible realizar prácticamente
cualquier tipo de aplicación.
·
Lenguaje simple. Java posee una curva de
aprendizaje muy rápida. Resulta relativamente sencillo escribir applets
interesantes desde el principio. Todos aquellos familiarizados con C++
encontrarán que Java es más sencillo, ya que se han eliminado ciertas
características, como los punteros. Debido a su semejanza con C y C++, y dado
que la mayoría de la gente los conoce aunque sea de forma elemental, resulta
muy fácil aprender Java. Los programadores experimentados en C++ pueden migrar
muy rápidamente a Java y ser productivos en poco tiempo.
·
Distribuido. Java proporciona una colección
de clases para su uso en aplicaciones de red, que permiten abrir sockets y
establecer y aceptar conexiones con servidores o clientes remotos, facilitando
así la creación de aplicaciones distribuidas.
·
Interpretado y compilado a la vez. Java es
compilado, en la medida en que su código fuente se transforma en una especie de
código máquina, los bytecodes, semejantes a las instrucciones de ensamblador. Por
otra parte, es interpretado, ya que los bytecodes se pueden ejecutar
directamente sobre cualquier máquina a la cual se hayan portado el intérprete y
el sistema de ejecución en tiempo real (run-time).
·
Robusto. Java fue diseñado para crear
software altamente fiable. Para ello proporciona numerosas comprobaciones en
compilación y en tiempo de ejecución. Sus características de memoria liberan a
los programadores de una familia entera de errores (la aritmética de punteros),
ya que se ha prescindido por completo de los punteros, y la recolección de
basura elimina la necesidad de liberación explícita de memoria.
·
Seguro (?). Dada la naturaleza distribuida
de Java, donde las applets se bajan desde cualquier punto de la Red, la
seguridad se impuso como una necesidad de vital importancia. A nadie le
gustaría ejecutar en su ordenador programas con acceso total a su sistema,
procedentes de fuentes desconocidas. Así que se implementaron barreras de
seguridad en el lenguaje y en el sistema de ejecución en tiempo real.
·
Indiferente a la arquitectura. Java está
diseñado para soportar aplicaciones que serán ejecutadas en los más variados
entornos de red, desde Unix a Windows Nt, pasando por Mac y estaciones de
trabajo, sobre arquitecturas distintas y con sistemas operativos diversos. Para
acomodar requisitos de ejecución tan diversos o variopintos, el compilador de Java genera
bytecodes: un formato intermedio indiferente a la arquitectura diseñado para
transportar el código eficientemente a múltiples plataformas hardware y
software. El resto de problemas los soluciona el intérprete de Java.
·
Portable. La indiferencia a la
arquitectura representa sólo una parte de su portabilidad. Además, Java
especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus
operadores aritméticos, de manera que los programas son iguales en todas las
plataformas. Estas dos últimas características se conocen como la Máquina
Virtual Java (JVM).
·
Alto rendimiento.
·
Multihebra. Hoy en día ya se ven como
terriblemente limitadas las aplicaciones que sólo pueden ejecutar una acción a
la vez. Java soporta sincronización de múltiples hilos de ejecución
(multithreading) a nivel de lenguaje, especialmente útiles en la creación de
aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la
comunicación, otro puede interactuar con el usuario mientras otro presenta una
animación en pantalla y otro realiza cálculos.
·
Dinámico. El lenguaje Java y su sistema
de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo
se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de
código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.
·
Produce applets. Java puede ser usado para crear
dos tipos de programas: aplicaciones independientes y applets. Las aplicaciones
independientes se comportan como cualquier otro programa escrito en cualquier
lenguaje, como por ejemplo el navegador de Web HotJava, escrito íntegramente en
Java. Por su parte, las applets son pequeños programas que aparecen embebidos
en las páginas Web, como aparecen los gráficos o el texto, pero con la
capacidad de ejecutar acciones muy complejas, como animar imágenes, establecer
conexiones de red, presentar menús y cuadros de diálogo para luego emprender
acciones, etc.
No hay comentarios.:
Publicar un comentario