fbpx
Wikipedia

Elixir (lenguaje de programación)

Elixir es un lenguaje de programación funcional, concurrente, de propósito general que se ejecuta sobre la máquina virtual de Erlang (BEAM). Elixir está escrito sobre Erlang y comparte las mismas abstracciones para desarrollar aplicaciones distribuidas y tolerantes de fallos. Elixir también proporciona un diseño extensible con herramientas productivas. Incluye soporte para metaprogramación en tiempo de compilación con macros y polimorfismo mediante protocolos.[1]

Elixir
Desarrollador(es)
José Valim
https://elixir-lang.org/
Información general
Extensiones comunes .ex, .exs
Paradigma multiparadigma: funcional, concurrente, distribuido, orientada a procesos
Apareció en 9 de enero de 2011 (10 años, 6 meses y 24 días)
Diseñado por José Valim
Última versión estable 1.9.0 (24 de junio de 2019 (2 años, 1 mes y 8 días))
Última versión en pruebas 1.5.0-rc.2 (20 de julio de 2017 (4 años y 13 días))
Sistema de tipos dinámico
Influido por Erlang, Ruby, Clojure
Sistema operativo Multiplataforma
Licencia Licencia Apache, versión 2.0

Elixir ha cosechado éxito en la industria con empresas como Pinterest[2]​ y Moz.[3]​ Elixir también es usado para el desarrollo web, por empresas como Bleacher Report, Discord, e Inverse,[4]​ y para desarrollar sistemas embebidos.[5][6]​ La comunidad organiza eventos anuales en los Estados Unidos,[7][8][9]​ Europa[10]​ y Japón,[11]​ así como conferencias menores.[12][13]

Historia

José Valim es el brasileño creador del lenguaje de programación Elixir, y del proyecto R&D de Plataformatec, una filial del nubank.[14]​ Sus objetivos eran crear un lenguaje que permitiese una alta extensibilidad y productividad en la máquina virtual de Erlang mantieniendo compatibilidad con el ecosistema de Erlang.[15][16]

Características

Ejemplos

Los siguientes ejemplos se pueden ejecutar desde el intérprete o se pueden guardar en un fichero y ejecutarlo desde la línea de comandos escribiendo elixir <nombre del fichero>.

Ejemplo clásico Hola mundo:

iex> IO.puts "Hola mundo" Hola mundo 

Comprensiones de listas

iex> for n <- [1,2,3,4,5], rem(n,2) == 1, do: n*n [1, 9, 25] 

Búsqueda de patrones

iex> [1, a] = [1, 2] iex> a 2 iex> {:ok, [hello: a]} = {:ok, [hello: "world"]} iex> a "world" 

Módulos

defmodule Fun do def fib(0), do: 0 def fib(1), do: 1 def fib(n) do fib(n-2) + fib(n-1) end end 

Invocación secuencial de miles de procesos

for num <- 1..1000, do: spawn fn -> IO.puts "#{num * 2}" end 

Realización de tareas de forma asíncrona

task = Task.async fn -> perform_complex_action() end other_time_consuming_action() Task.await task 

Véase también

Referencias

  1. «Elixir Protocols». José Valim. Consultado el 17 de febrero de 2013. 
  2. «Introducing new open-source tools for the Elixir community». Consultado el 1 de agosto de 2016. 
  3. «Unlocking New Features in Moz Pro with a Database-Free Architecture». Consultado el 1 de agosto de 2016. 
  4. «What big projects use Elixir?». Consultado el 1 de agosto de 2016. 
  5. «Elixir in production interview: Garth Hitchens». Consultado el 1 de agosto de 2016. 
  6. «Nerves - Craft and deploy bulletproof embedded software in Elixir». Consultado el 1 de agosto de 2016. 
  7. «ElixirConf 2014». Consultado el 1 de agosto de 2016.  (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  8. «ElixirConf 2015». Consultado el 1 de agosto de 2016.  (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  9. «ElixirConf». Consultado el 1 de agosto de 2016. 
  10. «ElixirConf». Consultado el 1 de agosto de 2016. 
  11. . Archivado desde el original el 18 de junio de 2017. Consultado el 9 de julio de 2017. 
  12. «Elixir LDN». Consultado el 1 de agosto de 2016. 
  13. «EMPEX - Empire State Elixir Conference». Consultado el 1 de agosto de 2016. 
  14. «Important information about our Elixir and Ruby Open Source projects». Consultado el 7 de enero de 2020. 
  15. Elixir - A modern approach to programming for the Erlang VM. Consultado el 17 de febrero de 2013. 
  16. José Valim - ElixirConf EU 2017 Keynote. Consultado el 14 de julio de 2017. 
  17. «Elixir». Consultado el 7 de septiembre de 2014. 
  18. Loder, Wolfgang (12 de mayo de 2015). Erlang and Elixir for Imperative Programmers. "Capítulo 16: Code Structuring Concepts", sección "Actor Model": Leanpub. Consultado el 7 de julio de 2015. 

Enlaces externos

  • Página web de Elixir
  • Código en GitHub
  • Examples of most common features
  • Elixir - A modern approach to programming for the Erlang VM (peresentación en vídeo)
  • Dave Thomas: "Programming Elixir 1.2: Functional → Concurrent → Pragmatic → Fun" (book)
  • Simon St. Laurent, J. David Eisenberg: "Introducing Elixir" (book)
  • Chris McCord: "Metaprogramming Elixir " (book)
  • Joe Armstrong: "A Week with Elixir" (entrada de blog)
  • Introduction to Elixir programming
  •   Datos: Q5362035
  •   Multimedia: Elixir (programming language)

elixir, lenguaje, programación, elixir, lenguaje, programación, funcional, concurrente, propósito, general, ejecuta, sobre, máquina, virtual, erlang, beam, elixir, está, escrito, sobre, erlang, comparte, mismas, abstracciones, para, desarrollar, aplicaciones, . Elixir es un lenguaje de programacion funcional concurrente de proposito general que se ejecuta sobre la maquina virtual de Erlang BEAM Elixir esta escrito sobre Erlang y comparte las mismas abstracciones para desarrollar aplicaciones distribuidas y tolerantes de fallos Elixir tambien proporciona un diseno extensible con herramientas productivas Incluye soporte para metaprogramacion en tiempo de compilacion con macros y polimorfismo mediante protocolos 1 ElixirDesarrollador es Jose Valimhttps elixir lang org Informacion generalExtensiones comunes ex exsParadigmamultiparadigma funcional concurrente distribuido orientada a procesosAparecio en9 de enero de 2011 10 anos 6 meses y 24 dias Disenado porJose ValimUltima version estable1 9 0 24 de junio de 2019 2 anos 1 mes y 8 dias Ultima version en pruebas1 5 0 rc 2 20 de julio de 2017 4 anos y 13 dias Sistema de tiposdinamicoInfluido porErlang Ruby ClojureSistema operativoMultiplataformaLicenciaLicencia Apache version 2 0 editar datos en Wikidata Elixir ha cosechado exito en la industria con empresas como Pinterest 2 y Moz 3 Elixir tambien es usado para el desarrollo web por empresas como Bleacher Report Discord e Inverse 4 y para desarrollar sistemas embebidos 5 6 La comunidad organiza eventos anuales en los Estados Unidos 7 8 9 Europa 10 y Japon 11 asi como conferencias menores 12 13 Indice 1 Historia 2 Caracteristicas 3 Ejemplos 4 Vease tambien 5 Referencias 6 Enlaces externosHistoria EditarJose Valim es el brasileno creador del lenguaje de programacion Elixir y del proyecto R amp D de Plataformatec una filial del nubank 14 Sus objetivos eran crear un lenguaje que permitiese una alta extensibilidad y productividad en la maquina virtual de Erlang mantieniendo compatibilidad con el ecosistema de Erlang 15 16 Caracteristicas EditarEs un lenguaje que compila a bytecode para la maquina virtual de Erlang BEAM 17 Todo es una expresion 17 Las funciones de Erlang se pueden llamar desde Elixir sin tener impacto en tiempo de ejecucion debido a su compilacion al bytecode de Erlang y vice versa Metaprogramacion permitiendo manipular directamente el AST 17 polimorfismo mediante un mecanismo denominado protocolos Al igual que en Clojure los protocolos proporcionan un mecanismo de enlaces dinamicos Aunque esto no debe confundirse con los enlaces multiples ya que los protocolos de Elixir son sobre un unico tipo Soporte para documentacion a traves de docstrings tipo Python en el lenguaje de marcado Markdown 17 Shared nothing concurrent programming via message passing Modelo de Actores 18 Enfasis en la recursion y en funciones de orden superior en vez de bucles basados en efectos secundarios Evaluaciones perezosas y promesas mediante flujos Busqueda de patrones 17 Soporte de Unicode y cadenas de caracteres UTF 8Ejemplos EditarLos siguientes ejemplos se pueden ejecutar desde el interprete o se pueden guardar en un fichero y ejecutarlo desde la linea de comandos escribiendo elixir i lt nombre del fichero gt i Ejemplo clasico Hola mundo iex gt IO puts Hola mundo Hola mundo Comprensiones de listas iex gt for n lt 1 2 3 4 5 rem n 2 1 do n n 1 9 25 Busqueda de patrones iex gt 1 a 1 2 iex gt a 2 iex gt ok hello a ok hello world iex gt a world Modulos defmodule Fun do def fib 0 do 0 def fib 1 do 1 def fib n do fib n 2 fib n 1 end end Invocacion secuencial de miles de procesos for num lt 1 1000 do spawn fn gt IO puts num 2 end Realizacion de tareas de forma asincrona task Task async fn gt perform complex action end other time consuming action Task await taskVease tambien Editar Portal Software libre Contenido relacionado con Software libre Referencias Editar Elixir Protocols Jose Valim Consultado el 17 de febrero de 2013 Introducing new open source tools for the Elixir community Consultado el 1 de agosto de 2016 Unlocking New Features in Moz Pro with a Database Free Architecture Consultado el 1 de agosto de 2016 What big projects use Elixir Consultado el 1 de agosto de 2016 Elixir in production interview Garth Hitchens Consultado el 1 de agosto de 2016 Nerves Craft and deploy bulletproof embedded software in Elixir Consultado el 1 de agosto de 2016 ElixirConf 2014 Consultado el 1 de agosto de 2016 enlace roto disponible en Internet Archive vease el historial la primera version y la ultima ElixirConf 2015 Consultado el 1 de agosto de 2016 enlace roto disponible en Internet Archive vease el historial la primera version y la ultima ElixirConf Consultado el 1 de agosto de 2016 ElixirConf Consultado el 1 de agosto de 2016 ElixirConf jp Archivado desde el original el 18 de junio de 2017 Consultado el 9 de julio de 2017 Elixir LDN Consultado el 1 de agosto de 2016 EMPEX Empire State Elixir Conference Consultado el 1 de agosto de 2016 Important information about our Elixir and Ruby Open Source projects Consultado el 7 de enero de 2020 Elixir A modern approach to programming for the Erlang VM Consultado el 17 de febrero de 2013 Jose Valim ElixirConf EU 2017 Keynote Consultado el 14 de julio de 2017 a b c d e Elixir Consultado el 7 de septiembre de 2014 Loder Wolfgang 12 de mayo de 2015 Erlang and Elixir for Imperative Programmers Capitulo 16 Code Structuring Concepts seccion Actor Model Leanpub Consultado el 7 de julio de 2015 Enlaces externos EditarPagina web de Elixir Codigo en GitHub Examples of most common features Elixir A modern approach to programming for the Erlang VM peresentacion en video Dave Thomas Programming Elixir 1 2 Functional Concurrent Pragmatic Fun book Simon St Laurent J David Eisenberg Introducing Elixir book Chris McCord Metaprogramming Elixir book Joe Armstrong A Week with Elixir entrada de blog Introduction to Elixir programming Datos Q5362035 Multimedia Elixir programming language Obtenido de https es wikipedia org w index php title Elixir lenguaje de programacion amp oldid 137113479, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos