typestar

Lenguajes

Julia

Un lenguaje dinámico para computación numérica y científica, compilado a velocidad casi nativa.

Practica Julia

27 pasos en 1 tours, desde lo básico hasta programas completos.

Los tours

Primera versión
2012
Creado por
Jeff Bezanson, Stefan Karpinski, Viral Shah, and Alan Edelman
Tipado
Dinámico con compilación JIT; el despacho múltiple le da forma a todo
Los fragmentos siguen
1.12
Extensiones de archivo
.jl

Para qué sirve

Julia existe porque el cómputo científico vivía partido en dos: prototipar en un lenguaje dinámico amable y reescribir las partes lentas en C o Fortran. Julia compila con JIT el código dinámico y matemático a velocidad de máquina, así que el lenguaje de exploración y el de producción son el mismo archivo. Modelos climáticos (CliMA), simulación farmacéutica (Pumas), los modelos DSGE de la Reserva Federal y una franja ancha de la astronomía y la optimización corren sobre él.

La idea insignia es el despacho múltiple: una función es una familia abierta de métodos, y el runtime elige uno según los tipos de todos los argumentos. Suena académico y resulta ser la razón práctica de que los paquetes de Julia compongan — un solver de ecuaciones diferenciales, una biblioteca de diferenciación automática y un paquete de unidades que jamás se conocieron trabajan juntos de rutina sobre los mismos números.

El ecosistema se centra en la ciencia: DifferentialEquations.jl es quizá la suite de solvers más fuerte en cualquier lenguaje, Flux hace machine learning en Julia puro, y las pilas de gráficos, estadística y optimización son profundas. Las contras son honestas: latencia en la primera llamada mientras el JIT calienta (mucho mejor desde 1.9), y un estante de bibliotecas de propósito general más delgado que el de Python.

De dónde viene

Julia empezó en 2009 en el MIT y se anunció al mundo en 2012 con un post titulado 'Why We Created Julia' que se leía como manifiesto: autores golosos que querían la velocidad de C, el dinamismo de Ruby, la matemática de Matlab y la usabilidad de Python en un solo lenguaje. El diseño centrado en despacho de Jeff Bezanson, con Stefan Karpinski, Viral Shah y Alan Edelman, volvió plausible la gula.

La versión 1.0 llegó en la JuliaCon de 2018 con un compromiso de estabilidad que la comunidad joven necesitaba, y el lenguaje se asentó en entregas anuales. La queja del 'tiempo hasta el primer plot' — el JIT recompilando el mundo en cada sesión fresca — se respondió por partes, y de forma decisiva en 1.9 y 1.10 con el cacheo de código nativo en los paquetes.

La empresa de los fundadores, Julia Computing (hoy JuliaHub), y un ecosistema abierto y activo llevaron el lenguaje a industrias reguladas — farmacología clínica, aeroespacial, finanzas — mientras JuliaCon crecía como la cita anual de una comunidad con una carga inusual de científicos que escriben su propio código. El lenguaje sigue con licencia MIT, gobernado por su comunidad y marcadamente estable de versión.

Cómo se siente teclearlo

Julia se escribe como un lenguaje de scripting con modales matemáticos: sin llaves, bloques que cierran con la palabra end, funciones definidas en una línea con un = pelado. El punto de broadcasting es la pulsación insignia — sqrt.(xs), mags .<= 6 — que vuelve elementwise cualquier función, y el ! cuelga de cada nombre mutador como push! y sort!. Los macros abren con @, los rangos se escriben 1:10, y => arma los pares de Dict. El Unicode es idiomático en la comunidad pero este corpus se queda en ASCII, donde la sensación es de palabras limpias en minúscula, dos puntos, y ese punto omnipresente.

Practica Julia

27 pasos en 1 tours, desde lo básico hasta programas completos.

Documentación oficial

Otros lenguajes