Elixir(프로그래밍 언어)

Elixir (programming language)
엘릭시르
elixir programming language
패러다임멀티패키지: 기능, 동시, 분산, 프로세스 지향
처음 등장한2012년, 10년 전(2012년)
안정된 릴리스
1.13.4 / 2022년 4월 7일; 4개월 전 (2022년 4월 7일)
타이핑 분야다이내믹, 스트롱,
플랫폼얼랑
면허증.Apache 라이센스 2.0[1]
파일 이름 확장자.ex, .exs
웹 사이트elixir-lang.org
영향을 받다
클로쥬르, 얼랑, 루비
영향받은
LFE

ElixirErlang 프로그래밍 [2]언어를 구현하는 데에도 사용되는 BEAM 가상 머신에서 실행되는 기능적동시 범용 프로그래밍 언어입니다.Elixir는 Erlang을 기반으로 구축되며 분산된 폴트 톨러런스 애플리케이션을 구축하기 위해 동일한 개념을 공유합니다.또한 Elixir는 생산적인 툴링과 확장 가능한 설계를 제공합니다.후자는 매크로를 사용한 [3]컴파일 시간 메타프로그래밍과 프로토콜을 통한 다형성에 의해 지원됩니다.

Elixir는 [4]Ramp, PagerDuty,[5] Disconsord,[6] Brex,[7] E-MetroTel,[8] Pinterest,[9] [10]Moz, Bleacher Report,[11] The Outline,[12] Inverse,[13] Divvy,[14] FarmBot[15] 등의 기업에서 사용되고 있습니다.[16][17]커뮤니티는 미국,[18][19] 유럽 및 [20]일본에서 매년 열리는 이벤트와 소규모 지역 이벤트 및 [21][22]회의를 주최합니다.

역사

Jose Valim은 Plataformatec에서 작성된 연구 개발 프로젝트인 Elixir 프로그래밍 언어의 창시자입니다.그의 목표는 Erlang의 [23][24]생태계와의 호환성을 유지하면서 Erlang VM의 확장성과 생산성을 높이는 것이었습니다.

José Valim은 대규모 사이트와 앱을 위한 프로그래밍 언어를 만드는 것을 목표로 했습니다.Ruby 개발자인 그는 Ruby, Erlang, Clojure의 기능을 사용하여 높은 통화성과 낮은 레이텐시 언어를 개발했습니다.Elixir는 대량의 데이터를 처리할 수 있도록 설계되었습니다.그 속도와 기능은 Elixir를 통신,[25] 전자상거래 및 금융업계에 확산시켰습니다.

2018년 7월 12일, 허니팟은 Elixir에 [26]대한 미니 다큐멘터리를 개봉했다.

버전 관리

Elixir는[27] 대부분 시멘틱 버전 관리를 따르며 1초 동안 계획이 없는 1개의 메이저 버전만 가지고 있습니다.각 마이너 버전은 특정 범위의 Erlang/[28]OTP 버전을 지원합니다.

특징들

다음 예시는 다음과 같은 방법으로 실행할 수 있습니다.iex셸 또는 파일에 저장하여 명령줄에서 실행elixir <filename>.

Classic Hello 월드의 예:

iex >입출력.놓다('헬로 월드') 헬로 월드! 

이해

iex >위해서 n <-> [1,2,3,4,5], 기억하다(n, 2) == 1, 하다: n*n [1, 9, 25] 

패턴 매칭(파괴)

iex >[1, a] = [1, 2] iex >a 2  iex >{:OK, [안녕: a]} = {:OK, [안녕: "세계"]} iex >a "세계" 

패턴 매칭(복수구)

iex >사례. 파일.읽어주세요("경로/파일") 하다 iex >  {:OK, 내용물} -> 입출력.놓다("파일을 찾았습니다.#{내용물}") iex >  {: 에러, 이유} -> 입출력.놓다("파일 삭제:#{이유}") iex >끝. 

파이프 연산자

iex >"1" > 스트링.행선지() > 커널.*(2) 2 

모듈

디모듈 재밌어요 하다   방어하다 파이브(0), 하다: 0   방어하다 파이브(1), 하다: 1   방어하다 파이브(n), 하다: 파이브(n-2) + 파이브(n-1)   끝. 

수천 개의 프로세스를 순차적으로 산란하다

위해서 숫자 <-> 1..1000, 하다: 낳다 fn -> 입출력.놓다("#{숫자 * 2}") 끝. 

비동기적으로 태스크 수행

작업 = 작업.비동기 fn -> 실행_복잡한_액션() 끝. other_time_consuming_action() 작업.기다리다 작업 

주목할 만한 Elixir 프로젝트

  • Mix는 Elixir 프로젝트의 작성, 컴파일 및 테스트, 의존관계 관리 [33]등의 태스크를 제공하는 빌드 자동화 도구입니다.
  • Phoenix는 서버 측 모델 뷰 컨트롤러([34]MVC) 패턴을 구현하는 Elixir로 작성된 웹 개발 프레임워크입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "elixir/LICENSE at master · elixir-lang/elixir · GitHub". GitHub.
  2. ^ "Most Popular Programming Languages of 2018 - Elite Infoworld Blog". 2018-03-30. Retrieved 2018-05-08.
  3. ^ "Elixir". José Valim. Retrieved 2013-02-17.
  4. ^ "Elixir at Ramp". Ramp. 2021-05-24. Retrieved 2022-02-25.
  5. ^ "Elixir at PagerDuty". PagerDuty. 2018-06-14. Retrieved 2019-04-21.
  6. ^ Vishnevskiy, Stanislav (Jul 6, 2017). "How Discord Scaled Elixir to 5,000,000 Concurrent Users". Retrieved 2019-04-21.
  7. ^ Valim, José (2020-06-23). "Elixir at fintech with Brex". elixir-lang.github.com. Retrieved 2020-11-14.
  8. ^ "What's New in Release 6.0 Documentation". www.emetrotel.com. Retrieved 2019-04-21.
  9. ^ "Introducing new open-source tools for the Elixir community". Retrieved 2016-08-01.
  10. ^ "Unlocking New Features in Moz Pro with a Database-Free Architecture". Retrieved 2016-08-01.
  11. ^ "Elixir". Bleacher Report Engineering. Retrieved 2019-05-22.
  12. ^ Lucia, Dave (Sep 24, 2018). "Two years of Elixir at The Outline". Retrieved 2019-05-22.
  13. ^ "What big projects use Elixir?". Retrieved 2016-08-01.
  14. ^ "Why Divvy uses Elixir instead of more popular coding languages". 2 April 2019. Retrieved 2019-04-30.
  15. ^ The operating system and all related software that runs on FarmBot's Raspberry Pi.: FarmBot/farmbot_os, FarmBot, 2019-10-28, retrieved 2019-10-29
  16. ^ "Elixir in production interview: Garth Hitchens". 3 June 2015. Retrieved 2016-08-01.
  17. ^ "Nerves - Craft and deploy bulletproof embedded software in Elixir". Retrieved 2016-08-01.
  18. ^ "ElixirConf". Retrieved 2018-07-11.
  19. ^ "ElixirConf". Retrieved 2018-07-11.
  20. ^ "Erlang & Elixir Fest". Retrieved 2019-02-18.
  21. ^ "Elixir LDN". Retrieved 2018-07-12.
  22. ^ "EMPEX - Empire State Elixir Conference". Retrieved 2018-07-12.
  23. ^ Elixir - A modern approach to programming for the Erlang VM. Retrieved 2013-02-17.
  24. ^ José Valim - ElixirConf EU 2017 Keynote. Archived from the original on 2021-11-17. Retrieved 2017-07-14.
  25. ^ "Behinde the code: The One Who Created Elixir". Retrieved 2019-11-25.
  26. ^ "Elixir: A Mini-Documentary". Retrieved 2021-10-30.
  27. ^ "Imperative Assignements are breaking the application in 1.7 update · Issue #8076 · elixir-lang/elixir". GitHub. Retrieved 2020-02-10.
  28. ^ Elixir is a dynamic, functional language designed for building scalable and maintainable applications: elixir-lang/elixir, Elixir, 2019-04-21, retrieved 2019-04-21
  29. ^ a b c d e f "Elixir". Retrieved 2014-09-07.
  30. ^ Loder, Wolfgang (12 May 2015). Erlang and Elixir for Imperative Programmers. "Chapter 16: Code Structuring Concepts", section title "Actor Model": Leanpub. Retrieved 7 July 2015.{{cite book}}: CS1 유지보수: 위치(링크)
  31. ^ Wlaschin, Scott (May 2013). "Railway Oriented Programming". F# for Fun and Profit. Archived from the original on 30 January 2021. Retrieved 28 February 2021.
  32. ^ "Writing assertive code with Elixir". 24 September 2014. Retrieved 2018-07-05.
  33. ^ "Mix". Retrieved 2019-04-18.
  34. ^ "Overview". Retrieved 2019-04-18.

외부 링크