Elixir es utilizado por empresas como PagerDuty , [5] Discord , [6] Brex , [7] E-MetroTel, [8] Pinterest , [9] Moz, [10] Bleacher Report , [11] The Outline , [12 ] Inverse , [13] Divvy, [14] FarmBot [15] y para la construcción de sistemas integrados . [16] [17] La comunidad organiza eventos anuales en los Estados Unidos, [18] Europa [19] y Japón [20]así como eventos y conferencias locales menores. [21] [22]
Contenido
1 Historia
2 Control de versiones
3 características
4 ejemplos
5 proyectos destacados de Elixir
6 Véase también
7 referencias
8 Enlaces externos
Historia
José Valim es el creador del lenguaje de programación Elixir, un proyecto de investigación y desarrollo creado en Plataformatec. Sus objetivos eran permitir una mayor extensibilidad y productividad en Erlang VM, manteniendo la compatibilidad con el ecosistema de Erlang. [23] [24]
José Valim tenía como objetivo crear un lenguaje de programación para sitios y aplicaciones a gran escala. Al ser un desarrollador de Ruby, usó características de Ruby, Erlang y Clojure para desarrollar un lenguaje de alta concurrencia y baja latencia. Elixir fue diseñado para manejar grandes volúmenes de datos. Su velocidad y capacidades propagan Elixir en las industrias de telecomunicaciones, comercio electrónico y finanzas. [25]
El 12 de julio de 2018, Honeypot lanzó un mini-documental sobre Elixir. [26]
Control de versiones
Elixir principalmente [27] sigue versiones semánticas y solo tiene una versión principal sin planes para una segunda. Cada una de las versiones menores admite un rango específico de versiones de Erlang / OTP . [28]
Características
Compila en código de bytes para la máquina virtual Erlang (BEAM) [29]
Todo es una expresión [29]
Las funciones de Erlang se pueden llamar desde Elixir, y viceversa, sin impacto en el tiempo de ejecución , debido a la compilación en el código de bytes de Erlang.
Metaprogramación que permite la manipulación directa del árbol de sintaxis abstracta (AST) [29]
Polimorfismo a través de un mecanismo llamado protocolos. Al igual que en Clojure , los protocolos proporcionan un mecanismo de envío dinámico . Sin embargo, esto no debe confundirse con el envío múltiple, ya que los protocolos Elixir se envían en un solo tipo.
Soporte para documentación a través de cadenas de documentos similares a Python en el lenguaje de formato Markdown [29]
Programación simultánea sin contenido compartido mediante el paso de mensajes ( modelo de actor ) [30]
Énfasis en la recursividad y las funciones de orden superior en lugar del bucle basado en efectos secundarios
Simultaneidad ligera utilizando los mecanismos de Erlang [29]
Programación orientada al ferrocarril a través de la withconstrucción [31]
Herramientas integradas para administrar dependencias, compilación de código, ejecución de pruebas, formateo de código, depuración remota y más
Colecciones perezosas y asíncronas con transmisiones
Coincidencia de patrones [29] para promover un código asertivo [32]
Soporte Unicode y cadenas UTF-8
Ejemplos de
Los siguientes ejemplos pueden ejecutarse en un iexshell o guardarse en un archivo y ejecutarse desde la línea de comandos escribiendo .elixir <filename>
Ejemplo clásico de Hello world :
iex> IO . pone ( "¡Hola mundo!" ) ¡Hola mundo!
Comprensiones
iex> para n <- [ 1 , 2 , 3 , 4 , 5 ], rem ( n , 2 ) == 1 , do : n * n [1, 9, 25]
Coincidencia de patrones (desestructuración)
iex> [ 1 , a ] = [ 1 , 2 ] iex> a 2iex> { : ok , [ hola : a ]} = { : ok , [ hola : "mundo" ]} iex> a "mundo"
Coincidencia de patrones (múltiples cláusulas)
iex> archivo de caso . leer ( "ruta / a / archivo" ) hacer iex> { : ok , contenido } -> IO . pone ( "archivo encontrado: # { contenido } " ) iex> { : error , motivo } -> IO . pone ( "archivo faltante: # { motivo } " ) iex> fin
Mix es una herramienta de automatización de compilación que proporciona tareas para crear, compilar y probar proyectos de Elixir, administrar sus dependencias y más. [33]
Phoenix es un marco de desarrollo web escrito en Elixir que implementa el patrón Model View Controller ( MVC ) del lado del servidor . [34]
^ "Lenguajes de programación más populares de 2018 - Blog Elite Infoworld" . 2018-03-30 . Consultado el 8 de mayo de 2018 .
^ "Elixir" . José Valim . Consultado el 17 de febrero de 2013 .
^ "Elixir en PagerDuty" . PagerDuty . 2018-06-14 . Consultado el 21 de abril de 2019 .
^ Vishnevskiy, Stanislav (6 de julio de 2017). "Cómo Discord escaló Elixir a 5.000.000 de usuarios simultáneos" . Consultado el 21 de abril de 2019 .
↑ Valim, José (23 de junio de 2020). "Elixir en fintech con Brex" . elixir-lang.github.com . Consultado el 14 de noviembre de 2020 .
^ "Novedades de la versión 6.0 | Documentación" . www.emetrotel.com . Consultado el 21 de abril de 2019 .
^ "Presentación de nuevas herramientas de código abierto para la comunidad de Elixir" . Consultado el 1 de agosto de 2016 .
^ "Desbloqueo de nuevas funciones en Moz Pro con una arquitectura sin bases de datos" . Consultado el 1 de agosto de 2016 .
^ "Elixir" . Ingeniería de informes de blanqueador . Consultado el 22 de mayo de 2019 .
^ Lucia, Dave (24 de septiembre de 2018). "Dos años de Elixir en The Outline" . Consultado el 22 de mayo de 2019 .
^ "¿Qué grandes proyectos usan Elixir?" . Consultado el 1 de agosto de 2016 .
^ "Por qué Divvy usa Elixir en lugar de lenguajes de codificación más populares" . 2 de abril de 2019 . Consultado el 30 de abril de 2019 .
^ El sistema operativo y todo el software relacionado que se ejecuta en Raspberry Pi de FarmBot .: FarmBot / farmbot_os , FarmBot, 2019-10-28 , consultado el 2019-10-29
^ "Elixir en la entrevista de producción: Garth Hitchens" . 3 de junio de 2015 . Consultado el 1 de agosto de 2016 .
^ "Nervios - Elaborar e implementar software integrado a prueba de balas en Elixir" . Consultado el 1 de agosto de 2016 .
^ "ElixirConf" . Consultado el 11 de julio de 2018 .
^ "ElixirConf" . Consultado el 11 de julio de 2018 .
^ "Erlang y Elixir Fest" . Consultado el 18 de febrero de 2019 .
^ "Elixir LDN" . Consultado el 12 de julio de 2018 .
^ "EMPEX - Conferencia de elixir de Empire State" . Consultado el 12 de julio de 2018 .
^ Elixir: un enfoque moderno de la programación para Erlang VM . Consultado el 17 de febrero de 2013 .
^ José Valim - ElixirConf EU 2017 Keynote . Consultado el 14 de julio de 2017 .
^ "Behinde el código: el que creó el elixir" . Consultado el 25 de noviembre de 2019 .
^ "Elixir: un mini-documental" . Consultado el 12 de julio de 2018 .
^ "Las asignaciones imperativas están rompiendo la aplicación en la actualización 1.7 · Edición # 8076 · elixir-lang / elixir" . GitHub . Consultado el 10 de febrero de 2020 .
^ Elixir es un lenguaje dinámico y funcional diseñado para crear aplicaciones escalables y fáciles de mantener: elixir-lang / elixir , Elixir, 2019-04-21 , consultado el 2019-04-21
^ a b c d e f "Elixir" . Consultado el 7 de septiembre de 2014 .
^ Loder, Wolfgang (12 de mayo de 2015). Erlang y Elixir para programadores imperativos . "Capítulo 16: Conceptos de estructuración de código", título de la sección "Modelo de actor": Leanpub . Consultado el 7 de julio de 2015 .Mantenimiento de CS1: ubicación ( enlace )
^ Wlaschin, Scott (mayo de 2013). "Programación Orientada al Ferrocarril" . F # por diversión y ganancias . Archivado desde el original el 30 de enero de 2021 . Consultado el 28 de febrero de 2021 .
^ "Escribir código asertivo con Elixir" . Consultado el 5 de julio de 2018 .
^ "Mezclar" . Consultado el 18 de abril de 2019 .
^ "Resumen" . Consultado el 18 de abril de 2019 .
enlaces externos
Sitio web de Elixir Language
Control de autoridad
Bibliotecas nacionales
Estados Unidos
Otro
Microsoft académico
2
Categorías :
Lenguajes de programación concurrentes
Lenguajes funcionales
Lenguajes de programación de coincidencia de patrones
Lenguajes de programación
Lenguajes de programación creados en 2012
Software que usa la licencia de Apache
Categorías ocultas:
CS1 maint: ubicación
Artículos con breve descripción
La descripción breve es diferente de Wikidata
Artículos con tono promocional a partir de junio de 2020