La historia de habas comienza alrededor 500 BCE cuando el matemático y el místico griegos Pythagoras fundaron a fraternidad religiosa basada en el reincarnation de almas, del vegetarianism, de la significación mystical de números, y de la abstención de comer de habas. Pythagoras creyó al parecer que las habas pudieron contener las almas del querido salido. Una historia apocryphal divulga posiblemente Pythagoras que es matado por una multitud enojada porque él rechazó funcionar a través de un campo de habas para escaparse.
Trece cientos años más adelante, el CE alrededor 850, la manada árabe Kaldi de la cabra notó sus cabras el comportarse extraño. Él muestreó las bayas que las cabras habían estado comiendo y descubrió con eso el café y el efecto que estimulaba del cafeína simultáneamente. El grano de café separado extensamente de ese punto, hasta que fue traído eventual a la isla indonesia de Java, y cultivado allí en el último 1600's. el nombre de la isla vino eventual referir al café producido allí, entonces se convirtió en argot para el café en general.
En 1995, la lengua del roble del sun fue descubierta para sufrir de problemas de la marca registrada. Una caza rápida para un nombre conveniente siguió, y Java fue elegida. De este punto delantero llegó a ser obligatoria para que los productos de Java tengan nombres basados en el café y/o la cultura y la geografía del archipiélago indonesio. Así en 1996 cuando los ingenieros del sol echaban alrededor para un nombre para la arquitectura componente del software del sun, colocaron en JavaBeans.
Cuando Java primero fue lanzada en mayo de 1995, fue visto principalmente como herramienta para incluir animaciones y el sonido y una cierta interacción simple del usuario en las páginas de la tela, y ése es de hecho mucho bonito cuáles era para los pares siguientes de años. Sin embargo, muy de comenzar muchos programadores consideraron que Java tenía el potencial de ser algo más, la primera lengua orientada al objeto verdaderamente acertada que alcanzó el palique de la cuota de mercado nunca tenía y la facilidad de empleo y la reutilización que C++ prometió pero no pudo entregar.
La lengua sí mismo ha cambiado relativamente poco desde el verano de 1995. Las excepciones se han limpiado para arriba, algunas características como se han agregado las clases internas, pero sobre todo un programa puro de Java que no hace mucho uso del API ahora mira bastante mucho el igual que entonces lo hizo.
Sin embargo, aunque la lengua de Java estaba mismo bien-pensamiento hacia fuera y muy limpia, iguales no podrían ser dichos para el interfaz de programación inicial de la biblioteca y de uso de la clase (API). Java fue colocada originalmente como lengua para los applet que funcionarían en electrónica de consumidor, VCRs elegante y los similares. Antes de ser lanzado al público, rápidamente y haphazardly fue reescrita para caber en el World Wide Web que estallaba. Fue pensado que si la biblioteca fuera bastante de gran alcance para que los usuarios escriban applet pequeños, eso sería suficiente. Franco, iguale para ese propósito limitado que la biblioteca de la clase era débil puesto que proporcionó la ayuda muy limitada para los gráficos y los multimedia compararon a ambientes más maduros como posdata, director, y OpenStep. Y la biblioteca era claramente inadecuada para usos más comprensivos.
No obstante qué casi nadie esperó pero qué en hecho sucedió incluso antes de que los applet llegaron a ser comunes en la tela, era que los reveladores comenzaron a mirar Java como reemplazo para C++, una lengua que complejidad excesiva había destruido las ventajas alegadas de la programación orientada del objeto.
Dado este interés enorme en Java de los cuartos donde nunca fue pensado para ir, estaba claro que la biblioteca de la clase y el API tuvieron que ser vueltos a trabajar. Una de las cosas Java necesitó si debía convertirse en un competidor serio a los gustos de C++ y básico visual era una arquitectura componente del software. Era necesario permitir que los pedazos pequeños del código sean combinados fácilmente en una herramienta visual para producir los nuevos usos no previstos por los programadores originales. Era esta capacidad con VBXs que consideró en gran parte el éxito de básico visual. Era la carencia de una manera estándar de hacer esto en C++ que en parte contribuyó a la falta de esa lengua. (y no incurra en ninguna equivocación, a pesar de millones de líneas de código de C++ hacia fuera allí, C++ ha fallado. Los programas de C++ son cada pedacito como cochecillo, error-prone, atrasados, y duro-a-mantienen como programas escritos en idiomas procesales tradicionales como C y COBOL.)
En hecho la lengua de Java de la original dirigía abajo de este camino antes de que cualquier persona incluso lo realizara. Los applet son los programas compilados que se cargan en un ambiente en el tiempo de pasada en de el cual ningún conocimiento existió compila tiempo. Esto forzó ciertas opciones sobre el diseño del ambiente de Java. En detalle requirió que los programas de Java estén ligados dinámicamente en el tiempo de pasada más bien que se ligaran estáticamente en compilen tiempo. También requirió un mecanismo del cargador de la clase encontrar el código necesario en el tiempo de pasada si residió en un disco duro local o en un sitio alejado en alguna parte en el Internet.
Sin embargo, aunque algunas de las cosas un modelo componente verdadero del software requerido fueron construidas en Java del principio, otras cosas no eran. Para la clase dinámica de Java 1.0's del ejemplo el cargamento fue restringido a los applet y las clases en las cuales el applet sabía alrededor compilan tiempo. Había relativamente poca ayuda para un introspection más amplio que permitiría que un programa corriente determinara las firmas de todos los métodos en una clase arbitraria e invocara esos métodos.
Además, el modelo del acontecimiento de Java fue juntado de cerca al interfaz utilizador gráfico, y todos los objetos a los cuales respondió o los acontecimientos encendidos tuvieron que ser subclases de java.awt.Component. La herencia era de hecho usada en exceso a través de la biblioteca de la clase. Esto tendió para limitar la flexibilidad de los programadores, especialmente en una lengua que no apoyó herencia múltiple.
Y, aunque las clases se podrían cargar dinámicamente, no había manera simple de ahorrar su estado. Cada vez que una clase fue cargada era como si nunca hubiera sido visto o no modificado antes. No era, por ejemplo, posible que una herramienta del constructor cargue un botón, no permite que el usuario cambie la etiqueta del botón, y entonces excepto el botón con la nueva etiqueta, por lo menos no sin manualmente escribir bloques grandes del código de la serialización.
Java 1,1 comenzó el proceso de proporcionar una biblioteca de la clase más conveniente para una lengua que era utilizada construir grande, usos de la industrial-fuerza más bien que applet lindos para las páginas de la tela.
java.lang.reflect
el paquete fue agregado para permitir que los programas invoquen dinámicamente
código en el tiempo de pasada, esencialmente reconstruyendo la capacidad
abandonada hace años con lenguaje ensamblador para escribir los programas de uno
mismo-modificación (ahora se hace sin embargo en una manera mucho más limpia,
más segura, y conservable.) Usted aprenderá sobre esto en el capítulo 5.
El viejo modelo del acontecimiento, basado en herencia, fue abandonado y substituido por un nuevo modelo del acontecimiento de la delegación que está más limpio, más robusto, más fácil entender, más fácil extender, más rápido, y todo alrededor de más eficiente. Usted aprenderá sobre esto en el capítulo 6.
Las corrientes un interfaz de la serialización y de una entrada y de una salida del objeto eran tan agregada información en bruto no justa pero también los objetos stateful podrían ser ahorrados y ser restaurados. Usted encontrará esto en el capítulo 7.
Y con todo el esto funcionó el hilo de rosca de JavaBeans. Los acontecimientos se utilizan para comunicarse entre las habas. La serialización se utiliza para modificar habas para requisitos particulares. La reflexión se utiliza para cargar habas desconocidas en tiempos de pasada y las herramientas del constructor y para permitir que hagan su trabajo.
Había otras piezas también.
java.sql
el paquete y JDBC del fueron agregados para simplificar la interconexión los
programas de Java y las bases de datos del SQL. El computar distribuido fue
agregado con la invocación alejada del método (RMI) en
java.rmi
paquete. El modelo de la seguridad fue realzado para permitir applet firmados y
confiaba en código mayor acceso a los recursos de sistema.
Sin embargo, hay poca pregunta que en el funcionamiento largo la sola mejora más grande a Java en 1,1 y más allá es la arquitectura componente del software de JavaBeans. Mientras que estos otros paquetes permiten programas especializados ciertos, adicionales, JavaBeans se está convirtiendo en la fundación en la cual se construye todo . Mucho como no hay actualmente razón de separar la lengua básica visual de los varios controles de VBXs y de activeX, pronto no va tan también a ser evidente cuál es Java y cuál es una haba. Muchos de los 1,0 métodos desaprobados en Java 1,1 ahora son substituidos por los métodos que adhieren a los patrones establecidos de las habas. Usted descubrirá que usted es ya familiar con muchas habas, ese los applet y los componentes ahora son ellos mismos habas. Pero usted también aprenderá que las habas pueden estar mucho más que eso.