# data[].attributes.body
Informática
Isaac Fernández Camargo
Lenguaje de Programación Java
Profa: Guadalupe Espinosa
XII°B
24/6/2021

# data[].attributes.body
Inicio como herramienta de programación para dispositivos digitales como decodificadores, televisores, etc. en un proyecto llamado The Green Project en Sun Microsystems en el año 1991. El equipo formado por trece personas cuyo líder era James Gosling, trabajó durante 18 meses en Sand Hill Road, en Menlo Park, para desarrollarlo. Originalmente, el nombre de Java era Oak que significa pino en inglés, pero fue cambiado por Green debido a problemas legales y por último se cambió a Java, se desconoce la razón de este acrónimo.
El objetivo del equipo Green era crear un lenguaje de programación parecido a C++ en estructura y sintaxis, fuertemente orientado a objetos, pero con una máquina virtual propia. Entre junio y julio de 1994, el equipo reorientó la plataforma hacia la web pues vieron a la internet como un sitio más interactivo. Por tal motivo, Patrick Naughton creó el prototipo de un navegador llamado WebRunner u HotJava en la actualidad. En 1994, se les hizo una demostración de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld, a que vieran la luz pública Java y HotJava, el navegador Web. Más tarde, Netscape incorporó la tecnología Java. El 9 de enero del año siguiente, 1996, Sun fundó el grupo empresarial JavaSoft para que se encargase del desarrollo tecnológico. Dos semanas más tarde la primera versión de Java fue publicada. Y con el tiempo fueron saliendo versiones más actualizadas hasta la actualidad.

# data[].attributes.body
- Es un lenguaje simple: ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos usadas y más confusas de éstos, haciéndolo más sencillo.
- Está orientado a objetos: permite diseñar el software de forma que los distintos tipos de datos que se usen estén unidos a sus operaciones.
- Es distribuido: Java proporciona una gran biblioteca estándar y herramientas para que los programas puedan ser distribuidos.
- Independiente de la plataforma: esto significa que programas escritos en el lenguaje Java pueden ejecutarse en cualquier tipo de hardware, lo que lo hace portable.
- Recolector de Basura: cuando no hay referencias localizadas a un objeto, el recolector de basura de Java borra dicho objeto, liberando así la memoria que ocupaba. Esto previene posibles fugas de memoria.
- Es seguro y sólido: proporcionando una plataforma segura para desarrollar y ejecutar aplicaciones que, administra automáticamente la memoria, provee canales de comunicación segura protegiendo la privacidad de los datos y, al tener una sintaxis rigurosa evita que se quiebre el código, es decir, no permite la corrupción del mismo.
- Es multihilo: logra llevar a cabo varias tareas simultáneamente dentro del mismo programa. Esto permite mejorar el rendimiento y la velocidad de ejecución.
- Es de arquitectura neutral: Java compila su código a un fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará.

# data[].attributes.body
- Es multiplataforma: Java se puede utilizar sin depender del tipo de plataforma por lo que no es necesario trabajar en un determinado tipo de ordenador o sistema operativo. Se puede utilizar el mismo programa en una computadora con Windows, Linux, servidor SUN, Solaris o hasta un teléfono móvil.
- Liberación de memoria: los programadores de Java decidieron romper con el sistema tradicional acerca de la liberación de memoria, quitando esa responsabilidad al programa. Para eso solo se necesita solicitar memoria al sistema si es que requiere incluirlo.
- Librería estándar y editores: incluye variedad de librerías estándar que te ayudarán a realizar muchas operaciones comunes. También hay editores muy buenos, conocidos como Entorno de Desarrollo Integrado, que servirá de ayuda al programa para que sea más fluido y cómodo.
- Gestión de error: gestiona los errores a través de excepciones
- Aplicaciones distribuidas: se tiene la posibilidad de crear aplicaciones distribuidas. Estas se trasladan a la red y se ejecutan en una plataforma compuesta por una base de cómputo que se distribuye y funciona a la perfección.
- Seguridad: los programas se compilan de manera original, por lo que no habrá problemas con los filtros de seguridad.

# data[].attributes.body
- Lenguaje interpretado: significa que el lenguaje de máquina se va convirtiendo a medida que se va ejecutando disminuyendo el rendimiento de ejecución de los programas ya que puede presentar variables no deseadas al momento de dar una orden inicial.
- Necesidad de experiencia: no es un lenguaje de programación apto para personas que están empezando la programación debido a su filosofía orientado a los objetos.
- Sintaxis: el lenguaje de Java evoluciona lento.
- Dependencia: Java utiliza una máquina virtual llamada JVM, la cual es un simulador que permite disfrutar toda la experiencia dentro del sistema. Sin embargo, si esta máquina está desactivada o no cuenta con el permiso de Java, no se puede acceder a algunos contenidos.

- Necesidad de equipos aptos: requiere de dispositivos y equipos que soporten toda la potencia de los programas que se ejecuten con la tecnología.
- Limitación de opciones: sus opciones 3D son limitadas, por lo que se debe buscar herramientas que corrijan el error.

# data[].attributes.body
- JDK Alpha y Beta (1995): fueron las primera versiones. Su navegador web se llamó WebRunner.
- JDK 1.0 (23 de enero de 1996): fue la primera versión estable de Java lanzada. Su nombre en clave era Oak .
- JDK 1.1 (19 de febrero de 1997): incluyó algunas adiciones como: el concepto de clase interior, JavaBeans, JDBC, RMI, remodelaron el modelo de eventos de AWT, reflection, compilador JIT, soporte de internalización  y Unicode con origen en Taligent.
- J2SE 1.2 (8 de diciembre de 1998): su nombre clave fue: patio de juegos. Reemplazó a JDK para reconocer la plataforma base de J2EE. Se triplicó el trabajo de la plataforma a 1520 clases en 59 paquetes. Algunas adiciones que se incluyeron son: el complemento de Java, Java IDL, marco de cobros, la API gráfica de Swing, La JVM de Sun se equió con un compilador JIT por primera vez.
- J2SE 1.3 (8 de mayo de 2000): su nombre en clave fue Kestrel. Algunas adiciones fueron: HotSpot JVM incluido, RMI se modificó para admitir la compatibilidad opcional con CORBA, JNDI, arquitectura de depurador de plataforma Java, JavaSound y clases de proxy sintéticas.
- J2SE 1.4 (6 de febrero de 2002): su nombre en clave fue Merlín. Fue la primera plataforma Java que se lanzó bajo el Proceso de la comunidad Java. Algunas adiciones fueron: bibliotecas mejoradas, expresiones regulares de Perl incluidas, soporte IPv6, encadenamiento de excepciones proporcionado, API de registro, API de E / S de imágenes para leer y escribir imágenes en formatos como JPEG y PNG, analizador XML, procesador XSLT integrados, extensiones de seguridad y criptografía.

- J2SE 5.0 (30 de septiembre de 2004): su nombre en clave fue tigre. Se agregaron nuevas características: seguridad de tipo en tiempo de compilación para las colecciones y elimina la necesidad de la mayoría de encasillamientos, metadatos, autoboxing/unboxing, enumeraciones, mejorado para cada bucle, importaciones estáticas y semántica de ejecución mejorada para programas Java de subprocesos múltiples.
Java 5 fue la última versión de Java que admitió oficialmente la línea Microsoft Windows
- Java SE 6 (11 de diciembre de 2006): su nombre en clave fue Mustang. Algunas adiciones fueron: se eliminó el soporte para versiones anteriores de Win9x, soporte de lenguaje de secuencias de comandos, API genérica para una estrecha integración con lenguajes de secuencias de comandos, soporte de servicio web mejorado, soporte JDBC 4.0. Después del lanzamiento de Java 6, la compañía Sun lanzó muchas actualizaciones para corregir errores.
- Java SE 7 (28 de julio de 2011): su nombre en clave fue Dolphin. Algunas adiciones fueron: soporte JVM para lenguajes dinámicos, puntero comprimido de 64 bits, se agregaron cadenas en el interruptor, gestión automática de recursos en declaración de prueba, se permiten guiones bajos en literales numéricos, literales enteros binarios, interfaz de tipo mejorada para crear instancias genéricas, captura y lanzamiento mejorados, se proporcionan conjuntos de reglas de implementación de Java.
- Java SE 8 (18 de marzo de 2014): su nombre en clave fue Spider. Incluyó: soporte a nivel de idioma para expresiones Lambda, permitió a los desarrolladores incrustar código JavaScript en aplicaciones, anotación de tipos de Java, API de fecha y hora proporcionada, repetición de anotaciones, lanzamiento de aplicaciones JavaFX y eliminación de generación permanente.
- Java SE 9 (21 de septiembre de 2017): incluye lo siguiente: modularización del JDK bajo Proyecto Jigsaw, API de moneda y dinero proporcionada, estrecha integración con JavaFX, implementación Java de flujos reactivos, más actualizaciones de simultaneidad, Java Linker proporcionado y escalado y dimensionamiento automático.
- Java SE 10 (20 de marzo de 2018): algunas características que contiene son: inferencia de tipo de variable local, compilador JIT experimental basado en Java, interfaz recolector de basura, extensiones adicionales de etiquetas de idioma Unicode, etc.
- Java SE 11: se cree que esta es la próxima versión.

# data[].attributes.body
NetBeans o Xelfi en sus orígenes, inició como un proyecto estudiantil de la Facultad de matemática y física de la Universidad de Carolina en Praga, República Checa, en 1996. La meta era escribir un entorno de desarrollo integrado (IDE) para Java parecida a la de Delphi. Xelfi fue el primer entorno de desarrollo integrado escrito en Java, con su primer pre-release en 1997. Gracias al apoyo del empresario Roman Stanek, los estudiantes graduados lograron lanzar su proyecto  a otros países. El plan original era desarrollar unos componentes JavaBeans para redes. Jarda Tulach, quien diseñó la arquitectura básica de la IDE, propuso la idea de llamarlo NetBeans, a fin de describir este propósito. En 1999 la empresa Sun Microsystems negoció con los creadores de Netbeans para formar una alianza entre Java y Netbeans. Seis meses después, se tomó la decisión de hacer a NetBeans open source. Mientras que Sun había contribuido considerablemente con líneas de código en varios proyectos de código abierto a través de los años, NetBeans se convirtió en el primer proyecto de código abierto patrocinado por ellos. En Junio del 2000 NetBeans.org fue lanzado. En la actualidad NetBeans se encuentra en la versión 6.0 y 6.5. La Plataforma NetBeans es una base modular y extensible usada como una estructura de integración para crear aplicaciones de escritorio grandes. Empresas independientes asociadas, especializadas en desarrollo de software, proporcionan extensiones adicionales que se integran fácilmente en la plataforma y que pueden también utilizarse para desarrollar sus propias herramientas y soluciones.

# data[].attributes.body
Es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Es administrado por Oracle Corporation. Ofrece un entorno de desarrollo eficaz, completo, fácil de usar y es gratuito. Algunas de sus características son:

Proporciona una base modular y extensible para el desarrollo de aplicaciones.

Incluye servicios para el control del interfaz de usuario, la configuración, el almacenamiento, las ventanas, etc. El IDE está desarrollado con la misma metodología modular, por lo que puede extenderse incluyendo módulos con funcionalidades determinadas.

A pesar de ser desarrollado para Java, permite el desarrollo en otros lenguajes, como PHP o Python, mediante paquetes adicionales.