La historia de Java comenzó en 1991, en un momento en que Sun Microsystems buscaba extender su liderazgo en el mercado de estaciones de trabajo informáticas al floreciente mercado de la electrónica personal.

Poco se sabía que el lenguaje de programación que Sun estaba a punto de crear democratizaría la informática, inspiraría a una comunidad mundial y se convertiría en la plataforma para un ecosistema de desarrollo de software duradero de idiomas, plataformas de tiempo de ejecución, SDK, proyectos de código abierto y muchas herramientas.

Después de unos años de desarrollo secreto dirigido por James Gosling, Sun lanzó la emblemática plataforma Java “escribe una vez, corre en cualquier lugar” en 1995, reorientando más allá de su diseño original para televisión interactiva a aplicaciones para la floreciente World Wide Web. Para el cambio de siglo, Java estaba animando todo, desde tarjetas inteligentes hasta vehículos espaciales.

Hoy, millones de desarrolladores programan en Java. Aunque Java continúa evolucionando a un ritmo cada vez más rápido , con motivo del 25 aniversario de la plataforma, Java Magazine decidió echar un vistazo a cómo Java moldeó nuestro planeta.

🛒 Los Mejores Chollos de Amazon, ¡Agrégalos a tu Lista de Deseos!

Lo que sigue es una lista de las 25 aplicaciones Java más ingeniosas e influyentes jamás escritas, desde Wikipedia Search hasta Ghidra de la Agencia de Seguridad Nacional de EE. UU. El alcance de estas aplicaciones abarca toda la gama: exploración espacial, videojuegos, aprendizaje automático, genómica, automoción, ciberseguridad y más.

La lista de aplicaciones ha sido creada por Alexa Weber Morales, directora de contenido para desarrolladores en Oracle; tras realizar una exahaustiva investigación conjunto a la ayuda de Andrew Binstock, el ex editor en jefe de la revista Java; Margaret Harrist, ex-estratega de marketing de contenidos de la división de software de Sun.

Además de diferentes miembros de la comunidad Java más; entre los que se incluyen: Jeanne Boyarsky, Sharat Chander, Aurelio García-Ribeyro, Manish Gupta, Manish Kapur, Stuart Marks, Mani Sarkar, Venkat Subramaniam y Dalibor Topic.

Finalmente, y ya sin más deambulación, la lista de las 25 aplicaciones Java más increíbles jamás creadas.

Aplicadas al Mundo Espacial

1. Controlador Maestro Mars Rover

En 2004, Java se convirtió en el primer lenguaje de programación en expandir el alcance del sistema exterior desde la tierra.

Durante tres meses ese año, los científicos de la NASA en el Laboratorio de Propulsión a Chorro (JPL) en Pasadena, California, usaron el Planificador de Actividad Científica Maestro basado en Java, construido por el laboratorio de interfaz de robots JPL para controlar el Spirit Mars Exploration Rover mientras exploraba el planeta rojo.

La experimentación con Java había comenzado muchos años antes del laboratorio JPL a través de la creación de un sistema de comandos y control para el Mars Sojourner de 1995.

El fundador de Java, James Gosling, pasó tanto tiempo trabajando en el JPL que se convirtió en miembro de la junta asesora.

2. Explorador de trayectoria de JavaFX Deep Space

¿Planeando un vuelo espacial? Es posible que necesites herramientas de la empresa AISOLUTIONS, un contratista aeroespacial de EE.UU. cuyos productos y servicios de ingeniería han sido utilizados por empresas las empresas de defensa y agencias espaciales civiles más importantes del mundo, por más de 20 años.

El Explorador de trayectoria del espacio profundo JavaFX de la compañía, permite a los diseñadores de trayectorias aeroespaciales; calcular rutas y órbitas a lo largo y ancho del espacio más profundo.

La aplicación puede generar vistas y modelos multidimensionales para cualquier sistema planetario, lunar o asteroide.

3. NASA WorldWind

Worldwind, es un software de código abierto para científicos de cohetes usado en los lanzamientos de la NASA.

Se trata de un SDK para un globo virtual que permite a los programadores de la NASA agregar un motor de renderizado geográfico en aplicaciones Java, Web o Android.

Algo así, como un Google Earth de todo el espacio; todos los datos geoespaciales de WorldWind son generados por ingenieros de la NASA que visualizan el terreno a partir de modelos de elevación y otras fuentes de datos.

Según el sitio web: “Las organizaciones de todo el mundo usan WorldWind para monitorear los patrones climáticos, visualizar ciudades y terrenos, rastrear el movimiento de vehículos, analizar datos geoespaciales y educar a la humanidad sobre lo que ocurre con la Tierra”.

4. JMARS y JMoon

Disponible públicamente desde 2003 y aún utilizado comúnmente por los científicos de la NASA, Java Mission-planning and Analysis for Remote Sensing (JMARS) es un sistema de información geoespacial escrito por personas de la Instalación de Vuelo Espacial Mars de la Universidad Estatal de Arizona.

JMARS for the Moon (llamado JMoon por los científicos lunares) analiza imágenes de cámaras de gran angular insertadas en una nave espacial robótica que, desde su lanzamiento en 2009, ha estado orbitando la luna a una altitud de entre 50 y 200 kilómetros y que se encuentra en el espacio, enviando información de forma constante.

5. Herramienta de mapeo (SBMT)

Popular entre los científicos espaciales y desarrollado en el Laboratorio de Física Aplicada de la Universidad Johns Hopkins, SBMT utiliza datos de misiones de naves espaciales para visualizar cuerpos irregulares como asteroides, cometas y pequeñas lunas en 3D.

SBMT está escrito en Java y utiliza el kit de herramientas de visualización de código abierto (VTK) para gráficos 3D en Java.

Los equipos de misiones de vuelo para Dawn, Rosetta, OSIRIS-REx y Hayabusa2 han usado SBMT mientras exploraban cometas, asteroides y otros planetas.

🛒 Los Mejores Chollos de Amazon, ¡Agrégalos a tu Lista de Deseos!

Datos Intensivos

6. Búsqueda de Wikipedia

Es apropiado que una enciclopedia para la gente, realizada por la gente, se ejecute en software de código abierto y presente un motor de búsqueda impulsado por Java.

Lucene, escrito por Doug Cutting en 1999 y nombrado así por el segundo nombre de su esposa, fue en realidad el quinto motor de búsqueda desarrollado por Cutting.

Creó el resto de motores como ingeniero para Xerox PARC, Apple y Excite. En 2014, Wikipedia reemplazó el motor Lucene con Elasticsearch, un motor de búsqueda distribuido, habilitado para REST, que también se ha escrito en Java.

7. Hadoop

Lucene no es la única creación de Doug Cutting en la lista; inspirado en un trabajo de investigación de Google que describe el algoritmo MapReduce para procesar datos en grandes grupos de computadoras.

En 2003 Cutting escribió un framework de código abierto para las operaciones de MapReduce en Java y lo nombró Hadoop; como el elefante de juguete de su hijo.

Hadoop 1.0 se lanzó en 2006, generando la tendencia de los grandes datos e inspirando a muchas compañías a recopilar “grandes lagos de datos”, elaborar estrategias para extraer su “escape de datos” y describir los datos como “el nuevo petróleo”.

En 2008, Yahoo (donde trabajaba Cutting en ese momento) afirmó que su Search Webmap, que se ejecutaba en un clúster Linux de 10,000 núcleos, era la aplicación Hadoop de producción más grande que existía en el mundo.

Para 2012, Facebook afirmó tener más de 100 petabytes de datos en el clúster Hadoop más grande del mundo.

8. Análisis de gráficos paralelos (PGX)

El análisis gráfico se trata de comprender las relaciones y conexiones en los datos. PGX es uno de los motores de análisis de gráficos más rápidos del mundo.

Escrito en Java y publicado por primera vez en 2014 por un equipo dirigido por el investigador de Oracle Labs Sungpack Hong, PGX permite a los usuarios cargar datos de gráficos.

Además de ejecutar algoritmos analíticos como detección de comunidades, agrupación, búsqueda de rutas, clasificación de páginas, análisis de influencia, detección de anomalías, rutas análisis y coincidencia de patrones enre ellos.

Los casos de uso abundan en el campo de la salud, la seguridad, el comercio minorista y las finanzas.

9. H20.ai

El aprendizaje automático (ML) tiene una curva pronunciada y eso puede evitar que los expertos implementen grandes ideas de Machine Learning.

La plataforma de código abierto H2O.ai basada en Java creada por Java Champion Cliff Click tiene como objetivo democratizar la IA y actuar como un científico de datos virtual para aquellos que recién comienzan, así como ayudar a los expertos en ML a ser más eficientes.

En el Mundo de la Diversión

10. Minecraft

El ambiente pacífico de Minecraft, que comprende mundos ficticios, personas y construcciones a partir de bloques, tiene una fascinación constante para niños y adultos en todas partes.

Por lo que es uno de los videojuegos más populares de la historia.

Desarrollado en Java por Markus “Notch” Persson y lanzado en su versión alfa en 2009, Minecraft y su universo en 3D son una fuente interminable de creatividad.

El uso de Java en los videojuegos también permite a los programadores crear sus modificaciones propias, desde sus propias casas o en el ámbito educativo.

11. Jitter Robot y LeJOS

Antes de la aspiradora autónoma Roomba, estaba el Jitter. Un prototipo de robot construido para absorber partículas que flotan en la Estación Espacial Internacional (EEI).

Jitter pudo navegar en gravedad cero, rebotando entre las paredes y utilizando un giroscopio para orientarse. Según un informe, los cosmonautas rusos encontraron que el manejo de la rotación x, y, z del robot recuerda de manera impresionante a cómo la propia ISS controlaba su orientación.

Jitter es el prototipo con firmware LeJOS, basado en una máquina virtual Java para Lego Mindstorms, un entorno de hardware y software de Lego para desarrollar robots programables a partir de la construcción de bloques de juguetes.

El sistema operativo del juguete se remonta al proyecto TinyVM de 1999 iniciado por José Solórzano, que se transformó en leJOS y fue dirigido por Brian Bagnall, Jürgen Stuber y Paul Andrews.

Este entorno, tiene muchas clases específicas de la programación en robótica simplificadas, por la naturaleza hacía la orientación a objetos heredada de Java, lo que permite a cualquier persona poder aprovechar los controladores avanzados y los algoritmos de su comportamiento.

12. Applets de Java

La palabra applet apareció por primera vez en 1990 en PC Magazine, según el Oxford English Dictionary; pero los applets realmente no despegaron hasta que apareció Java en 1995.

Los applets de Java eran pequeños programas que podían iniciarse en una página web (en un framework, una nueva ventana, Sun’s AppletViewer, o una herramienta de prueba) y ejecutar en una JVM separada del navegador.

Algunos atribuyen el éxito inicial de Minecraft al hecho de que los jugadores podían jugar en un navegador web a través de applets de Java en lugar de tener que descargar e instalar el juego.

Aunque los applets de Java han quedado en desuso desde la versión de Java 9 y se eliminaron en 2018 de Java SE 11, durante un tiempo fueron la mejor opción para implementar juegos a través del navegador. De hecho: los applets de Java también podían acceder a la aceleración de hardware.

🛒 Los Mejores Chollos de Amazon, ¡Agrégalos a tu Lista de Deseos!

Aplicaciones de programación

13. NetBeans y el IDE de Eclipse

El entorno de desarrollo integrado que primero cautivó al mundo de Java fue NetBeans, que comenzó en la Universidad Charles de Praga en 1996 (bajo el nombre de Xelfi) y se comercializó en 1997 por una compañía del mismo nombre fundada por el empresario Roman Staněk.

Más tarde, la empresa Sun System compró el IDE que admite todos los tipos de aplicaciones Java, en 1999 y lo compró al año siguiente. En 2016, Oracle donó todo el proyecto NetBeans a la Apache Software Foundation.

Otro entorno de desarrollo integrado basado en Java popular es el IDE de Eclipse de código abierto, que puede usarse no solo para la codificación de Java sino también para otros lenguajes de programación que van desde Ada hasta Scala.

Lanzado en 2001 por IBM y basado en IBM VisualAge, el SDK de Eclipse está destinado a desarrolladores de Java, pero puede ampliarse a través de complementos.

El IDE de Eclipse se traspaso de IBM a la Fundación Eclipse en 2004 y sigue siendo uno de los principales IDE disponibles, en la actualidad.

14. IntelliJ IDEA

Hay muchos IDE, pero IntelliJ IDEA se convirtió en uno de los favoritos después de su introducción en 2001.

Hoy, IntelliJ IDEA es el entorno de desarrollo ideal para lenguajes tan diversos como Python, Ruby y Go.

Escrito en Java, IntelliJ IDEA y el conjunto de IDE relacionados de JetBrains: Agregan funciones de productividad y navegación en las que muchos desarrolladores han llegado a confiar.

Estos incluyen indexación de código, refactorización, finalización de código (que precede al autocompletado de texto en teléfonos inteligentes) y análisis dinámico que detecta errores (similar a un corrector ortográfico).

15. Byte Buddy

El ingeniero de software con sede en Oslo Rafael Winterhalter, es el creador de la biblioteca Java de código abierto Byte Buddy.

El propio creador admite dedicar su vida, a lo que equivale a un pequeño nicho. No obstante, el fruto de su dedicación es muy popular.

Byte Buddy, es una biblioteca de generación y manipulación de código para crear y modificar clases Java durante el tiempo de ejecución de una aplicación Java y sin la ayuda de un compilador.

Byte Buddy es utilizada en herramientas Java muy importantes; como Hibernate y Mockito, y es instalado hasta 20 millones de veces al mes, o al menos, eso dice Winterhalter.

16. Jenkins

Creado en 2004 por el ingeniero de Sun Microsystems Kohsuke Kawaguchi, Jenkins es un poderoso servidor de integración continua creado a base de código abierto.

Escrito en Java, Jenkins ayuda a construir, probar e implementar aplicaciones de forma rápida y automática. A menudo se reconoce como una de las primeras herramientas de DevOps que hizo posible la “infraestructura como código”.

Jenkins junto a sus más de 1500 complementos aportados por la comunidad abordan innumerables tareas de implementación y testing, desde la implementación del trabajo a través de GitHub, pasando por el apoya a los desarrolladores daltónicos, hasta la generación de archivos JAR de MySQL.

🛒 Los Mejores Chollos de Amazon, ¡Agrégalos a tu Lista de Deseos!

17. GraalVM

Un equipo de investigadores en Zurich, liderado por Thomas Wuerthinger de Oracle Labs, ha pasado años perfeccionando tres ideas:

  • ¿Qué pasaría si escribieras un compilador en Java (la JVM original está escrita en C)?
  • ¿Qué pasaría si pudiera ejecutar cualquier programa escrito en cualquier idioma?
  • ¿Y si ese compilador fuese extremadamente eficiente?

Sesenta trabajos de investigación después, nace GraalVM, superando sus expectaticas y terminando por convertirse en un producto comercial.

Entre los mayores entusiastas de esta tecnología está Twitter, que utiliza GraalVM para mejorar la velocidad de sus servicios y su eficiencia.

18. Micronaut

Los desarrolladores que codifican para la nube necesitan pensar cuidadosamente sobre cuánta memoria usa su aplicación y cómo la aplicación usa esa memoria.

“Debes hacer que la aplicación responda muy bien a los reinicios y se cierre y abrá funcionando de forma ágil, que se optimice en los tiempos de inicio y en el consumo de memoria”

Dice Graeme Rocher, el creador de Micronaut.

Micronaut, es un framewor de Java dedicado a los microservicios que utiliza metadatos de anotación para que la máquina virtual de Java sea capaz de compilar el código de la aplicación de manera eficiente.

19. WebLogic Tengah

En 1997, WebLogic Tengah se convirtió en la primera implementación sustancial de un servidor Java empresarial.

“Fue anterior a Java 2 Enterprise Edition y se convirtió en la oferta principal de BEA, lo que finalmente llevó a la adquisición por parte de Oracle de la empresa BEA Systems”

Dice Andrew Binstock, ex editor jefe de Java Magazine y del Dr. Dobb’s Journal.

Casi al mismo tiempo, el éxito de IBM con el Proyecto San Francisco, un framework de objetos de negocio, “fue lo que realmente movió a Java hacía un enfoque interesante con la que jugaban los chicos más geniales y la convirtió en una herramienta comercial seria”, dice Binstock.

Hoy, Oracle WebLogic Server sigue siendo el servidor líder en aplicaciones de Java muy importantes. Sin embargo, todavía existe una mejor alternativa: El servidor de aplicaciones de código abierto: Glassfish.

Que a pesar de haberse creado por Sun System en 2005, fue donado a la Fundación Eclipse en 2018.

20. Colecciones de Eclipse

Hay una razón fundamental, por la que muchos de los trabajos de desarrolladores bien remunerados se centran en los bancos de inversiones, las bolsas de valores y otras compañías de servicios financieros.

Y es que se requieren fuertes habilidades de Java, puesto que es un lenguaje de programación perfecto para los casos de uso que esas compañías requieren, como pueden ser: el manejo de la concurrencia, la gestión de múltiples hilos de ejecución, etc.

Originalmente conocido como Goldman Sachs Collections y luego donado a la Fundación Eclipse, Eclipse Collections se basa en las características nativas del rendimiento intensivo de Java ofreciendo estructuras de datos optimizadas y una API rica, funcional y fluida.

El importante programador de Java, Mani Sarkar, señala que Eclipse Collections contiene almacenamiento en caché, bibliotecas de concurrencia, anotaciones comunes, procesamiento de cadenas, entrada / salida y mucho más.

21. NSA Ghidra

En la Conferencia RSA de 2019 en San Francisco, la Agencia de Seguridad Nacional de EE. UU. presentó una herramienta de código abierto basada en Java llamada Ghidra.

La herramienta Ghidra en la actualidad, es muy utilizada por los investigadores y profesionales del campo de la seguridad; se utiliza con el objetivo de comprender cómo funciona el malware e intentar verificar su propio código en busca de posibles debilidades.

Esta plataforma de ingeniería inversa puede descompilar el software del lenguaje de la máquina nuevamente en código fuente (siempre que el software este creado por lenguajes como Java).

22. Navegador de genoma integrado

La carrera para mapear el genoma humano comenzó en 1990 y terminó 13 años después, cuando los investigadores médicos lograron secuenciar los 3.000 millones de pares de bases de ADN del biotecnólogo Craig Venter, después de una década de trabajo que involucró a 3.000 personas y un costo de 3.000 millones de dólares.

Una vez que se completó la secuencia, los científicos estaban ansiosos por sumergirse en el código fuente de la especie humana, pero ¿Cómo podrían hacer eso?

Entonces, con el paso del tiempo, apareció el navegador de genoma humano basado en Java, una herramienta de visualización desarrollada por un equipo que incluye a la profesora en bioinformática Ann Loraine.

Con esta herramienta, se podía explorar tanto los conjuntos de datos fundamentales como anotaciones de genes específicas.

El navegador de código abierto Integrated Genome ha permitido y permite en la actualidad, a todos los investigadores; ampliar desplazar y realizar gráficas de datos de un genoma para anotar e identificar características genéticas.

De acuerdo con este esfuerzo mundial, nace una herramienta similar proviene de la Universidad de California Santa Cruz en forma del navegador Genome, administrado por Jim Kent.

🛒 Los Mejores Chollos de Amazon, ¡Agrégalos a tu Lista de Deseos!

23. BioJava

Lanzado en 2000 y todavía utilizada, BioJava es una biblioteca de código abierto para procesar datos biológicos, dentro de un campo conocido como bioinformática.

Los científicos que usan esta biblioteca pueden trabajar con secuencias de proteínas y nucleótidos y estudiar datos sobre la traducción de gen a proteína, genómica, desarrollo filogenético y estructuras macromoleculares.

El proyecto cuenta con el apoyo de la Open Bioinformatics Foundation y sus contribuyentes en todo el mundo están financiados por una variedad de intereses farmacéuticos, médicos y científicos.

“BioJava es una opción popular para el desarrollo de métodos y software gracias a las herramientas disponibles para Java y su portabilidad multiplataforma”

Escriben Aleix Lafita y sus compañeros en un artículo de 2019

24. VisibleTesla

Esta aplicación basada en Java fue creada n 2013 por el entusiasta del automóvil Tesla, Joe Pasqua, como un programa gratuito para monitorear y controlar su Tesla Model S.

VisibleTesla, inspirado en la comunidad de Tesla Motors Club, ofrece características similares a las que se encuentran en el software oficial de los automóviles eléctricos.

Los usuarios pueden configurar geofencing y notificaciones para cosas como una puerta desbloqueada o el estado de carga, así como también recopilar y manipular datos del viaje.

El código fuente abierto del proyecto está en GitHub.

25. SmartThings

La aplicación del Internet de las Cosas (IoT) desarrollada por SmartThings, cofundada en 2012 por Alex Hawkinson y luego financiada con 1.2 millones de dólares recaudados en Kickstarter, permite controlar y automatizar todo, desde luces domésticas, cerraduras, cafeteras, termostatos y radios hasta el hogar sistemas de seguridad, todo a través de un teléfono inteligente o tableta.

La aplicación utiliza el framework Micronaut basado en Java, del que se habla más arriba, para que los servicios basados ​​en la nube puedan operar a rápida velocidad.

La empresa fue adquirida por Samsung Electronics en 2014 por la friolera de 200 millones de dólares.

Conclusión

Hasta aquí la impresionante recopilación de programas creados por el lenguaje de programación Java, si hechas en falta algún gran software Java; puedes contactarme a través de las redes sociales @ciberninjas en todas ellas; ¡¡¡Hasta la vista, Ciberninjas!!!

Fuente: Blog de Oracle por Alexa Morales directora de contenido para desarrolladores en Oracle

Relacionados

👨‍💻 Los 20 Mejores Frameworks Java 2021

💻 ▷ Segunda actualización de Java para Visual Studio Code en 2020

👨‍🎨 Palabras más usadas en cada lenguaje de programación

🥇 ▷ Cómo APRENDER a Programar GRATIS en 2020: Mejores libros recomendados para programadores

🥇 ▷ Las 15 Mejores Lenguajes de Programación 👨‍💻 para Aprender en 2020

🛒 Los Mejores Chollos de Amazon, ¡Agrégalos a tu Lista de Deseos!

Las 25 mejores aplicaciones Java jamás programadas. Desde la exploración espacial hasta la genómica, desde los compiladores inversos hasta los controladores robóticos, Java está en el corazón del mundo de hoy. Estas son algunas de las innumerables aplicaciones Java que se destacan entre la mayoría