Julia (lenguaje de programación)

Lenguaje de programación dinámica

Julia
ParadigmaMultiparadigma : despacho múltiple (paradigma primario), funcional , matriz , procedimental ( imperativo ), estructurado , reflexivo , meta , multietapa [1]
Diseñado porJeff Bezanson , Alan Edelman , Stefan Karpinski , Viral B. Shah
ReveladorJeff Bezanson , Stefan Karpinski , Viral B. Shah y otros colaboradores [2] [3]
Apareció por primera vez2012 ; hace 12 años [4] ( 2012 )
Versión estable
1.11.0 [5]  / 8 de octubre de 2024 y 1.10.5 (la única LTS );
Versión preliminar
1.10.6 (LTS) [6] / 22 de octubre de 2024 ; hace 0 días y 1.11.2 [7] en desarrollo y 1.12.0-DEV con actualizaciones diarias ( 2024-10-22 )
Disciplina de mecanografíaDinámico , [8] inferido , opcional , nominativo , paramétrico , fuerte [8]
Lenguaje de implementaciónJulia, C , C++ , LLVM , [9] Scheme (se utilizó el analizador; casi exclusivamente)
PlataformaNivel 1: Macs x86-64 , IA-32 , Apple silicon ( ARM64 ) ; GPU Nvidia/ CUDA (en Linux) [10]
Nivel 2: FreeBSD , Arm de 64 bits en Linux, GPU de Apple; GPU Intel/ OneAPI 6.2+ y GPU Nvidia (en Windows) Nivel 3: Arm
de 32 bits ; RISC-V y PowerPC de 64 bits ; y GPU AMD/ ROCm 5.3+.
Sistema operativoLinux , macOS , Windows y FreeBSD
LicenciaInstituto Tecnológico de Massachusetts (MIT)
Extensiones de nombre de archivo.jl
Sitio webJuliaLang.org
Influenciado por

Julia es un lenguaje de programación dinámico de alto nivel y propósito general [16] , aún diseñado para ser rápido y productivo, [17] por ejemplo, para ciencia de datos, inteligencia artificial, aprendizaje automático, modelado y simulación, más comúnmente utilizado para análisis numérico y ciencia computacional . [18] [19] [20]

Los aspectos distintivos del diseño de Julia incluyen un sistema de tipos con polimorfismo paramétrico y el uso de despacho múltiple como paradigma de programación central , un compilador justo a tiempo (JIT) predeterminado [16] [21] (con soporte para compilación anticipada [22] [23] [24] ) y una recolección de basura eficiente . [25] En particular, Julia no admite clases con métodos encapsulados y, en su lugar, se basa en estructuras con métodos/funciones genéricos no vinculados a ellos.

Por defecto, Julia se ejecuta de forma similar a los lenguajes de script, utilizando su entorno de ejecución, y permite interacciones , [22] pero los programas/ código fuente de Julia también se pueden enviar opcionalmente a los usuarios en un archivo listo para instalar/ejecutar, que se puede hacer rápidamente, sin necesidad de nada preinstalado. [26] Los programas de Julia también se pueden compilar (por separado) en ejecutables binarios , incluso permitiendo la distribución sin código fuente, y los ejecutables pueden hacerse mucho más pequeños con Julia 1.12. Dicha compilación no es necesaria para la velocidad, aunque puede disminuir el costo de inicio de factor constante, ya que Julia también se compila cuando se ejecuta de forma interactiva, pero puede ayudar a ocultar el código fuente. Las características del lenguaje se pueden compilar por separado, por lo que Julia se puede utilizar, por ejemplo, con su entorno de ejecución o sin él (lo que permite ejecutables y bibliotecas más pequeños, pero está limitado en capacidades).

Los programas Julia pueden reutilizar bibliotecas de otros lenguajes llamándolas, por ejemplo, llamando a bibliotecas de C o Rust , y Julia (bibliotecas) también se puede llamar desde otros lenguajes, por ejemplo, Python y R , y varios paquetes de Julia se han puesto fácilmente a disposición desde esos lenguajes, en forma de bibliotecas de Python y R para los paquetes de Julia correspondientes. La llamada en cualquier dirección se ha implementado para muchos lenguajes, como todos estos.

La extensión Visual Studio Code de Julia proporciona un entorno de desarrollo integrado con todas las funciones y soporte para depuración, análisis de errores y creación de perfiles . [27] [28] [29] [30]

Historia

El trabajo en Julia comenzó en 2009, cuando Jeff Bezanson , Stefan Karpinski , Viral B. Shah y Alan Edelman se propusieron crear un lenguaje libre que fuera rápido y de alto nivel. El 14 de febrero de 2012, el equipo lanzó un sitio web con una publicación de blog que explicaba la misión del lenguaje. [4] En una entrevista con InfoWorld en abril de 2012, Karpinski dijo sobre el nombre "Julia": "No hay una buena razón, en realidad. Simplemente parecía un nombre bonito". [19] Bezanson dijo que eligió el nombre por recomendación de un amigo, [31] y años después escribió:

¿Tal vez Julia signifique " El ceceo poco común de Jeff está automatizado"? [32]

La sintaxis de Julia ahora se considera estable, desde la versión 1.0 en 2018, y Julia tiene una garantía de compatibilidad con versiones anteriores para 1.x y también una promesa de estabilidad para la API documentada (estable) , mientras que en los años anteriores, en el desarrollo temprano previo a 0.7, la sintaxis (y la semántica) se cambiaban en las nuevas versiones. Todo el ecosistema (de paquetes registrados) usa la sintaxis nueva y mejorada, y en la mayoría de los casos se basa en nuevas API que se han agregado regularmente y, en algunos casos, se agregó sintaxis adicional menor de manera compatible con versiones posteriores, por ejemplo, en Julia 1.7.

En los 10 años transcurridos desde el lanzamiento de la versión pre-1.0 de Julia en 2012, la comunidad ha crecido. El ecosistema de paquetes de Julia tiene más de 11,8 millones de líneas de código (incluyendo documentación y pruebas). [33] La conferencia académica JuliaCon para usuarios y desarrolladores de Julia se ha celebrado anualmente desde 2014, y JuliaCon2020 [34] recibió a más de 28 900 espectadores únicos, [35] y luego JuliaCon2021 rompió todos los récords anteriores (con más de 300 presentaciones de JuliaCon2021 disponibles de forma gratuita en YouTube, en comparación con las 162 del año anterior) y 43 000 espectadores únicos durante la conferencia. [36]

Tres de los cocreadores de Julia han sido galardonados con el Premio James H. Wilkinson de Software Numérico 2019 (que se otorga cada cuatro años) "por la creación de Julia, un entorno innovador para la creación de herramientas de alto rendimiento que permiten el análisis y la solución de problemas de ciencias computacionales". [37] Además, Alan Edelman, profesor de matemáticas aplicadas en el MIT , ha sido seleccionado para recibir el Premio Sidney Fernbach de la IEEE Computer Society 2019 "por sus destacados avances en computación de alto rendimiento, álgebra lineal y ciencias computacionales y por sus contribuciones al lenguaje de programación Julia". [38]

Tanto Julia 0.7 [39] como la versión 1.0 se lanzaron el 8 de agosto de 2018. El trabajo en Julia 0.7 fue una "enorme tarea" (por ejemplo, debido a un "optimizador completamente nuevo"), y se realizaron algunos cambios en la semántica, por ejemplo, se simplificó la interfaz de iteración . [40] Julia 1.6 fue la versión más grande desde 1.0, y fue la versión de soporte a largo plazo (LTS) durante más tiempo, más rápida en muchos frentes, por ejemplo, introdujo la precompilación paralela y una carga más rápida de paquetes, en algunos casos "50 veces más rápido en los tiempos de carga para árboles grandes de artefactos binarios". [41] A partir de la versión 1.7, el desarrollo de Julia ha vuelto a los lanzamientos basados ​​​​en el tiempo . [42] Julia 1.7.0 se lanzó en noviembre de 2021 con muchos cambios, por ejemplo, un nuevo generador de números aleatorios más rápido . Julia 1.7.3 se lanzó el 25 de mayo de 2022, corrigiendo algunos problemas, incluida al menos una actualización de seguridad, [43] y 1.7.x ya no es compatible. Julia 1.8 se lanzó en 2022 (y versiones hasta 1.8.5 como seguimiento en enero de 2023, [44] ambas corrigiendo errores ( backporting ) e "invalidaciones", por lo que se compila más rápido), con mejoras para distribuir programas Julia sin código fuente y aceleración del compilador, en algunos casos en un 25%, [45] y una incrustación más controlable (es decir, ahora también permite la aplicación @inlineen el sitio de la llamada, no solo en la función en sí). Julia 1.9.0 se lanzó el 7 de mayo de 2023. Tiene muchas mejoras, como la capacidad de precompilar paquetes a código de máquina nativo (las versiones anteriores de Julia también tienen precompilación para paquetes, pero solo parcial, nunca completamente a código nativo, por lo que esas versiones anteriores tenían una penalización de "primer uso", que ralentizaba el proceso mientras se esperaba la compilación completa). Los paquetes precompilados, desde la versión 1.9, pueden ser hasta cientos de veces más rápidos en el primer uso (por ejemplo, para CSV.jl y DataFrames.jl), y para mejorar la precompilación de paquetes se ha introducido un nuevo paquete PrecompileTools.jl. Julia 1.10.0 se lanzó el 25 de diciembre de 2023 (y la actualización de Julia 1.10.5 el 27 de agosto de 2024) con muchas características nuevas, por ejemplo, recolección de basura paralela, tiempos de carga de paquetes mejorados y un nuevo analizador con mejores mensajes de error y representación mejorada del seguimiento de la pila. [46]

Julia 1.11.0 se lanzó el 7 de octubre de 2024 (y 1.11.1 el 16 de octubre), y con ella 1.10.5 se convirtió en la siguiente versión de soporte a largo plazo (LTS) (es decir, esas son las únicas dos versiones compatibles), y 1.6 ya no es una versión LTS. Julia 1.11 agrega, por ejemplo, una nueva publicpalabra clave para señalar una API pública segura (se recomienda a los usuarios de Julia que utilicen dicha API, no interna, de Julia o paquetes, y se recomienda a los autores de paquetes que utilicen la palabra clave, generalmente de forma indirecta, por ejemplo, prefijada con la @compatmacro, de Compat.jl , para admitir también versiones anteriores de Julia, al menos la versión LTS). Julia 1.11.1 tiene un inicio mucho mejorado (con respecto a 1.11.0 que tuvo una regresión) y con respecto a 1.10, y esto puede ser importante para algunos puntos de referencia.

Es posible que algunos usuarios quieran posponer la actualización a 1.11 (por ejemplo, aquellos que llaman a Julia desde R), debido a una incompatibilidad temporal conocida de paquetes.

Es posible realizar ejecutables binarios mucho más pequeños, juliaclo que solo estará disponible en la próxima versión Julia 1.12 (la versión "nocturna" actual).

JuliaCon

Desde 2014, [47] la comunidad Julia ha organizado una conferencia anual de Julia centrada en desarrolladores y usuarios. La primera JuliaCon tuvo lugar en Chicago y dio inicio a la celebración anual de la conferencia. Desde 2014, la conferencia se ha celebrado en varios lugares, incluidos el MIT [48] y la Universidad de Maryland, Baltimore. [49] La audiencia del evento ha crecido de unas pocas docenas de personas a más de 28.900 asistentes únicos [50] durante JuliaCon 2020, que se celebró de forma virtual. JuliaCon 2021 también se celebró de forma virtual [51] con discursos de apertura de los profesores William Kahan , el arquitecto principal del estándar de punto flotante IEEE 754 (que utilizan prácticamente todas las CPU y lenguajes, incluida Julia), [52] Jan Vitek, [53] Xiaoye Sherry Li y Soumith Chintala, cocreador de PyTorch . [54] JuliaCon creció hasta alcanzar los 43.000 asistentes únicos y más de 300 presentaciones (aún de libre acceso, además de para los mayores). JuliaCon 2022 también se celebrará de forma virtual entre el 27 y el 29 de julio de 2022, por primera vez en varios idiomas, no solo en inglés.

Patrocinadores

El lenguaje Julia se convirtió en un proyecto patrocinado fiscalmente por NumFOCUS en 2014 en un esfuerzo por asegurar la sostenibilidad a largo plazo del proyecto. [55] Jeremy Kepner en el Laboratorio Lincoln del MIT fue el patrocinador fundador del proyecto Julia en sus inicios. Además, los fondos de la Fundación Gordon y Betty Moore , la Fundación Alfred P. Sloan , Intel y agencias como NSF , DARPA , NIH , NASA y FAA han sido esenciales para el desarrollo de Julia. [56] Mozilla , el creador del navegador web Firefox, con sus subvenciones de investigación para el primer semestre de 2019, patrocinó a "un miembro del equipo oficial de Julia" para el proyecto "Llevar Julia al navegador", [57] es decir, a Firefox y otros navegadores web. [58] [59] [60] [61] El lenguaje Julia también cuenta con el apoyo de donantes individuales en GitHub. [62]

La empresa Julia

JuliaHub, Inc. fue fundada en 2015 como Julia Computing, Inc. por Viral B. Shah , Deepak Vinchhi, Alan Edelman , Jeff Bezanson , Stefan Karpinski y Keno Fischer . [63] [64]

En junio de 2017, Julia Computing recaudó 4,6 millones de dólares  en financiación inicial de General Catalyst y Founder Collective, [65] el mismo mes recibió "910.000 dólares de la Fundación Alfred P. Sloan para apoyar el desarrollo de código abierto de Julia, incluidos 160.000 dólares para promover la diversidad en la comunidad de Julia", [66] y en diciembre de 2019 la empresa recibió 1,1  millones de dólares de financiación del gobierno de Estados Unidos para "desarrollar una herramienta de aprendizaje automático de componentes neuronales para reducir el consumo total de energía de los sistemas de calefacción, ventilación y aire acondicionado (HVAC) en los edificios". [67] En julio de 2021, Julia Computing anunció que recaudó una ronda de Serie A de 24 millones de dólares liderada por Dorilton Ventures, [68] que también es propietaria del equipo de Fórmula 1 Williams Racing , que se asoció con Julia Computing. El director comercial de Williams dijo: "Invertir en empresas que construyen la mejor tecnología en la nube es un enfoque estratégico para Dorilton y la versátil plataforma de Julia, con capacidades revolucionarias en simulación y modelado, es enormemente relevante para nuestro negocio. Esperamos integrar Julia Computing en el deporte tecnológicamente más avanzado del mundo". [69] En junio de 2023, JuliaHub recibió (de nuevo, ahora bajo su nuevo nombre) una nueva inversión estratégica de $ 13 millones liderada por AE Industrial Partners HorizonX ("AEI HorizonX"). AEI HorizonX es una plataforma de inversión de capital de riesgo formada en asociación con The Boeing Company , que utiliza Julia. [70] El trabajo de Tim Holy (en el Holy Lab de la Universidad de Washington en St. Louis ) sobre Julia 1.9 (mejora de la capacidad de respuesta) fue financiado por la Iniciativa Chan Zuckerberg .

Características del lenguaje

Julia es un lenguaje de programación de propósito general , [71] aunque también fue diseñado originalmente para computación numérica/técnica. También es útil para programación de sistemas de bajo nivel , [72] como lenguaje de especificación , [73] herramienta de síntesis de alto nivel (HLS) (para hardware, por ejemplo, FPGAs ), [74] y para programación web [75] tanto en el lado del servidor [76] [77] como del cliente [78] [79] .

Las principales características del lenguaje son:

El envío múltiple (también denominado multimétodos en Lisp) es una generalización del envío único  (el mecanismo polimórfico utilizado en lenguajes de programación orientada a objetos (OOP) comunes, como Python , C++ , Java , JavaScript y Smalltalk  ) que utiliza herencia . En Julia, todos los tipos concretos son subtipos de tipos abstractos, directa o indirectamente subtipos del Anytipo que se encuentra en la cima de la jerarquía de tipos. Los tipos concretos no pueden subtipificarse como en otros lenguajes; en su lugar, se utiliza la composición (consulte también herencia vs. subtipificación ).

De forma predeterminada, el entorno de ejecución de Julia debe estar preinstalado a medida que se ejecuta el código fuente proporcionado por el usuario. Como alternativa, las aplicaciones de Julia (GUI) se pueden agrupar rápidamente en un solo archivo con AppBundler.jl [26] para "crear aplicaciones de GUI de Julia en formatos de instalación de aplicaciones de escritorio modernos. Utiliza Snap para Linux, MSIX para Windows y DMG para MacOS como destinos. Agrupa Julia completa dentro de la aplicación". [80] PackageCompiler.jl puede crear ejecutables independientes que no necesitan código fuente de Julia para ejecutarse. [22]

En Julia, todo es un objeto, al igual que en los lenguajes orientados a objetos; sin embargo, a diferencia de la mayoría de los lenguajes orientados a objetos, todas las funciones utilizan despachos múltiples para seleccionar métodos, en lugar de un despacho único.

La mayoría de los paradigmas de programación se pueden implementar utilizando macros y paquetes homoicónicos de Julia. Las macros sintácticas de Julia (usadas para metaprogramación ), al igual que las macros de Lisp, son más poderosas que las macros de sustitución de texto utilizadas en el preprocesador de algunos otros lenguajes como C, porque funcionan a nivel de árboles de sintaxis abstracta (AST). El sistema de macros de Julia es higiénico , pero también admite la captura deliberada cuando se desea (como para las macros anafóricas ) utilizando la escconstrucción.

Julia se inspira en varios dialectos de Lisp, incluidos Scheme y Common Lisp , y comparte muchas características con Dylan , también un lenguaje dinámico orientado al despacho múltiple (que presenta una sintaxis de infijo en lugar de una sintaxis de prefijo similar a Lisp, mientras que en Julia "todo" [81] es una expresión ), y con Fortress , otro lenguaje de programación numérica (que presenta despacho múltiple y un sofisticado sistema de tipos paramétricos). Si bien Common Lisp Object System (CLOS) agrega despacho múltiple a Common Lisp, no todas las funciones son funciones genéricas.

En Julia, Dylan y Fortress, la extensibilidad es la opción predeterminada y las funciones integradas del sistema son todas genéricas y extensibles. En Dylan, el envío múltiple es tan fundamental como en Julia: todas las funciones definidas por el usuario e incluso las operaciones integradas básicas como +son genéricas. Sin embargo, el sistema de tipos de Dylan no admite por completo los tipos paramétricos, que son más típicos del linaje de lenguajes ML . De forma predeterminada, CLOS no permite el envío en los tipos paramétricos de Common Lisp; dicha semántica de envío extendida solo se puede agregar como una extensión a través del Protocolo de metaobjetos CLOS . Por diseño convergente, Fortress también cuenta con envío múltiple en tipos paramétricos; sin embargo, a diferencia de Julia, Fortress tiene tipos estáticos en lugar de dinámicos, con fases de compilación y ejecución separadas. Las características del lenguaje se resumen en la siguiente tabla:

IdiomaSistema de tiposFunciones genéricasTipos paramétricos
JuliaDinámicaPor defecto
Ceceo comúnDinámicaOptar por participarSí (pero no hay envío)
DylanDinámicaPor defectoParcial (sin envío)
FortalezaEstáticoPor defecto

Un ejemplo de la extensibilidad de Julia, el paquete Unitful.jl agrega soporte para unidades físicas de medida al lenguaje.

Interoperabilidad

Julia tiene soporte integrado para llamar a bibliotecas de lenguaje C o Fortran mediante la @ccallmacro. Las bibliotecas adicionales permiten a los usuarios trabajar con Python , [82] R , [83] C++ , [84] Java , [85] y SQL . [86] [87] [88] [89]

Opción de ejecutables compilados por separado

Julia se puede compilar en ejecutables binarios con PackageCompiler.jl. [22] También se pueden escribir ejecutables más pequeños utilizando un subconjunto estático del lenguaje proporcionado por StaticCompiler.jl que no admite el envío en tiempo de ejecución (ni la recolección de basura, ya que excluye el tiempo de ejecución que lo proporciona). [90]

Interacción

La distribución oficial de Julia incluye un bucle de lectura-evaluación-impresión (REPL) interactivo de línea de comandos , [91] con un historial de búsqueda, autocompletado con tabulación y modos de ayuda y shell dedicados , [92] que se pueden usar para experimentar y probar código rápidamente. [93] El siguiente fragmento representa un ejemplo de sesión de muestra donde las cadenas se concatenan automáticamente mediante println: [94]

julia> p ( x ) = 2 x ^ 2 + 1 ; f ( x , y ) = 1 + 2 p ( x ) y julia> println ( "¡Hola mundo!" , "Estoy en la nube" , f ( 0 , 4 ), "ya que Julia admite una sintaxis reconocible!" ) ¡Hola mundo! ¡Estoy en la nube 9 ya que Julia admite una sintaxis reconocible!                

El REPL permite al usuario acceder al shell del sistema y al modo de ayuda, presionando ;o ?después del mensaje de solicitud (antes de cada comando), respectivamente. También guarda el historial de comandos, incluso entre sesiones. [95] El código se puede probar dentro de la sesión interactiva de Julia o guardar en un archivo con una .jlextensión y ejecutar desde la línea de comandos escribiendo: [81]

$ julia  <nombre de archivo>

Julia usa códigos UTF-8 y LaTeX , lo que le permite soportar símbolos matemáticos comunes para muchos operadores, como ∈ para el inoperador, que se puede escribir \inpresionando Tab ↹(es decir, usa códigos LaTeX , o también es posible simplemente copiando y pegando, por ejemplo, √ y ∛ son posibles para las funciones sqrt y cbrt ). Julia tiene soporte para la última versión principal Unicode 15.0 (Julia 1.11-DEV es compatible con la última versión 15.1 [96] ) [97] para los idiomas del mundo, incluso para el código fuente, por ejemplo, nombres de variables (aunque se recomienda usar inglés para el código público y, por ejemplo, nombres de paquetes).

Julia es compatible con Jupyter , un entorno de "cuadernos" interactivo en línea, [98] y Pluto.jl, un "cuadernos reactivo" (donde los cuadernos se guardan como archivos Julia puros), un posible reemplazo para el tipo anterior. [99] Además, el sistema de publicación Quarto de Posit (anteriormente RStudio Inc) admite Julia, Python, R y Observable JavaScript (estos lenguajes tienen soporte oficial por parte de la empresa, e incluso se pueden combinar en el mismo documento de cuaderno; hay más lenguajes que son compatibles de manera no oficial). [100] [101]

El REPL se puede ampliar con modos adicionales, y se ha hecho con paquetes, por ejemplo, con un modo SQL , [102] para el acceso a la base de datos, y RCall.jl agrega un modo R , para trabajar con el lenguaje R. [ 103]

Uso con otros idiomas

Julia es en la práctica interoperable con otros lenguajes, de hecho la mayoría de los 20 lenguajes más populares. Julia se puede utilizar para llamar a funciones de bibliotecas compartidas de forma individual, como las escritas en C o Fortran, y hay paquetes disponibles para permitir llamar a otros lenguajes (que no proporcionan funciones exportadas a C directamente) p. ej. Python (con PythonCall.jl), R, [104] MATLAB, C# (y otros lenguajes .NET con DotNET.jl, desde ellos con JdotNET), JavaScript, Java (y otros lenguajes JVM, como Scala con JavaCall.jl). Y los paquetes para otros lenguajes permiten llamar a Julia, p. ej. desde Python, R (hasta Julia 1.10.x actualmente posible [105] ), Rust , Ruby o C#. Como por ejemplo con juliacall (parte de PythonCall.jl) para llamar desde Python y un paquete JuliaCall diferente para llamar, Julia hasta 1.10.x, desde R. Julia también se ha utilizado para hardware, es decir para compilar a VHDL , como una herramienta de síntesis de alto nivel , por ejemplo FPGAs . [74]

Julia tiene paquetes que admiten lenguajes de marcado como HTML (y también para HTTP ), XML , JSON y BSON , y para bases de datos (como PostgreSQL, [106] Mongo, [107] Oracle, incluido TimesTen , [108] MySQL, SQLite, Microsoft SQL Server, [107] Amazon Redshift, Vertica, ODBC) y uso web en general. [109] [110]

Sistema de paquetes

Julia tiene un administrador de paquetes integrado e incluye un sistema de registro predeterminado. [111] Los paquetes se distribuyen con mayor frecuencia como código fuente alojado en GitHub , aunque también se pueden usar alternativas. Los paquetes también se pueden instalar como binarios, utilizando artefactos. [112] El administrador de paquetes de Julia se utiliza para consultar y compilar paquetes, así como para administrar entornos. Se admiten registros de paquetes federados, lo que permite agregar registros distintos del oficial de forma local. [113]

Implementación

El núcleo de Julia está implementado en Julia y C , junto con C++ para la dependencia de LLVM . El análisis de código, la reducción de código y el arranque se implementaron en FemtoLisp, un dialecto de Scheme , hasta la versión 1.10. [114] Desde esa versión, el nuevo paquete JuliaSyntax.jl, puro para Julia , se utiliza para el análisis (aunque el antiguo aún se puede elegir) [115], lo que mejora la velocidad y "mejora en gran medida los mensajes de error del analizador en varios casos". [116] El proyecto de infraestructura del compilador LLVM se utiliza como back-end para generar código de máquina optimizado para todas las plataformas de uso común. Con algunas excepciones, la biblioteca estándar se implementa en Julia.

Plataformas actuales y futuras

Julia tiene soporte nativo para macOS de nivel 1, para Macs con Apple Silicon de 64 bits (anteriormente, las Macs con Apple M1 solo eran compatibles si se ejecutaban en la emulación Rosetta 2 [117] [118] ), y también es totalmente compatible con Macs con procesador Intel. Windows en ARM aún no tiene soporte oficial. Julia tiene "soporte inicial para OpenBSD en Julia", pero se están desarrollando más cosas para que realmente funcione: https://github.com/JuliaLang/julia/issues/53632 -->

Julia tiene cuatro niveles de soporte. [119] Todos los procesadores IA-32 que implementan completamente la subarquitectura i686 son compatibles y todos los x86-64 de 64 bits (también conocidos como amd64 ), es decir, todos los que tienen menos de una década de antigüedad son compatibles. Los procesadores Armv8 ( AArch64 ) son compatibles en el primer nivel (para macOS); de lo contrario, el segundo nivel en Linux y ARMv7 (AArch32) en el tercer nivel. [120] Cientos de paquetes están acelerados por GPU : [121] Las GPU de Nvidia tienen soporte con CUDA .jl (nivel 1 en Linux de 64 bits y nivel 2 en Windows de 64 bits, el paquete que implementa PTX , para capacidad de cómputo 3.5 (Kepler) o superior; ambos requieren CUDA 11+, las versiones de paquetes más antiguas funcionan hasta CUDA 9). También hay paquetes adicionales que admiten otros aceleradores, como las TPU de Google , [122] y algunas GPU Intel (integradas), a través de oneAPI.jl , [123] y las GPU de AMD tienen soporte con, por ejemplo, OpenCL ; y soporte experimental para la pila AMD ROCm . [124]

En algunas plataformas, Julia puede necesitar ser compilada desde el código fuente (por ejemplo, la Raspberry Pi original ), con opciones de compilación específicas, lo que se ha hecho y hay binarios precompilados no oficiales (e instrucciones de compilación) disponibles. [125] [126] Julia ha sido construida para varias plataformas ARM, desde pequeñas Raspberry Pis hasta la supercomputadora más rápida del mundo (en un momento, hasta hace poco) Fugaku , la A64FX basada en ARM . [127] PowerPC (64 bits) tiene soporte de nivel 3, lo que significa que "puede o no compilarse". Julia ahora es compatible con Raspbian [128] mientras que el soporte es mejor para Pis más nuevos, por ejemplo, aquellos con Armv7 o más nuevos; el soporte de Julia es promovido por la Raspberry Pi Foundation . [129] Julia también ha sido construida para RISC-V de 64 bits , [130] [131] que tiene algún código de soporte en el núcleo de Julia.

Si bien Julia requiere un sistema operativo de forma predeterminada y no tiene soporte oficial para ejecutarse sin o en plataformas de sistemas integrados como Arduino , el código de Julia aún se ha ejecutado en él, con algunas limitaciones, es decir, en un  microcontrolador AVR de 16 MHz y 8 bits ( ATmega328P ) Arduino con 2 KB de RAM (más 32 KB de memoria flash). [132] [133]

Adopción

Julia ha sido adoptada en muchas universidades, entre ellas el MIT , Stanford , UC Berkeley , la Universidad Ferdowsi de Mashhad y la Universidad de Ciudad del Cabo . Grandes empresas privadas de muchos sectores han adoptado el lenguaje, entre ellas Amazon , IBM , JP Morgan AI Research, [134] y ASML . Julia también ha sido utilizada por agencias gubernamentales, entre ellas la NASA y la FAA , así como por todos los laboratorios nacionales de energía de Estados Unidos. [17] [135]

Computación científica e ingeniería

Desarrollo de fármacos y productos farmacéuticos

Julia se utiliza ampliamente para el desarrollo de fármacos en la industria farmacéutica, habiendo sido adoptada por Moderna , Pfizer , AstraZeneca , Procter & Gamble y United Therapeutics . [155] [156]

Economía, finanzas y ciencias políticas

Véase también

Referencias

  1. ^ "Suavizado de datos con las funciones @generated de Julia". 5 de noviembre de 2015. Archivado desde el original el 4 de marzo de 2016. Consultado el 9 de diciembre de 2015. Las funciones generadas de Julia están estrechamente relacionadas con el paradigma de programación multietapa (MSP) popularizado por Taha y Sheard, que generaliza las etapas de tiempo de compilación/tiempo de ejecución de la ejecución del programa al permitir múltiples etapas de ejecución de código retrasada.
  2. ^ "LICENSE.md". GitHub . Septiembre de 2017. Archivado desde el original el 23 de enero de 2021 . Consultado el 20 de octubre de 2014 .
  3. ^ "Colaboradores de JuliaLang/julia". GitHub . Archivado desde el original el 23 de enero de 2021 . Consultado el 20 de octubre de 2014 .
  4. ^ abcde Jeff Bezanson; Stefan Karpinski; Viral Shah; Alan Edelman (febrero de 2012). «Por qué creamos a Julia». Sitio web de Julia . Archivado desde el original el 2 de mayo de 2020. Consultado el 7 de febrero de 2013 .
  5. ^ "Se lanzó Julia v1.11.0 y la v1.10 ahora es LTS". 8 de octubre de 2024 . Consultado el 10 de octubre de 2024 .
  6. ^ "Período de prueba de Julia 1.10.6". Lenguaje de programación Julia . 22 de octubre de 2024 . Consultado el 22 de octubre de 2024 .
  7. ^ "Backports para 1.11.2 por KristofferC · Pull Request #56228 · JuliaLang/julia". GitHub . Consultado el 18 de octubre de 2024 .
  8. ^ ab Engheim, Erik (17 de noviembre de 2017). «Los lenguajes con tipado dinámico no son lo que crees». Medium . Archivado desde el original el 5 de marzo de 2021. Consultado el 27 de enero de 2021 .
  9. ^ "Construcción de Julia (detallada)". GitHub . Septiembre de 2017. Archivado desde el original el 16 de mayo de 2022 . Consultado el 16 de mayo de 2022 .
  10. ^ "NVIDIA CUDA ⋅ JuliaGPU". juliagpu.org . Archivado desde el original el 29 de enero de 2022 . Consultado el 17 de enero de 2022 . Hemos demostrado que el rendimiento se acerca e incluso a veces supera al de CUDA C en una selección de aplicaciones de la suite de pruebas Rodinia
  11. ^ Stokel-Walker, Chris. «Julia: The Goldilocks language» (Julia: el lenguaje de Ricitos de Oro). Increment . Stripe. Archivado desde el original el 9 de noviembre de 2020 . Consultado el 23 de agosto de 2020 .
  12. ^ "JuliaCon 2016". JuliaCon. Archivado desde el original el 4 de marzo de 2017. Consultado el 6 de diciembre de 2016. Ha co-diseñado el lenguaje de programación Scheme, que ha influido enormemente en el diseño de Julia
  13. ^ abcd «Inicio · El lenguaje Julia». docs.julialang.org . Archivado desde el original el 11 de enero de 2021 . Consultado el 15 de agosto de 2018 .
  14. ^ "Programming Language Network". GitHub. Archivado desde el original el 20 de diciembre de 2020. Consultado el 6 de diciembre de 2016 .
  15. ^ "¿Cómo deberíamos llamar al lenguaje de Mathematica? —Escritos de Stephen Wolfram". writings.stephenwolfram.com . 12 de febrero de 2013. Archivado desde el original el 4 de septiembre de 2024 . Consultado el 24 de junio de 2021 .
  16. ^ ab Fischer, Keno; Nash, Jameson. "Desarrollo de un compilador: cómo llegar al aprendizaje automático a partir de un compilador de propósito general". juliahub.com . Consultado el 16 de noviembre de 2022 .
  17. ^ ab "'Why We Created Julia' cumple diez años". juliahub.com . Archivado desde el original el 16 de noviembre de 2022 . Consultado el 16 de noviembre de 2022 .
  18. ^ Bryant, Avi (15 de octubre de 2012). "Matlab, R y Julia: lenguajes para el análisis de datos". O'Reilly Strata. Archivado desde el original el 26 de abril de 2014.
  19. ^ ab Krill, Paul (18 de abril de 2012). «El nuevo lenguaje de Julia busca ser la C de los científicos». InfoWorld . Archivado desde el original el 13 de septiembre de 2014. Consultado el 4 de julio de 2021 .
  20. ^ Finley, Klint (3 de febrero de 2014). "Out in the Open: Man Creates One Programming Language to Rule Them All" (A la vista de todos: el hombre crea un lenguaje de programación para gobernarlos a todos). Wired . Archivado desde el original el 20 de diciembre de 2016. Consultado el 8 de marzo de 2017 .
  21. ^ "Sysimages · PackageCompiler". julialang.github.io . Archivado desde el original el 10 de abril de 2023 . Consultado el 10 de abril de 2023 .
  22. ^ abcd «GitHub - JuliaLang/PackageCompiler.jl: Compila tu paquete Julia». El lenguaje Julia. 14 de febrero de 2019. Archivado desde el original el 23 de marzo de 2019. Consultado el 15 de febrero de 2019 .
  23. ^ "julia/doc/src/devdocs/aot.md at master · JuliaLang/julia". GitHub . Archivado desde el original el 3 de octubre de 2023 . Consultado el 3 de octubre de 2023 .
  24. ^ "Construcción de imágenes del sistema · El lenguaje Julia". docs.julialang.org . Consultado el 3 de octubre de 2023 .
  25. ^ "Suspender la recolección de basura por motivos de rendimiento... ¿buena o mala idea?". Groups.google.com . Archivado desde el original el 14 de febrero de 2012. Consultado el 31 de mayo de 2017 .
  26. ^ ab "AppBundler.jl". PeaceFounder. 13 de diciembre de 2023. Archivado desde el original el 18 de diciembre de 2023. Consultado el 18 de diciembre de 2023 .
  27. ^ Holy, Tim (13 de septiembre de 2019). «GitHub - timholy/ProfileView.jl: Visualización de datos de creación de perfiles de Julia». GitHub . Archivado desde el original el 31 de enero de 2020 . Consultado el 22 de septiembre de 2019 .
  28. ^ Gregg, Brendan (20 de septiembre de 2019). «GitHub - brendangregg/FlameGraph: Visualizador de seguimiento de pila». GitHub . Archivado desde el original el 26 de septiembre de 2019 . Consultado el 22 de septiembre de 2019 .
  29. ^ "Un intérprete y depurador de Julia". julialang.org . Consultado el 10 de abril de 2019 .
  30. ^ "Inicio · Rebugger.jl". timholy.github.io . Archivado desde el original el 31 de marzo de 2019 . Consultado el 10 de abril de 2019 .
  31. ^ Torre, Charles. «Stefan Karpinski y Jeff Bezanson en Julia». Canal 9. MSDN. Archivado desde el original el 4 de diciembre de 2018. Consultado el 4 de diciembre de 2018 .
  32. ^ Bezanson, Jeff (2 de abril de 2021). «CAS Benchmarks». speech.julialang.org . Archivado desde el original el 2 de abril de 2021 . Consultado el 2 de abril de 2021 .
  33. ^ "Boletín informativo de agosto de 2021: Julia Computing completa una recaudación de fondos de Serie A de 24 millones de dólares y el exdirector ejecutivo de Snowflake, Bob Muglia, se une a la junta directiva de Julia Computing - JuliaHub". juliahub.com . Archivado desde el original el 16 de noviembre de 2022 . Consultado el 16 de noviembre de 2022 .
  34. ^ "JuliaCon 2020". JuliaCon 2020 . Archivado desde el original el 12 de octubre de 2023 . Consultado el 6 de octubre de 2023 .
  35. ^ "JuliaCon 2020 Wrap-up". julialang.org . 11 de agosto de 2020. Archivado desde el original el 30 de noviembre de 2020 . Consultado el 20 de diciembre de 2020 .
  36. ^ "Lo más destacado de JuliaCon 2021". julialang.org . Archivado desde el original el 6 de septiembre de 2021 . Consultado el 6 de septiembre de 2021 .
  37. ^ "Los cocreadores del lenguaje Julia ganan el premio James H. Wilkinson de software numérico". MIT News . 26 de diciembre de 2018. Archivado desde el original el 28 de enero de 2019 . Consultado el 22 de enero de 2019 .
  38. ^ "Alan Edelman del MIT reconocido con el prestigioso premio Sidney Fernbach de la IEEE Computer Society 2019 | IEEE Computer Society" (Nota de prensa). 1 de octubre de 2019. Archivado desde el original el 9 de octubre de 2019 . Consultado el 9 de octubre de 2019 .
  39. ^ "¿Qué es Julia 0.7? ¿Cómo se relaciona con 1.0?". JuliaLang . 26 de marzo de 2018. Archivado desde el original el 27 de julio de 2018 . Consultado el 17 de octubre de 2018 .
  40. ^ Davies, Eric. "Escritura de iteradores en Julia 0.7". julialang.org . Archivado desde el original el 6 de agosto de 2018. Consultado el 5 de agosto de 2018 .
  41. ^ Jeff Bezanson; Stefan Karpinski; Viral Shah; Alan Edelman; et al. "Aspectos destacados de Julia 1.6". julialang.org . Archivado desde el original el 26 de marzo de 2021 . Consultado el 26 de marzo de 2021 .
  42. ^ "Actualización a OpenBLAS 0.3.13 · Solicitud de incorporación de cambios n.º 39216 · JuliaLang/julia". GitHub . Archivado desde el original el 23 de marzo de 2022 . Consultado el 26 de abril de 2021 . Dado que la versión 1.7 no está muy lejos (se lanzarán versiones programadas en el futuro)
  43. ^ "[Zlib_jll] Actualización a v1.2.12+3 por giordano · Pull Request #44810 · JuliaLang/julia". GitHub . Archivado desde el original el 25 de mayo de 2022 . Consultado el 25 de mayo de 2022 .
  44. ^ "Backports para Julia 1.8.5 por KristofferC · Pull Request #48011 · JuliaLang/julia". GitHub . Archivado desde el original el 4 de enero de 2023 . Consultado el 8 de enero de 2023 .
  45. ^ "compilador: acelera el tiempo de arranque en un 25 % por aviatesk · Pull Request #41794 · JuliaLang/julia". GitHub . Archivado del original el 3 de marzo de 2022 . Consultado el 3 de marzo de 2022 . El arranque tardaba unos 80 segundos antes, pero en esta solicitud de incorporación de cambios el tiempo se reduce a unos 60 segundos.
  46. ^ "Notas de la versión de Julia v1.10 · El lenguaje Julia". docs.julialang.org . 25 de diciembre de 2023. Archivado desde el original el 30 de marzo de 2024 . Consultado el 30 de marzo de 2024 .
  47. ^ "JuliaCon 2014". juliacon.org . Consultado el 20 de junio de 2021 .
  48. ^ "JuliaCon 2016 en el MIT". mit.edu . 18 de julio de 2016. Archivado desde el original el 24 de junio de 2021 . Consultado el 20 de junio de 2021 .
  49. ^ "JuliaCon 2019 en UMB". technical.ly . 23 de julio de 2019. Archivado desde el original el 24 de junio de 2021 . Consultado el 20 de junio de 2021 .
  50. ^ "Resumen de JuliaCon 2020". julialang.org . Archivado desde el original el 30 de noviembre de 2020 . Consultado el 20 de junio de 2021 .
  51. ^ "JuliaCon 2021". Juliacon.org . Archivado desde el original el 20 de junio de 2021 . Consultado el 20 de junio de 2021 .
  52. ^ "Aspectos destacados de la JuliaCon 2021". julialang.org . Archivado del original el 6 de septiembre de 2021 . Consultado el 3 de marzo de 2022 . La JuliaCon de este año fue la más grande y mejor de la historia, con más de 300 presentaciones disponibles de forma gratuita en YouTube, más de 20 000 inscripciones y más de 43 000 espectadores únicos de YouTube durante la conferencia, en comparación con las 162 presentaciones, 10 000 inscripciones y 28 900 espectadores únicos de YouTube durante la conferencia del año pasado.
  53. ^ "Página de inicio de Jan Vitek". janvitek.org . Archivado desde el original el 22 de enero de 2024. Consultado el 20 de junio de 2021 .
  54. ^ "Página de inicio de Soumith Chintala". soumith.ch . Archivado desde el original el 24 de junio de 2021 . Consultado el 20 de junio de 2021 .
  55. ^ "Julia: Proyecto patrocinado por NumFOCUS desde 2014". numfocus.org . Archivado desde el original el 28 de septiembre de 2020 . Consultado el 29 de septiembre de 2020 .
  56. ^ "El lenguaje de Julia". julialang.org . Archivado desde el original el 26 de julio de 2019 . Consultado el 22 de septiembre de 2019 .
  57. ^ Cimpanu, Catalin. «Mozilla está financiando una forma de apoyar a Julia en Firefox». ZDNet . Archivado desde el original el 10 de julio de 2019. Consultado el 22 de septiembre de 2019 .
  58. ^ "Julia en yoduro". alpha.iodide.io . Archivado desde el original el 22 de septiembre de 2019 . Consultado el 22 de septiembre de 2019 .
  59. ^ "Complementos de lenguaje - Documentación de Iodide". iodide-project.github.io . Archivado desde el original el 22 de septiembre de 2019 . Consultado el 22 de septiembre de 2019 .
  60. ^ "Subvenciones de investigación de Mozilla 2019H1". Mozilla . Archivado del original el 9 de octubre de 2019 . Consultado el 22 de septiembre de 2019 . ejecución de intérpretes de lenguaje en WebAssembly. Para aumentar aún más el acceso a las principales herramientas de ciencia de datos, buscamos a alguien que porte R o Julia a WebAssembly e intente proporcionar un complemento de lenguaje de nivel 3 para Iodide: conversión automática de tipos básicos de datos entre R/Julia y Javascript, y la capacidad de compartir instancias de clase entre R/Julia y Javascript.
  61. ^ "Computación y comunicación científicas alfabetizadas para la web: iodide-project/iodide". iodide. 20 de septiembre de 2019. Archivado desde el original el 24 de agosto de 2018. Consultado el 22 de septiembre de 2019. Imaginamos un flujo de trabajo futuro que le permita realizar su procesamiento de datos en Python, ajustar un modelo rápido en R o JAGS, resolver algunas ecuaciones diferenciales en Julia y luego mostrar sus resultados con una visualización interactiva en vivo de d3+JavaScript... y todo eso dentro de un solo archivo portátil, compartible y pirateable.
  62. ^ "Patrocina el lenguaje Julia". github.com . Archivado desde el original el 5 de julio de 2021 . Consultado el 5 de junio de 2021 .
  63. ^ "Acerca de nosotros – Julia Computing". juliacomputing.com . Archivado desde el original el 1 de septiembre de 2019 . Consultado el 12 de septiembre de 2017 .
  64. ^ "Acerca de nosotros - JuliaHub". juliahub.com . Archivado desde el original el 16 de noviembre de 2022 . Consultado el 16 de noviembre de 2022 .
  65. ^ "Julia Computing recauda 4,6 millones de dólares en financiación inicial" (Comunicado de prensa). Archivado desde el original el 10 de mayo de 2019.
  66. ^ "Julia Computing recibe una subvención de 910.000 dólares de la Fundación Alfred P. Sloan, incluidos 160.000 dólares para la diversidad STEM". juliacomputing.com . 26 de junio de 2017. Archivado desde el original el 3 de agosto de 2020 . Consultado el 28 de julio de 2020 .
  67. ^ "DIFERENCIAR—Inteligencia de diseño que fomenta una formidable reducción de energía (y) permite mejoras tecnológicas avanzadas novedosas y de gran impacto" (PDF) .
  68. ^ "Julia Computing recauda 24 millones de dólares en una ronda de financiación liderada por Dorilton Ventures". Reuters . 19 de julio de 2021. Archivado desde el original el 18 de agosto de 2021 . Consultado el 18 de agosto de 2021 .
  69. ^ "Williams da la bienvenida a Julia Computing como socia de Dorilton Ventures". www.williamsf1.com (Nota de prensa). Archivado desde el original el 2 de septiembre de 2021 . Consultado el 2 de septiembre de 2021 .
  70. ^ "JuliaHub recibe una inversión estratégica de 13 millones de dólares de AE ​​Industrial Partners HorizonX". info.juliahub.com (Nota de prensa). 27 de junio de 2023. Consultado el 30 de junio de 2023 .
  71. ^ "El lenguaje Julia" (sitio web oficial). Archivado desde el original el 21 de febrero de 2017. Consultado el 9 de diciembre de 2016. Propósito general [..] Julia te permite escribir interfaces de usuario, compilar tu código estáticamente o incluso implementarlo en un servidor web.
  72. ^ Green, Todd (10 de agosto de 2018). «Programación de sistemas de bajo nivel en Julia de alto nivel». Archivado desde el original el 5 de noviembre de 2018. Consultado el 5 de noviembre de 2018 .
  73. ^ Moss, Robert (26 de junio de 2015). "Uso de Julia como lenguaje de especificación para el sistema de prevención de colisiones aerotransportado de próxima generación" (PDF) . Archivado desde el original el 1 de julio de 2015. Consultado el 29 de junio de 2015. Sistema de prevención de colisiones aerotransportado
  74. ^ ab Biggs, Benjamin; McInerney, Ian; Kerrigan, Eric C.; Constantinides, George A. (2022). "Síntesis de alto nivel utilizando el lenguaje Julia". arXiv : 2201.11522 [cs.SE]. Presentamos un prototipo de herramienta Julia HLS, escrita en Julia, que transforma el código Julia a VHDL.
  75. ^ "Anunciamos el lanzamiento de Dash for Julia". plotly (Nota de prensa). 26 de octubre de 2020. Archivado desde el original el 2 de septiembre de 2021 . Consultado el 2 de septiembre de 2021 .
  76. ^ Anaya, Richard (28 de abril de 2019). "Cómo crear un servidor HTTP multiproceso en Julia". Medium . Archivado desde el original el 25 de julio de 2019 . Consultado el 25 de julio de 2019 . En resumen, aunque Julia carece de una solución de servidor multiproceso actualmente lista para usar, podemos aprovechar fácilmente sus funciones de distribución de procesos y una tecnología de equilibrio de carga muy popular para obtener una utilización completa de la CPU para el manejo de HTTP.
  77. ^ Anthoff, David (1 de junio de 2019). «Instalación de Node.js para Julia». GitHub . Archivado desde el original el 4 de septiembre de 2024 . Consultado el 25 de julio de 2019 .
  78. ^ "Traducir Julia a JavaScript". JuliaGizmos. 7 de julio de 2019. Archivado desde el original el 28 de marzo de 2019. Consultado el 25 de julio de 2019 .
  79. ^ Fischer, Keno (22 de julio de 2019). «Ejecución de Julia en WASM». GitHub . Archivado desde el original el 21 de noviembre de 2020 . Consultado el 25 de julio de 2019 .
  80. ^ "[ANN] AppBundler.jl - Agrupe su aplicación GUI de Julia". Lenguaje de programación Julia . 30 de noviembre de 2023. Archivado desde el original el 4 de septiembre de 2024 . Consultado el 18 de diciembre de 2023 .
  81. ^ ab "Aprende a Julia en Y minutos". Learnxinyminutes.com . Archivado desde el original el 15 de agosto de 2018. Consultado el 31 de mayo de 2017 .
  82. ^ "PythonCall y JuliaCall". JuliaPy. 29 de octubre de 2023. Archivado desde el original el 31 de octubre de 2023. Consultado el 30 de octubre de 2023 .
  83. ^ "RCall.jl". JuliaInterop. 16 de octubre de 2023. Archivado desde el original el 30 de abril de 2019. Consultado el 30 de octubre de 2023 .
  84. ^ "CxxWrap". JuliaInterop. 28 de octubre de 2023. Consultado el 30 de octubre de 2023 .
  85. ^ "Julia y Spark, mejores juntas". juliacomputing.com . 2 de junio de 2020. Archivado desde el original el 14 de julio de 2020.
  86. ^ Foster, Claire (23 de octubre de 2023). «SQLREPL.jl». Archivado desde el original el 27 de septiembre de 2022. Consultado el 31 de octubre de 2023 .
  87. ^ Noh, WooKyoung (18 de octubre de 2023). «Octo.jl» . Consultado el 31 de octubre de 2023 .
  88. ^ "Guía de uso · FunSQL.jl". mechanicalrabbit.github.io . Archivado desde el original el 31 de octubre de 2023 . Consultado el 31 de octubre de 2023 .
  89. ^ "Uso de Julia con bases de datos Oracle". 21 de octubre de 2022. Archivado desde el original el 8 de noviembre de 2022 . Consultado el 8 de noviembre de 2022 .
  90. ^ Short, Tom (30 de octubre de 2023). «StaticCompiler». Archivado desde el original el 31 de octubre de 2023. Consultado el 30 de octubre de 2023 .
  91. ^ "El REPL de Julia · El lenguaje de Julia". docs.julialang.org . Archivado desde el original el 22 de septiembre de 2019 . Consultado el 22 de septiembre de 2019 .
  92. ^ "Presentación de Julia/El REPL - Wikilibros, libros abiertos para un mundo abierto". en.wikibooks.org . Archivado desde el original el 23 de junio de 2019 . Consultado el 22 de septiembre de 2019 . puedes instalar el paquete Julia OhMyREPL.jl [..] que te permite personalizar la apariencia y el comportamiento del REPL
  93. ^ "Introducción al lenguaje Julia". docs.julialang.org . Archivado desde el original el 10 de agosto de 2019 . Consultado el 15 de agosto de 2018 .
  94. ^ Véase también: docs.julialang.org/en/v1/manual/strings/ para la interpolación de cadenas y el string(greet, ", ", whom, ".\n")ejemplo de las formas preferidas de concatenar cadenas. Julia tiene las funciones println e print, pero también una macro @printf (es decir, no en forma de función) para eliminar la sobrecarga en tiempo de ejecución del formateo (a diferencia de la misma función en C).
  95. ^ "Documentación de Julia". JuliaLang.org . Archivado desde el original el 17 de diciembre de 2016. Consultado el 18 de noviembre de 2014 .
  96. ^ "Compatibilidad con Unicode 15.1 por stevengj · Solicitud de incorporación de cambios n.° 253 · JuliaStrings/utf8proc". GitHub . Archivado desde el original el 22 de enero de 2024 . Consultado el 22 de enero de 2024 .
  97. ^ "support Unicode 15 via utf8proc 2.8 by stevengj · Pull Request #47392 · JuliaLang/julia". GitHub . Archivado desde el original el 3 de noviembre de 2022 . Consultado el 3 de noviembre de 2022 .
  98. ^ "Proyecto Jupyter". Archivado desde el original el 29 de junio de 2017. Consultado el 19 de agosto de 2015 .
  99. ^ Boudreau, Emmett (16 de octubre de 2020). «¿Podría Plutón ser un verdadero reemplazo de Júpiter?». Medium . Archivado desde el original el 12 de abril de 2023. Consultado el 8 de diciembre de 2020 .
  100. ^ Machlis, Sharon (27 de julio de 2022). «RStudio cambia de nombre a Posit y amplía su enfoque para incluir Python y VS Code». InfoWorld . Consultado el 18 de enero de 2023 .
  101. ^ "¡Atención! Quarto llegó para quedarse. Combina de inmediato R y Python en tu próximo documento: una extensión de una publicación reciente". ds-econ . 20 de julio de 2022. Archivado desde el original el 31 de enero de 2023 . Consultado el 18 de enero de 2023 .
  102. ^ Foster, Chris (4 de abril de 2022). «SQLREPL.jl». GitHub . Archivado desde el original el 27 de septiembre de 2022 . Consultado el 27 de septiembre de 2022 .
  103. ^ "Primeros pasos · RCall.jl". juliainterop.github.io . Archivado desde el original el 4 de septiembre de 2024 . Consultado el 27 de septiembre de 2022 .
  104. ^ "Julia se bloquea al instalar el módulo RCall". Lenguaje de programación Julia . 21 de octubre de 2024 . Consultado el 22 de octubre de 2024 . Para mí, RCall se carga sin problemas en Julia 1.11 en MacOS
  105. ^ "juliacall falla en julia 1.11 con `undefined symbol: jl_stdout_obj` · Issue #234 · Non-Contradiction/JuliaCall". GitHub . Consultado el 22 de octubre de 2024 .
  106. ^ "Inicio · LibPQ.jl". invenia.github.io . Archivado desde el original el 8 de noviembre de 2022 . Consultado el 8 de noviembre de 2022 .
  107. ^ ab "Inicio · FunSQL.jl". docs.juliahub.com . Archivado desde el original el 8 de noviembre de 2022 . Consultado el 8 de noviembre de 2022 .
  108. ^ Hood, Doug (21 de octubre de 2022). "Uso de Julia con bases de datos Oracle". Archivado desde el original el 8 de noviembre de 2022. Consultado el 8 de noviembre de 2022 .
  109. ^ "Genie Builder - Visual Studio Marketplace". marketplace.visualstudio.com . Archivado desde el original el 8 de noviembre de 2022 . Consultado el 8 de noviembre de 2022 .
  110. ^ "Cómo crear tu primera aplicación web en Julia con Genie.jl". freeCodeCamp.org . 1 de febrero de 2022. Archivado desde el original el 8 de noviembre de 2022 . Consultado el 8 de noviembre de 2022 .
  111. ^ "JuliaRegistries / General". GitHub . Archivado desde el original el 3 de agosto de 2020 . Consultado el 30 de abril de 2020 .
  112. ^ "Pkg.jl - Artefactos". Archivado desde el original el 2 de agosto de 2020 . Consultado el 4 de junio de 2020 .
  113. ^ "Pkg.jl - Registros". Archivado desde el original el 13 de junio de 2020 . Consultado el 30 de abril de 2020 .
  114. ^ Bezanson, Jeff (6 de junio de 2019). «JeffBezanson/femtolisp». GitHub . Archivado desde el original el 22 de diciembre de 2022 . Consultado el 16 de junio de 2019 .
  115. ^ "JuliaSyntax". El lenguaje de programación Julia. 28 de agosto de 2022. Archivado desde el original el 28 de agosto de 2022 . Consultado el 28 de agosto de 2022 .
  116. ^ "Habilitar JuliaSyntax.jl como un analizador de Julia alternativo por c42f · Solicitud de incorporación de cambios n.° 46372 · JuliaLang/julia". GitHub . Archivado desde el original el 28 de agosto de 2022 . Consultado el 28 de agosto de 2022 .
  117. ^ "Se ha publicado Julia v1.7.3". JuliaLang . 25 de mayo de 2022. Archivado desde el original el 26 de mayo de 2022 . Consultado el 26 de mayo de 2022 .
  118. ^ "Problema de seguimiento de Darwin/ARM64 · Issue #36617 · JuliaLang/julia". GitHub . Archivado desde el original el 11 de noviembre de 2020 . Consultado el 8 de diciembre de 2020 .
  119. ^ "Descargas de Julia". julialang.org . Archivado desde el original el 26 de enero de 2021 . Consultado el 17 de mayo de 2019 .
  120. ^ "julia/arm.md". El lenguaje Julia. 7 de octubre de 2021. Archivado desde el original el 15 de mayo de 2022. Consultado el 15 de mayo de 2022. Hay disponible una lista de problemas conocidos de ARM .
  121. ^ "JuliaGPU". juliagpu.org . Archivado desde el original el 23 de mayo de 2020 . Consultado el 16 de noviembre de 2022 . Casi 300 paquetes dependen directa o indirectamente de las capacidades de la GPU de Julia.
  122. ^ "Julia sobre las TPU". JuliaTPU. 26 de noviembre de 2019. Archivado desde el original el 30 de abril de 2019. Consultado el 29 de noviembre de 2019 .
  123. ^ "Presentación: oneAPI.jl ⋅ JuliaGPU". juliagpu.org . Consultado el 6 de septiembre de 2021 .
  124. ^ "AMD ROCm · JuliaGPU". juliagpu.org . Archivado desde el original el 13 de junio de 2020 . Consultado el 20 de abril de 2020 .
  125. ^ "Build Julia for RaspberryPi Zero". Gist . Archivado desde el original el 1 de diciembre de 2020 . Consultado el 14 de agosto de 2020 .
  126. ^ "JuliaBerry: Julia en la Raspberry Pi". juliaberry.github.io . Archivado desde el original el 8 de julio de 2020 . Consultado el 14 de agosto de 2020 .
  127. Giordano, Mosè (29 de septiembre de 2022). «Julia en Fugaku (23 de julio de 2022)». GitHub . Archivado desde el original el 8 de noviembre de 2022 . Consultado el 8 de noviembre de 2022 .
  128. ^ "Julia disponible en Raspbian en Raspberry Pi". Archivado desde el original el 4 de mayo de 2017. Consultado el 6 de junio de 2017. Julia funciona en todas las variantes de Pi, recomendamos usar Pi 3.
  129. ^ "Julia language for Raspberry Pi". Fundación Raspberry Pi . 12 de mayo de 2017. Archivado desde el original el 2 de junio de 2017. Consultado el 6 de junio de 2017 .
  130. ^ "Versión v1.12-0a92fecc12 · maleadt/julia". GitHub . Consultado el 12 de octubre de 2024 .
  131. ^ "julia/doc/src/devdocs/build/riscv.md at master · alexfanqi/julia". GitHub . Consultado el 9 de octubre de 2024 .
  132. ^ "Ejecución de Julia sin hardware en un Arduino". seelengrab.github.io . Archivado desde el original el 24 de mayo de 2022 . Consultado el 24 de mayo de 2022 .
  133. ^ Sukera (31 de julio de 2023). «AVRDevices.jl». Archivado desde el original el 5 de agosto de 2023. Consultado el 5 de agosto de 2023 .
  134. ^ Chen, Jiahao. "Jiahao Chen". Jiahao Chen . Archivado desde el original el 23 de febrero de 2023. Consultado el 23 de febrero de 2023 .
  135. ^ "Boletín de noticias de enero de 2022 - Estadísticas de crecimiento de Julia - Julia Computing". juliacomputing.com . Archivado desde el original el 26 de enero de 2022 . Consultado el 26 de enero de 2022 .
  136. ^ "Presentación de Braket.jl: computación cuántica con Julia". Comunidad Julia 🟣 . 15 de noviembre de 2022. Archivado desde el original el 19 de junio de 2024 . Consultado el 23 de febrero de 2023 . Casi todas las características del SDK de Python se han reimplementado en Julia; para las pocas que no lo están, también ofrecemos un paquete subsidiario, PyBraket.jl, que le permite traducir objetos de Julia a sus equivalentes de Python y llamar al SDK de Python.
  137. ^ "Introducción a Julia en Amazon SageMaker: guía paso a paso" (PDF) . Mayo de 2020. Archivado (PDF) del original el 9 de marzo de 2024 . Consultado el 23 de febrero de 2023 .
  138. ^ "Hacia el uso de Julia para aplicaciones en tiempo real en ASML JuliaCon 2022". pretalx.com . Archivado desde el original el 23 de febrero de 2023 . Consultado el 23 de febrero de 2023 .
  139. ^ "Inicio - CliMA". CliMA – Climate Modeling Alliance . Archivado desde el original el 18 de junio de 2023. Consultado el 18 de junio de 2023 .
  140. ^ "Julia Computing ofrece compatibilidad con NVIDIA GPU Computing en servidores con tecnología Arm - JuliaHub". juliahub.com (Nota de prensa). Archivado desde el original el 16 de noviembre de 2022 . Consultado el 16 de noviembre de 2022 .
  141. ^ "Julia para el minitaller HEP". indico.cern.ch . 27 de septiembre de 2021. Archivado desde el original el 11 de agosto de 2022 . Consultado el 23 de agosto de 2022 . Julia y la primera observación de Ω - _b → Ξ + _c K - π -
  142. ^ Mikhasenko, Misha (29 de julio de 2022). «ThreeBodyDecay». GitHub . Archivado desde el original el 23 de agosto de 2022 . Consultado el 23 de agosto de 2022 .
  143. ^ Mikhasenko, Misha (julio de 2021). "Julia para espectroscopia QCD" (PDF) . indico.cern.ch . Archivado (PDF) del original el 23 de agosto de 2022 . Consultado el 23 de agosto de 2022 . Resumen: Julia está lista para usarse en análisis HEP de física.
  144. ^ "JuliaHEP/UnROOT.jl". JuliaHEP. 19 de agosto de 2022. Archivado desde el original el 19 de junio de 2024. Consultado el 23 de agosto de 2022 .
  145. ^ "Julia · Buscar · GitLab". GitLab . Archivado desde el original el 23 de agosto de 2022 . Consultado el 23 de agosto de 2022 .
  146. ^ "Commits · master · sft / lcgcmake · GitLab". GitLab . Archivado desde el original el 12 de abril de 2023 . Consultado el 23 de agosto de 2022 . Actualizar la versión de Julia a 1.7.3
  147. ^ "Modelado de la dinámica de separación de naves espaciales en Julia - Jonathan Diegelman". 9 de marzo de 2021. Archivado desde el original el 6 de septiembre de 2021 . Consultado el 6 de septiembre de 2021 .
  148. ^ "Circuitscape/Circuitscape.jl". Circuitscape. 25 de febrero de 2020. Archivado desde el original el 30 de julio de 2020. Consultado el 26 de mayo de 2020 .
  149. ^ "Conservación a través de la codificación: 5 preguntas con Viral Shah | Dirección de Misiones Científicas". science.nasa.gov . Archivado desde el original el 25 de mayo de 2020 . Consultado el 26 de mayo de 2020 .
  150. ^ "Julia en la naturaleza - Julia Data Science". juliadatascience.io . Archivado desde el original el 12 de septiembre de 2022 . Consultado el 12 de septiembre de 2022 .
  151. ^ "Siete planetas rocosos de TRAPPIST-1 podrían estar hechos de un material similar". Exploración de exoplanetas: planetas más allá de nuestro sistema solar . Archivado desde el original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
  152. ^ "Julia en la investigación en astronomía y astrofísica | Eric B. Ford | JuliaCon 2022". 25 de julio de 2022. Archivado desde el original el 6 de octubre de 2022 . Consultado el 6 de octubre de 2022 .
  153. ^ "JuliaSpace/SatelliteToolbox.jl". JuliaSpace. 20 de mayo de 2020. Archivado desde el original el 16 de junio de 2021. Consultado el 26 de mayo de 2020 .
  154. ^ Hobbs, Kerianne (diciembre de 2022). "Año de autonomía en los glaciares de Alaska, el vuelo, la órbita terrestre, el espacio cislunar y Marte". Resumen del año de Aerospace America. pág. 48. Archivado desde el original el 19 de junio de 2024. Consultado el 26 de enero de 2023. El equipo de pruebas de vuelo pudo demostrar... un vehículo de despegue y aterrizaje vertical con sistemas de propulsión de combustible tanto eléctricos como convencionales a bordo. El [ sistema aéreo no tripulado] pudo planificar y ejecutar estas misiones de forma autónoma utilizando el hardware integrado. Fue la primera vez que se utilizó el lenguaje de programación Julia en el hardware integrado: los algoritmos se precompilaron con antelación.
  155. ^ "Caso práctico: JuliaHub". juliahub.com . Archivado desde el original el 10 de febrero de 2023 . Consultado el 10 de febrero de 2023 .
  156. ^ "Pumas-AI". Pumas-AI . Archivado desde el original el 10 de febrero de 2023 . Consultado el 10 de febrero de 2023 .
  157. ^ "Versión v1.3.0 · FRBNY-DSGE/DSGE.jl". GitHub . Archivado desde el original el 3 de enero de 2022 . Consultado el 3 de enero de 2022 . Nuevas subespecificaciones de Model1002 para estimar el DSGE con shocks de COVID-19
  158. ^ "Casos de uso de finanzas y economía". Lenguaje de programación Julia . 2 de mayo de 2023 . Consultado el 4 de mayo de 2023 .
  159. ^ ab D'Cunha, Suparna Dutt (20 de septiembre de 2017). "Cómo un nuevo lenguaje de programación creado por cuatro científicos ahora es utilizado por las empresas más grandes del mundo". Forbes . Archivado desde el original el 1 de octubre de 2022 . Consultado el 1 de octubre de 2022 .
  160. ^ "Julia por la seguridad electoral". Julia Forem. 23 de septiembre de 2022. Archivado desde el original el 4 de septiembre de 2024. Consultado el 27 de septiembre de 2022 .
  161. ^ "Premio Nobel Thomas J. Sargent - JuliaHub". juliahub.com . Archivado desde el original el 10 de febrero de 2023 . Consultado el 10 de febrero de 2023 .

Lectura adicional

  • Nagar, Sandeep (2017). Introducción a la programación en Julia: para ingenieros y científicos. Springer. ISBN 978-1-4842-3171-5.
  • Bezanson, J; Edelman, A; Karpinski, S; Shah, VB (2017). "Julia: un nuevo enfoque de la computación numérica". Revisión SIAM . 59 (1): 65–98. arXiv : 1411.1607 . CiteSeerX  10.1.1.760.8894 . doi :10.1137/141000671. S2CID  13026838.
  • Joshi, Anshul (2016). Julia para la ciencia de datos: explora el mundo de la ciencia de datos desde cero con Julia a tu lado. Packt. ISBN 978-1-78355-386-0.
  • Tobin A Driscoll y Richard J. Braun (agosto de 2022). "Fundamentos del cálculo numérico: edición Julia". SIAM. ISBN 978-1-611977-00-4 . 
  • CT Kelley (2022). "Resolución de ecuaciones no lineales con métodos iterativos: solucionadores y ejemplos en Julia", SIAM. ISBN 978-1-611977-26-4 . 
  • Kalicharan, Noel (2021). Julia - Bit by Bit. Temas de pregrado en informática. Springer. doi :10.1007/978-3-030-73936-2. ISBN 978-3-030-73936-2. Número de identificación del sujeto  235917112.
  • Clemens Heitzinger (2022): "Algoritmos con Julia", Springer, ISBN 978-3-031-16559-7.
  • Sitio web oficial
  • Julia en GitHub
Obtenido de "https://es.wikipedia.org/w/index.php?title=Julia_(lenguaje_de_programación)&oldid=1252682290"