Эликсир (бағдарламалау тілі) - Википедия - Elixir (programming language)

Эликсир
эликсир бағдарламалау тілі
Парадигмамультипарадигма: функционалды, қатарлас, таратылды, процеске бағытталған
Бірінші пайда болды2011; 9 жыл бұрын (2011)
Тұрақты шығарылым
1.11.2 / 3 қараша 2020; 41 күн бұрын (2020-11-03)[1]
Пәнді терудинамикалық, күшті, үйрек
ПлатформаЭрланг
ЛицензияApache лицензиясы 2.0[2]
Файл атауының кеңейтімдері.ex, .exs
Веб-сайтэликсир-ланг.org
Әсер еткен
Clojure, Эрланг, Рубин
Әсер етті
LFE

Эликсир Бұл функционалды, қатарлас, жалпы мақсат бағдарламалау тілі жұмыс істейді Сәуле виртуалды машина іске асыру үшін қолданылады Эрланг бағдарламалау тілі.[3] Эликсир Эрлангтың үстіне салынады және құрылыс үшін бірдей абстракциялармен бөліседі таратылды, ақаулыққа төзімді қосымшалар. Эликсир сонымен қатар өнімді құрал-саймандарды ұсынады кеңейтілетін жобалау. Соңғысына компиляция уақыты қолдау көрсетеді метапрограммалау бірге макростар және полиморфизм хаттамалар арқылы.[4]

Elixir сияқты компаниялар қолданады PagerDuty,[5] Келіспеушілік,[6] Брекс,[7] E-MetroTel,[8] Pinterest,[9] Moz,[10] Bleacher Report,[11] Контур,[12] Кері,[13] Дивви,[14] FarmBot[15] және құрылыс үшін ендірілген жүйелер.[16][17] Қоғамдастық жыл сайын АҚШ-та іс-шаралар ұйымдастырады,[18] Еуропа[19] және Жапония[20] сонымен қатар кішігірім жергілікті іс-шаралар мен конференциялар.[21][22]

Тарих

Хосе Валим - Elixir бағдарламалау тілінің жасаушысы, а ғылыми-зерттеу және тәжірибелік-конструкторлық жұмыстар Plataformatec жобасы. Оның мақсаты Erlang экожүйесімен үйлесімділік сақтай отырып, Erlang VM-де жоғары кеңейтуге және өнімділікке мүмкіндік беру болды.[23][24]

Хосе Валим ауқымды сайттар мен қосымшалар үшін бағдарламалау тілін құруды мақсат етті. Рубинді дамытушы бола отырып, ол жоғары келісімді және аз кідірісті тіл дамыту үшін Ruby, Erlang және Clojure мүмкіндіктерін пайдаланды. Эликсир деректердің үлкен көлемін өңдеуге арналған. Оның жылдамдығы мен мүмкіндіктері Elixir-ді телекоммуникация, электрондық коммерция және қаржы салаларында таратты.[25]

2018 жылдың 12 шілдесінде Honeypot компаниясы Elixir туралы шағын деректі фильм шығарды.[26]

Нұсқа нұсқасы

Эликсир негізінен[27] келесі семантикалық нұсқа және тек 1 негізгі нұсқасы бар, бір секундқа жоспар жоқ. Кіші нұсқалардың әрқайсысы Erlang / бағдарламасының белгілі бір ауқымын қолдайдыOTP нұсқалары.[28]

Ерекшеліктер

Мысалдар

Келесі мысалдарды iex қабықшасы немесе файлда сақталған және теру арқылы командалық жолдан іске қосылады эликсир <filename>.

Классикалық Сәлем Әлем мысал:

iex>IO.қояды(«Сәлем Әлем!»)Сәлем Әлем!

Түсіну

iex>үшін n <- [1,2,3,4,5], рем(n, 2) == 1, істеу: n*n[1, 9, 25]

Үлгіні сәйкестендіру (жою)

iex>[1, а] = [1, 2]iex>а2iex>{:Жарайды ма, [Сәлеметсіз бе: а]} = {:Жарайды ма, [Сәлеметсіз бе: «әлем»]}iex>а«әлем»

Үлгіні сәйкестендіру (бірнеше тармақ)

iex>іс Файл.оқыңыз(«жол / файл / файл») істеуiex>  {:Жарайды ма, мазмұны} -> IO.қояды(«файл табылды: #{мазмұны}")iex>  {: қате, себебі} -> IO.қояды(«жоқ файл: #{себебі}")iex>Соңы

Құбыр операторы

iex>"1" |> Жол.to_integer() |> Ядро.*(2)2

Модульдер

дефодуль Көңілді істеу  деф фиб(0), істеу: 0  деф фиб(1), істеу: 1  деф фиб(n), істеу: фиб(n-2) + фиб(n-1)  Соңы

Мың процесті дәйекті түрде уылдырықтандыру

үшін сан <- 1..1000, істеу: уылдырық шашу фн -> IO.қояды("#{сан * 2}") Соңы

Тапсырманы асинхронды түрде орындау

тапсырма = Тапсырма.асинх фн -> кешенді_әрекет() Соңыбасқа_уақыт_тұтыну_әрекеті()Тапсырма.күту тапсырма

Назар аударарлық Elixir жобалары

  • Араластырыңыз бұл Elixir жобаларын құру, құрастыру және тестілеу, оның тәуелділіктерін басқару және тағы басқалар үшін тапсырмаларды қамтамасыз ететін құрастыруды автоматтандыру құралы.[32]
  • Феникс бұл Elixir-де жазылған веб-құрылымдық негіз, ол сервер жағында Model View Controller-ді іске асырады (MVC ) өрнек.[33]
  • Жүйке бұл ендірілген жүйелер мен құрылғыларды құруға арналған платформа, рамка және құрал-саймандар ортасы.[17][34]
  • Ecto Elixir үшін мәліметтер қорының орамы және сұраныстар генераторы болып табылады.[35]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «Шығарылымдар - эликсир-ланг / эликсир». Алынған 3 қараша 2020 - арқылы GitHub.
  2. ^ «эликсир / Лицензия мастерде · эликсир-ланг / эликсир · GitHub». GitHub.
  3. ^ «2018 жылдың ең танымал бағдарламалау тілдері - Elite Infoworld блогы». 2018-03-30. Алынған 2018-05-08.
  4. ^ «Эликсир». Хосе Валим. Алынған 2013-02-17.
  5. ^ «Elixir at PagerDuty». PagerDuty. 2018-06-14. Алынған 2019-04-21.
  6. ^ Вишневский, Станислав (6.07.2017). «Эксиксатты 5 000 000 бір уақытта қолданушыларға қалай мөлшерлеу». Алынған 2019-04-21.
  7. ^ Валим, Хосе (2020-06-23). «Брекспен финтекстегі эликсир». elixir-lang.github.com. Алынған 2020-11-14.
  8. ^ «6.0 шығарылымында қандай жаңалықтар | құжаттама». www.emetrotel.com. Алынған 2019-04-21.
  9. ^ «Elixir қауымдастығы үшін жаңа бастапқы құралдарды ұсыну». Алынған 2016-08-01.
  10. ^ «Moz Pro-да жаңа мүмкіндіктердің дерекқорсыз архитектурасы бар». Алынған 2016-08-01.
  11. ^ «Эликсир». Bleacher Report Engineering. Алынған 2019-05-22.
  12. ^ Люсия, Дэйв (24 қыркүйек 2018). «Эликсирдің екі жылдығы». Алынған 2019-05-22.
  13. ^ «Elixir қандай үлкен жобаларда қолданылады?». Алынған 2016-08-01.
  14. ^ «Неліктен Divvy танымал кодтау тілдерінің орнына Эликсирді қолданады». Алынған 2019-04-30.
  15. ^ FarmBot's Raspberry Pi-де жұмыс жасайтын операциялық жүйе және барлық қатысты бағдарламалық жасақтама: FarmBot / farmbot_os, FarmBot, 2019-10-28, алынды 2019-10-29
  16. ^ «Эликсир өндірістік сұхбатында: Гарт Хитченс». Алынған 2016-08-01.
  17. ^ а б «Нервтер - Эликсирде оқ өткізбейтін бағдарламалық жасақтама жасау және орналастыру». Алынған 2016-08-01.
  18. ^ «ElixirConf». Алынған 2018-07-11.
  19. ^ «ElixirConf». Алынған 2018-07-11.
  20. ^ «Erlang & Elixir Fest». Алынған 2019-02-18.
  21. ^ «Elixir LDN». Алынған 2018-07-12.
  22. ^ «EMPEX - Empire State Elixir конференциясы». Алынған 2018-07-12.
  23. ^ Эликсир - Erlang VM үшін бағдарламалаудың заманауи тәсілі. Алынған 2013-02-17.
  24. ^ Хосе Валим - ElixirConf EU 2017 Негізгі. Алынған 2017-07-14.
  25. ^ «Кодтың артында: Эликсирді жасаған адам». Алынған 2019-11-25.
  26. ^ «Эликсир: шағын деректі фильм». Алынған 2018-07-12.
  27. ^ «Императивті тапсырмалар қолданбаны 1.7 жаңартуда бұзуда. № 8076 шығарылым · эликсир-ланг / эликсир». GitHub. Алынған 2020-02-10.
  28. ^ Эликсир - бұл ауқымды және қолдауға болатын қосымшаларды құруға арналған динамикалық, функционалды тіл: эликсир-ланг / эликсир, Эликсир, 2019-04-21, алынды 2019-04-21
  29. ^ а б c г. e f «Эликсир». Алынған 2014-09-07.
  30. ^ Лодер, Вольфганг (12 мамыр 2015). Императивті бағдарламашыларға арналған Эрланг пен Эликсир. «16 тарау: кодты құрылымдау тұжырымдамалары», бөлім тақырыбы «Актер моделі»: Leanpub. Алынған 7 шілде 2015.CS1 maint: орналасқан жері (сілтеме)
  31. ^ «Эликсирмен сенімді код жазу». Алынған 2018-07-05.
  32. ^ «Араластыру». Алынған 2019-04-18.
  33. ^ «Шолу». Алынған 2019-04-18.
  34. ^ «Бастау». Алынған 2019-04-18.
  35. ^ «Бастау». Алынған 2019-04-16.

Сыртқы сілтемелер