2021-05-13に更新

Elixir学習日記2: ElixirとErlang

Elixirの勉強を進めている。

学んだこと

  • Elixirのファイルの拡張子は.exs
  • Atomなどのエディタで普通に書いて、ターミナルから実行できる。ただし、実行環境にはDockerが必要(?)
  • 実行環境は、Dockerという仮想環境構築ソフトで用意する。
    • Dockerというのは、仮想環境を用意してくれるアプリケーション。けっこう容量が大きい。
    • たとえば、Macで開発しているのに、Windows上で動くか?とかいうのを試すことができる。
    • JavaがJava Virtual Machineという仮想マシン上で動くように、Elixirは—内部的には—BEAMという仮想マシンの上で実行される。
      • 現代的なプログラム言語は、実はそれぞれに専用の仮想マシンを持っていることが多い。
      • 例えば、Rubyもそれ専用のバーチャルマシン(YARVという)の上で解釈され、実行されている。
    • BEAMは、もともとはErlangというプログラミング言語のために開発された実行環境。
    • ErlangとElixirは違う言語だけれど、ElixirのプログラムもBEAM上で実行可能。
    • 似たような関係に、JavaとKotlinがある。言語は違うが、同じ環境の上で実行可能。
    • .exsファイルを実行すると、BEAM上で実行できるバイトコードに変換され、BEAMが解釈することでプログラムが実行可能になる。
    • このように、ElixirはErlangと深い関係にある。
    • ElixirのコンパイラがErlangで開発されている。など。

Erlangについて

Elixirを実行してみる

hello, world!

Elixirで、標準出力に'hello, world!'を出力してみましょう。
こんなプログラムを用意します。

# ~/elixir_study/hello.exs
IO.puts('hello, world!')

image.png

ファイルが保存してあるディレクトリに移動し、ターミナルで以下を実行します。

elixir hello.exs

image.png

実行できました!

所感

elixir hello.excを実行してから'hello, world!'が表示されるまで、結構時間がかかる(1秒未満だけど0.7秒くらい?)ので、仮想マシンで実行しているのだな〜、コンパイルしているのだな〜という感じがする。

次は?

引き続きどんなことができるのか学習していきます。

ツイッターでシェア
みんなに共有、忘れないようにメモ

mkataoka73

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント