*CONOCIENDO AL LENGUAJE JAVA
*Simplicidad
*Orientación a Objetos
*Soporte de múltiples plataformas
*Manejo automático de memoria
*Seguridad
*Java no aísla y evoluciona
*Programando para el mundo
CONOCIENDO AL LENGUAJE JAVA:------Simplicidad:------Ya se ha mencionado que el equipo original que desarrolló Java lo hizo por necesidad, al no cumplir los lenguaje existentes con todo lo que necesitaban para el proyecto en marcha. Pero, como buenos diseñadores, no inventaron todo de nuevo, sino que se basaron en lo ya hecho y probado. Es por esa razón que el código Java se expresa en archivos de texto comunes, y tiene una apariencia muy familiar para los programadores de C/C++ y para los programadores en general. Los fragmentos del lenguaje que se han visto, lo ejemplifican.
Orientación a objetos:
A primera vista parece que todos los productos nuevos de software tienen algo "orientado a objetos". En el caso de Java, la aplicación de esa calificación es totalmente acertada. De hecho, en Java, todo es un objeto. Se verá que éstos se definen en clases, con atributos y métodos, agrupándose en paquetes, y exponiendo interfaces, permitiendo herencia y polimorfismo, implementando así la tecnología de objetos de una manera muy completa, y a la vez sencilla y agradable. Reconoceremos al estudiar se semántica, que Java es realmente un lenguaje que merece ser llamado "totalmente orientado a objetos".
Soporte de múltiples plataformas:
El proceso de compilación no produce código para un procesador en particular, como en los compiladores C/C++, sino que genera código para un procesador ideal, denominado máquina virtual Java (Java Virtual Machine, o Java VM). La razón de esta conducta es simple: la necesidad de poder ejecutarse en cualquier plataforma, sin necesidad de cambiar el código fuente, ni aun de recompilar. Todo programa Java se traduce en una serie de códigos (llamados bytecodes) para un procesador imaginario, al Java VM, que puede ser implementado fácilmente en cualquier plataforma poderosa. Es así como el lenguaje y sus aplicaciones se independizan de ña máquina destino, a costa de algo de velocidad, provocada por la necesidad de "simular" la Java VM, mediante software.
Veremos que aun los tipos primitivos de datos quedan definidos de un solo golpe, para todas las plataformas. Nos evitamos así las pesadillas de portabilidad, conocidas por los programadores de C/C++, al cambiar, por ejemplo, de ambiente a ambiente, el tamaño de los enteros, o el conjunto de caracteres soportados. En Java, esos problemas no existen: sólo existe una máquina virtual.
Manejo automático de memoria:
Ya se ha mencionado, que el lenguaje Java se compone de objetos. Lo que no se ha descripto, es que esos objetos pueden y deben crearse, y tienen una vida que dura hasta su destrucción. Mientras que la creación de los objetos se deja bajo la voluntad del programador, la destrucción definitiva de un objeto ocurre cuando no es más referenciado por otros objetos del programa. De esta forma, se elimina una de las causas más comunes de error en otros lenguajes, como la destrucción por el programador de objetos aun en uso en el programa, o la falta de destrucción de objetos que ya son inútiles, pues no se usan en el resto de la ejecución, pero que molestan con empleo de recursos. Esta técnica de manejo automático. Esta técnica de manejo automático de memoria ocupada por los objetos se denominan garbage collection, algo así como recolección de basura. En una aplicación Java hay siempre un proceso, ejecutado como un hilo de ejecución separado, que se ocupa de recorrer la memoria donde se encuentran los objetos, y determinan cuáles son pueden liberarse y destruirse. Bye (adiós) punteros y problemas de memoria.
Seguridad:------Todo el que ha trabajado en una computadora personal, se ha topado de una u otra forma con los problemas de virus, o de confidencialidad de los datos. Al parecer Internet, y distribuirse programas por toda las red, el problema de la seguridad ha tomado una nueva dimensión, más grave, ya que actualmente a nuestra máquina pueden llegar aplicaciones hostiles y virus malignos, desde cualquier punto del planeta. Java ha sido adaptado a Internet, pensando mucho en el tema seguridad. Una "applet" java se ejecuta en un entorno, que impide su intromisión en la máquina cliente. No hay, entonces, posibilidad de un virus Java, viajando por toda la red.
Java no se aísla y evoluciona:
Como Java trata de ser un lenguaje de producción, no un lenguaje académico o ideal, o tiene "miedo" de comunicarse con librerías de otros lenguajes. Tiene capacidades definidas para implementar clases y métodos (o funciones), escritos, por ejemplo, en C/C++. Esto nos permite usar lo que ya está hecho, en cada plataforma de implementación. Igualmente, recordemos que Java es un lenguaje de uso general, y muchas de las rutinas y librerías que necesitaremos para un proyecto, pueden ser escritas en Java. Debido al éxito del lenguaje, y a su difusión, cada día aparecen nuevas herramientas y paquetes de clases escritas por otros programadores, listas para ser usadas en nuestro próximo sistema.
Programando para el mundo:
Cuando Ud. Comience a programar en Java, y en especial para la Web, experimentará una sensación, que hasta la llegada de Java, era difícil de encontrar: el hecho de generar aplicaciones que pueden ser ejecutadas por millones de personas, en ambientes disímiles. Sus programas podrán viajar por la red de redes, y ser fruto de satisfacción y diversión. Es un nuevo universo de programación, que apenas comenzamos a explorar.