La efectividad irrazonable del lenguaje de programación Julia

No hay fiesta como una fiesta de conferencia virtual de lenguaje de programación

Últimamente me he encontrado con muchos científicos felices y emocionados. «Correr hacia» en el sentido virtual, por supuesto, ya que las conferencias y otras oportunidades para chocar con los científicos en el espacio carnal han sido prácticamente eliminadas. La mayoría de los científicos creen en la teoría de los gérmenes de la enfermedad.

De todos modos, estos científicos y matemáticos están entusiasmados con una nueva herramienta. No es un nueva partícula acelerador ni un supercomputadora. En cambio, esta nueva y emocionante herramienta para la investigación científica es … un lenguaje informático.

¿Cómo puede ser emocionante un lenguaje informático? Seguramente, algunos son mejores que otros, dependiendo de tus propósitos y prioridades. Algunos se ejecutan más rápido, mientras que otros son más rápidos y fáciles de desarrollar. Algunos tienen un ecosistema más grande, lo que le permite tomar prestado código probado en batalla de una biblioteca y hacer menos trabajo usted mismo. Algunos se adaptan bien a un tipo particular de problemas, mientras que otros son buenos para ser de propósito general.

Para los científicos que computan, los lenguajes, la calidad de los compiladores y bibliotecas y, por supuesto, las máquinas en las que se ejecutan, siempre han sido importantes. Para aquellos cuyo trabajo es simular la atmósfera o diseñar armas nucleares, Fortran era la herramienta tradicional de elección (y todavía lo es a menudo, aunque ahora tiene más competencia). Ese lenguaje ha dominado el mercado porque hay compiladores disponibles que pueden aprovechar las grandes supercomputadoras. Para la raza actual de científicos de datos, Python es actualmente popular, debido al impulso de su ecosistema y su interactividad y ciclo de desarrollo rápido.

Hace seis años, yo escribió en estas páginas sobre la prominencia duradera de Fortran para la informática científica y lo comparó con varios otros lenguajes. Terminé ese artículo con una predicción: que, en 10 años, un nuevo lenguaje llamado Julia tenía muchas posibilidades de convertirse en el que los científicos utilizarían cuando aborden problemas numéricos a gran escala. Sin embargo, mi predicción no fue muy precisa.

En realidad, solo tardó Julia medio ese momento.

Suficiente emoción para una estafa

Hablando con científicos en los últimos años, el lenguaje informático Julia ha creado genuinamente una nueva ola de entusiasmo en la industria. Pero cuando escribí sobre su potencial, no entendí por qué el lenguaje despegaría.

Basé mi evaluación en la combinación única de Julia de sintaxis conveniente con un rendimiento sin concesiones. En ese momento, aunque Julia todavía estaba en estado anterior a 1.0, ya había mucha charla emocionada. Julia parecía haber resuelto el “problema de los dos idiomas”, un enigma que a menudo enfrentan los programadores de Python, así como los usuarios de otros lenguajes expresivos interpretados. Escribes un programa para resolver un problema en Python, disfrutando de su agradable sintaxis e interactividad. El programa funciona en una versión de prueba de su problema, pero cuando intenta escalarlo a algo más realista, es demasiado lento. Esto no es tu culpa. Python es inherentemente lento, algo que no importa para algunos tipos de aplicaciones, pero sí importa para su gran simulación. Después de aplicar varias técnicas para acelerarlo, pero solo obtener ganancias modestas, finalmente recurre a reescribir las partes del cálculo que consumen más tiempo en C (más comúnmente). Ahora es lo suficientemente rápido, pero ahora también necesita mantener el código en ambos idiomas, de ahí el problema de los dos idiomas.

Aunque la solución de Julia a este problema atrajo a científicos y otras personas al lenguaje, esta no es la razón del nuevo entusiasmo en torno a la plataforma. Hay algo mas.

a
Agrandar / El estandarte de la JuliaCon 2020

Mientras trabajaba en este artículo, se llevó a cabo la JuliaCon de este año, la convención anual de Julia (en línea, por supuesto). Por lo general, el programa de una reunión de informática está lleno de títulos sobre temas relacionados con la programación, compiladores, algoritmos, optimización y otros temas de informática. Y aunque hubo mucho de eso en la reunión de Julia de este año, hojear los títulos deja la impresión de que uno se ha topado con una conferencia científica. Hay presentaciones sobre todo, desde dinámica de fluidos hasta imágenes cerebrales y procesamiento del lenguaje. Sin embargo, a pesar de la asombrosa variedad de campos, ver las presentaciones da un sentido de comunidad en torno a una actitud compartida que parece haber sido influenciada por el movimiento del software libre.

Todos el código está en GitHub. Si está interesado en utilizar el algoritmo de alguien en su investigación, puede leer la fuente y tendrá acceso a la última versión a medida que se desarrolle. Los científicos de cierta edad sabrán cuán enormemente diferente es esto de cómo solía proceder la investigación computacional. En los viejos tiempos, el código rara vez salía del laboratorio.

La comunidad de Julia también está unificada por algo más: un placer compartido en el poder mágico (esta palabra surgió más de una vez) de Julia para facilitar la colaboración y la reutilización del código. Considere solo algunos de los elogios de los presentadores de la JuliaCon 2020:

Esa es una de las cosas que hace que Julia sea tan poderosa en la solución de estos problemas. […] Esta integración le da a Julia una ventaja sobre otros idiomas […] hemos podido desarrollar estas soluciones en muy poco tiempo:

León Alday, molecular modeling

Julia es realmente el lenguaje que permite que exista tal proyecto:

George Datseris, Dr. Watson, asistente científico

Es un placer programar a Julia en:

Mauro Werder, espesor del hielo glaciar

El idioma de Julia […] es una herramienta particularmente ágil:

Valeri Vasquez, dinámica de vectores de enfermedades

Julia fue la elección obvia:

Rafael Schouten, Simulaciones espaciales

[Julia allows] aprovechar herramientas de todas las disciplinas para avanzar en la investigación del cáncer:

Meghan Ferrall-Fairbanks, dinámica de tumores

Este trabajo ha sido muy agradable de hacer en Julia debido a las bonitas abstracciones que permiten un código muy general:

Vilim Štih, dinámica del cerebro del pez cebra

Es realmente bueno tener un lenguaje rápido que se pueda usar para escribir todo. […] pero lo que realmente me impresiona en estos días es otra cosa: Julia de alguna manera puede aumentar mi productividad […]. Julia hace que sea fácil pensar en el nivel correcto de abstracción «.

Petr Krysl, ecuaciones diferenciales parciales

Por qué hacer ciencia en Julia es increíble […] Interacción entre paquetes = ¡pura magia !:

George Datseris Análisis de la interpretación musical

Todos estos científicos han descubierto que Julia aumenta las oportunidades de colaboración y hace que sea más fácil que nunca incorporar el trabajo de otros y permitirles escribir código que se pueda utilizar. por otros de formas imprevistas. La clave de estos poderes está en la solución de Julia a un viejo enigma diferente, esta vez de la informática: el problema de expresión.

READ  Revisión crítica de Apple Watch Series 7: pantalla más grande, carga más rápida, pero ...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *