Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los 90. A diferencia de los lenguajes de programación convencionales, que generalmente están diseñados para ser compilados a código nativo, Java es compilado en un bytecode que es interpretado (usando normalmente un compilador JIT), por una máquina virtual Java.
El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos mucho más simple y elimina herramientas de bajo nivel como punteros.
Java está sólo lejanamente emparentado con JavaScript, aunque tengan nombres similares y compartan una sintaxis al estilo de C algo parecida.
Orígenes
La plataforma Java y el lenguaje Java empezaron como un proyecto interno de Sun Microsystems en diciembre de 1990. Patrick Naughton, ingeniero de Sun, estaba decepcionado con el estado de C++ y la API de C y sus herramientas. Mientras consideraba migrar a NeXT, Naughton recibió la oferta de trabajar en una nueva tecnología, y así comenzó el proyecto Stealth.
El Proyecto Stealth fue rebautizado como Green Project (o Proyecto Verde) cuando James Gosling y Mike Sheridan se unieron a Naughton. Con la ayuda de otros ingenieros, empezaron a trabajar en una pequeña oficina en Sand Hill Road en Menlo Park, California. Intentaban desarrollar una nueva tecnología para programar la siguiente generación de dispositivos inteligentes, en los que Sun veía un campo nuevo a explotar.
El equipo pensó al principio usar C++, pero se descartó por varias razones. Al estar desarrollando un sistema empotrado con recursos limitados, C++ no es adecuado por necesitar mayor potencia además de que su complejidad conduce a errores de desarrollo. La ausencia de un recolector de basura (garbage collector) obligaba a los programadores a manejar manualmente el sistema de memoria, una tarea peligrosa y proclive a fallos. El equipo también se encontró con problemas por la falta de herramientas portables en cuanto a seguridad, programación distribuida, y programación concurrente. Finalmente abogaban por una plataforma que fuese fácilmente portable a todo tipo de dispositivo.
Bill Joy había concebido un nuevo lenguaje que combinase lo mejor de Mesa y C. En un escrito titulado Further (más lejos), proponía a Sun que sus ingenieros crearan un entorno orientado a objetos basado en C++. Al principio Gosling intentó modificar y ampliar C++, a lo que llamó C++ ++ --, pero pronto descartó la idea para crear un lenguaje completamente nuevo, al que llamó Oak, en referencia al roble que tenía junto a su oficina.
El equipo dedicó largas horas de trabajo y en el verano de 1992 tuvieron listas algunas partes de la plataforma, incluyendo el Sistema Operativo Verde, el lenguaje Oak, las librerías y el hardware. La primera prueba, llevada a cabo el 3 de Septiembre de 1992, se centró en construir una PDA (Personal Digital Assistant o Asistente Digital Personal) llamada Star7[1], que contaba con una interfaz gráfica y un asistente apodado "Duke" para guiar al usuario.
En noviembre de ese mismo año, el Proyecto Verde se convirtió en FirstPerson, Inc, una división propiedad de Sun Microsystems, y el equipo se trasladó a Palo Alto (California). El interés se centró entonces en construir dispositivos interactivos, hasta que Time Warner publicó una solicitud de oferta para un adaptador de televisión. Es decir, un aparato que se sitúa entre la televisión y una fuente de señal externa y que adapta el contenido de ésta (video, audio, páginas Web, etc.) para verse en la pantalla. Entonces, Firstperson cambió de idea y envió a Warner una propuesta para el dispositivo que deseaban. Sin embargo, la industria del cable consideró que esa propuesta daba demasiado control al usuario, con lo que FirstPerson perdió la puja a favor de Silicon Graphics Incorporated. Un trato con la empresa 3DO para el mismo tipo de dispositivo tampoco llegó a buen puerto. Viendo que no había muchas posibilidades en la industria de la televisión, la compañía volvió al seno de Sun.
Filosofía
El lenguaje Java se creó con cinco objetivos principales:
-
Debería usar la metodología de la programación orientada a objetos.
-
Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
-
Debería incluir por defecto soporte para trabajo en red.
-
Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
-
Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.
Para conseguir la ejecución de código remoto y el soporte de red, los programadores de Java a veces recurren a extensiones como CORBA (Common Object Request Broker Architecture), Internet Communications Engine o OSGi respectivamente.
Podemos darnos una vuelta por http://java.sun.com para tener presente las tecnologías relativas que existen y también recomiendo visitar http://www.java.com para ver cómo se está usando Java en estos días.
|