yu-tarrrrの日記

完全に個人の趣味でその時々書きたいことを書く

Elixirに入門する

はじめに

  • 久しぶりの投稿になりますが、今回はElixirに入門してみます

背景

  • 私はプログラマになって3年経ちますが、圧倒的に静的型付け言語を書くことが多く、パラダイムの違う言語を書きたいと強く思い、この度Elixirに入門することにしました。
  • というのも、僕の同僚から以前 こんな記事 が送られてきて、結論プログラマになるためには、10年かかるということを理解したんです。そのなかで、じゃあどんな学習方法がいいんだろう?って考えた時に、

    少なくとも半ダースのプログラミング言語を学ぶこと。そのうちの一つはクラス抽象をサポートするもの(例えば JavaC++)、一つは関数抽象をサポートするもの(例えば Lisp や ML)、一つは構文抽象をサポートするもの(例えば Lisp)、一つは宣言的記述をサポートするもの(例えば PrologC++ テンプレート)、一つは coroutine をサポートするもの(Icon や Scheme)、そして一つは並列処理をサポートするもの(例えば Sisal)であること。

という記述があって、あと5言語はやらないといけないなと思ったわけです。 今までにJava, Kotlin, Python, JavaScriptとか触ってきたのですが、圧倒的にJavaとKotlin経験が多く、2つはパラダイムが似てる(というかコンパイルしたら同じ)ので、ほぼ1つの言語しかまともに書いてきてないんだなということを急に実感したわけです。

そこで

  • パラダイムの全然違う言語を書きたいと思い、Elixirを選択したという次第なんです。
  • 個人的には最近Rustも面白いと感じているので、Elixirが落ち着いたらRustも書きたいと思っています。

早速入門する

  • 早速入門していきます
  • 僕の場合はmac OSなので brew install elixir でいけます
$ brew install elixir
$ elixir -v
Erlang/OTP 22 [erts-10.7.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Elixir 1.10.2 (compiled with Erlang/OTP 22)

これだけです。書くOS毎のinstall方法は 公式に載っているのでそれを参考に。

  • Elixirには iex という対話モードがあり、入力したそばからコードを評価してくれます。
  • iexを起動する
$ iex
Erlang/OTP 22 [erts-10.7.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Interactive Elixir (1.10.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :hello
:hello
iex(2)> hoge = "fuga"
"fuga"
iex(3)> hoge
"fuga"

基本的なことはElixir Schoolに書いてあるので、あとはこれを進めて行くだけですね。

まとめ

  • とりあえず、自分の意思表明として今回はブログを書きましたが、次回はちゃんと中身のあることを書いていこうと思う。