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 duradero de desarrollo de software 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.

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.

Esta lista, sin ningún orden en particular, está lejos de ser exhaustiva. Si crees que he dejado algo obvio, ¡deja las cosas claras! En Twitter, tuitea a @OracleJavaMag con los hashtags #MovedbyJava y # Top25JavaApps. O envíe un correo electrónico a javamag_us@oracle.com .

En una nota personal, comencé mi mandato como editor en jefe de la revista Software Development en 2000, cuando los nuevos desarrolladores de Java del área de la Bahía de San Francisco estaban en los titulares. Recuerdo haber devorado la primera edición de Head First Java , de Kathy Sierra y Bert Bates. Sus explicaciones muy visuales dejaron en claro no solo la sintaxis del lenguaje sino también los conceptos de programación orientados a objetos que condujeron al éxito de Java. Poco sabía entonces que, completamente 20 años después, Java seguiría siendo una fuerza poderosa en mi propia carrera, ahora en Oracle.

Para aquellos en el equipo de desarrollo de Oracle Java (muchos de los cuales trabajaron en Sun antes de que Oracle adquiriera la compañía en 2010) que ayudaron a desarrollar esta lista: Gracias. Mi agradecimiento también a Andrew Binstock, el ex editor en jefe de la revista Java ; mi colega Margaret Harrist, quien en 2006 era la estratega de marketing de contenidos de la división de software de Sun; y miembros de la comunidad Java como usted, muchos de los cuales hablé mientras hacía esta investigación, incluidos Jeanne Boyarsky, Sharat Chander, Aurelio García-Ribeyro, Manish Gupta, Manish Kapur, Stuart Marks, Mani Sarkar, Venkat Subramaniam y Dalibor Topic.

Y ahora para las 25 mejores aplicaciones Java jamás escritas …

Frontera final

Mundos del espacio

1. Controlador Maestro Mars Rover. En 2004, Java se convirtió en el primer lenguaje de programación en expandir el alcance planetario de la humanidad. 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 de 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 en JPL a través de la creación de un sistema de comando y control para el Mars Sojourner de 1995. El fundador de Java, James Gosling, pasó tanto tiempo en 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 necesite herramientas de aisolutions , un contratista aeroespacial de EE. UU . Cuyos productos y servicios de ingeniería han sido utilizados por empresas de defensa y agencias espaciales civiles durante más de 20 años.

El Explorador de trayectoria de espacio profundo JavaFX de la compañía  permite a los diseñadores de trayectoria calcular rutas y órbitas del sistema de tres cuerpos en el espacio profundo. La aplicación puede generar vistas y modelos multidimensionales para cualquier sistema planeta-luna o asteroide y filtrar millones de puntos en una búsqueda visual densa.

3. NASA WorldWind. El trabajo de los científicos de cohetes se volvió gratuito para que todos lo usen con el lanzamiento de la NASA del código abierto WorldWind , un SDK para un globo virtual que permite a los programadores agregar el motor de renderización geográfica de la agencia espacial estadounidense a sus propias aplicaciones Java, web o Android. Yendo mucho más allá de Google Earth, 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 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ámara gran angular del Lunar Reconnaissance Orbiter, una nave espacial robótica que, desde su lanzamiento en 2009, ha estado orbitando la luna a una altitud de 50 a 200 kilómetros y enviando su observaciones al sistema de datos planetarios de la NASA.

5. Herramienta de mapeo de cuerpo pequeño (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 un planeta enano.

Intensidad de datos

Mundos del espacio

6. Búsqueda en 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 por el segundo nombre de su esposa, fue en realidad el quinto motor de búsqueda desarrollado por Cutting. Creó a los demás 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, también escrito en Java.

7. Hadoop. Lucene no es la única creación de corte que está en nuestra 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 marco de código abierto para las operaciones de MapReduce en Java y lo nombró Hadoop, después del elefante de juguete de su hijo. Hadoop 1.0 fue lanzado en 2006, generando la tendencia de los grandes datos e inspirando a muchas compañías a recolectar «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 existe. 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, según los puntos de referencia . 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 y 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 en ellos. Los casos de uso abundan en salud, seguridad, comercio minorista y finanzas.

9. H2O.ai. El aprendizaje automático (ML) tiene una curva pronunciada, y eso puede evitar que los expertos en dominios implementen grandes ideas de ML. El ML automatizado (AutoML) ayuda al inferir algunos de los pasos del proceso de ML, como la ingeniería de características, el entrenamiento y ajuste de modelos, y la interpretación. La plataforma H2O.ai de código abierto, 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.

Mundos de diversión

Mundos de diversión

10. Minecraft. El ambiente pacífico de este juego, que comprende biomas, personas y moradas que construyes a partir de bloques, tiene una fascinación duradera para niños y adultos en todas partes, lo que lo convierte en el videojuego más popular de la historia. Desarrollado en Java por Markus «Notch» Persson y lanzado en alfa en 2009, Minecraft y su universo 3D son una fuente interminable de creatividad, porque no hay dos mundos engendrados iguales. El uso de Java en los videojuegos también permite a los programadores en casa y en la escuela crear sus propias modificaciones .

11. Jitter robot y leJOS. Antes de la aspiradora autónoma Roomba, estaba el Jitter . Un prototipo de robot construido para aspirar partículas que flotan en la Estación Espacial Internacional (EEI), Jitter pudo navegar en gravedad cero, rebotando en 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 cómo la ISS controlaba su orientación. Jitter es el prototipo de leJOS más fuera de este mundo, la máquina virtual Java para Lego Mindstorms, el entorno de hardware y software de Lego para desarrollar robots programables a partir de bloques de construcción 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 con todas las funciones tiene muchas clases específicas de programación de robótica simplificadas por la naturaleza orientada a objetos de Java, lo que permite a cualquiera aprovechar los controladores avanzados y los algoritmos de 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 marco, 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 Java 9 y se eliminaron en 2018 de Java SE 11, durante un tiempo fueron el juego más rápido de la ciudad. Dato curioso: los applets de Java también podrían acceder a la aceleración de hardware 3D, haciéndolos populares para las visualizaciones científicas.

Código de honor

Mundos de codificación

13. NetBeans y el IDE de Eclipse. El entorno de desarrollo integrado que primero cautivó al mundo de Java fue NetBeans , comenzó en la Universidad Charles de Praga en 1996 (bajo el nombre de Xelfi) y se comercializó en 1997 por una empresa del mismo nombre fundada por el empresario Roman Staněk. Sun compró el IDE modular, que admite todos los tipos de aplicaciones Java, en 1999 y lo compró en código abierto al año siguiente. En 2016, Oracle donó todo el proyecto NetBeans a la Apache Software Foundation.

Otro entorno de desarrollo integrado popular basado en Java 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 lanzó de IBM a la Fundación Eclipse en 2004, y sigue siendo uno de los principales IDE disponibles.

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 marco para muchos IDEs para lenguajes tan diversos como Python, Ruby y Go. Escrito en Java, IntelliJ IDEA y el conjunto de IDE relacionados de JetBrainsagregue 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). «IntelliJ IDEA ha ayudado a superar los desafíos de administrar y depurar aplicaciones complejas basadas en Java y JVM en un solo marco», dice el campeón de Java Mani Sarkar, un ingeniero de software e información independiente con sede en el Reino Unido. «Hacen que los desarrolladores se sientan efectivos, productivos y, sobre todo, felices cuando usan sus herramientas».

15. Byte Buddy. El ingeniero de software con sede en Oslo Rafael Winterhalter , creador de la biblioteca Java de código abierto Byte Buddy , admite dedicar su vida, a veces con un enfoque enloquecedor, a lo que equivale a un pequeño nicho. No obstante, el fruto de su dedicación es muy popular: la biblioteca de generación y manipulación de código de tiempo de ejecución Byte Buddy, utilizada en herramientas Java como Hibernate y Mockito, se descarga 20 millones de veces al mes, dice Winterhalter.

16. Jenkins. Creado en 2004 por el ingeniero de Sun Microsystems Kohsuke Kawaguchi, Jenkins es un poderoso servidor de integración continua 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 y sus más de 1500 complementos aportados por la comunidad abordan innumerables tareas de implementación y prueba, desde trabajar con GitHub, hasta apoyar a los desarrolladores daltónicos, hasta proporcionar un archivo JAR de MySQL Connector.

17. GraalVM. Un equipo de investigadores en Zúrich, dirigido por Thomas Wuerthinger de Oracle Labs , ha pasado años perfeccionando tres ideas: ¿Qué pasaría si escribiera 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 fuera extremadamente eficiente? Sesenta trabajos de investigación publicados más tarde, GraalVM superó las probabilidades y se convirtió en un producto comercial. Entre los entusiastas entusiastas de esta tecnología está Twitter, que utiliza GraalVM para mejorar la velocidad de sus servicios y la eficiencia informática .

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. «Debe hacer que la aplicación responda muy bien a los reinicios y la conmutación por error, y al apagar y volver a encender, y optimizarla en términos de tiempo de inicio y consumo de memoria», dice Graeme Rocher, creador de Micronaut , un marco de Java para microservicios que utilizan metadatos de anotación para que la JVM pueda compilar el código de bytes 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 condujo a la adquisición de Oracle de BEA Systems», dice Andrew Binstock, ex editor en jefe de Java Magazine y del Dr. Dobb’s Journal . Casi al mismo tiempo, el éxito de IBM con el Proyecto San Francisco, un marco de objetos de negocio, «fue lo que realmente movió a Java de una cosa nueva e interesante con la que jugaban los chicos geniales y la convirtió en una herramienta comercial seria», dice Binstock. Hoy, Oracle WebLogic Server sigue siendo el servidor de aplicaciones Java líder. Sin embargo, todavía existe una alternativa: el servidor de aplicaciones de código abierto GlassFish , que comenzó en Sun en 2005, fue donado en 2018 a la Fundación Eclipse.

20. Colecciones Eclipse. Hay una razón por la cual muchos trabajos de desarrollador bien remunerados en bancos de inversión, bolsas de valores y otras compañías de servicios financieros requieren fuertes habilidades de Java: el lenguaje de programación es experto en el manejo de la concurrencia, la gestión de múltiples hilos de ejecución comunes en el comercio de alta frecuencia y otros grandes -escala transacciones financieras. Originalmente conocido como Goldman Sachs Collections y luego donado a la Fundación Eclipse, Eclipse Collections se expande en las características nativas de rendimiento intensivo de Java «con estructuras de datos optimizadas y una API rica, funcional y fluida», dice el campeón de Java Mani Sarkar. Sarkar señala que Eclipse Collections contiene almacenamiento en caché, compatibilidad con primitivas, bibliotecas de concurrencia, anotaciones comunes, procesamiento de cadenas, entrada / salida y más.

21. NSA Ghidra. En la Conferencia RSA 2019 en San Francisco, la Agencia de Seguridad Nacional de EE. UU. Introdujo una herramienta de código abierto basada en Java llamada Ghidra , que los investigadores y profesionales de seguridad ahora usan para comprender cómo funciona el malware y verificar su propio código en busca de debilidades. Esta plataforma de ingeniería inversa puede descompilar el software del lenguaje de la máquina nuevamente en el código fuente (lenguajes como Java). La herramienta tiene una historia histórica, si no infame: su existencia fue revelada al público en marzo de 2017 a través de WikiLeaks .

Mapeando el genoma

Mundos de genómica

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 a un costo de US $ 3.000 millones. Una vez que se completó la secuencia, los científicos estaban ansiosos por sumergirse en el código fuente de nuestra especie, pero ¿cómo? Ingrese al navegador de genoma basado en Java, una herramienta de visualización desarrollada por un equipo que incluye a la profesora de bioinformática Ann Loraine, para explorar tanto los conjuntos de datos fundamentales como las anotaciones genéticas de referencia. El navegador de código abierto Integrated Genomepermite a los investigadores ampliar, desplazar y graficar datos genómicos para identificar y anotar características genéticas. De acuerdo con este esfuerzo mundial, una herramienta similar proviene de la Universidad de California Santa Cruz en forma de navegador Genome, administrado por Jim Kent.

23. BioJava. Lanzado en 2000 y todavía fuerte, BioJavaes una biblioteca de código abierto para procesar datos biológicos, 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 genómicos. «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 colegas en un artículo de 2019 titulado «BioJava 5: una biblioteca de bioinformática de código abierto dirigida por la comunidad». El documento continúa señalando que BioJava había aceptado contribuciones de 65 desarrolladores diferentes desde 2009,

Cosas favoritas’

Mundos de iot

24. VisibleTesla. Esta aplicación basada en Java fue creada por el entusiasta del automóvil Tesla Joe Pasqua en 2013 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 oficial del fabricante de automóviles eléctricos. aplicación movil. 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 de viaje. El código fuente abierto del proyecto está en GitHub .

25. SmartThings. La aplicación de 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, le permite controlar y automatizar todo, desde luces, cerraduras, cafeteras, termostatos y radios para el hogar. sistemas de seguridad, todo a través de un teléfono inteligente o tableta. La aplicación utiliza el marco Micronaut basado en Java (ver # 18) para que sus servicios basados ​​en la nube puedan operar a velocidades de segundo. La empresa fue adquirida por Samsung Electronics en 2014 por la friolera de US $ 200 millones.

Alexa Morales

Alexa Weber Morales es directora de contenido para desarrolladores en Oracle. Morales es el ex editor en jefe de la revista Software Development y tiene más de 15 años de experiencia como estratega y periodista de contenido tecnológico.