Elixirをなぜか始めた

なぜか書いている。理由は俺もよくわからない。いやわかっているけれど。

わたしなりのプログラミング言語の学び方

急がば回れ、まずは文法から#

わたしは昔 JavaScript と jQuery の区別がつかないで書いていた時期があり、そのときの反省から知らないプログラミング言語と知らないフレームワークを同時に学ぶのは避けるようにしている。今回は Elixir を学ぶ理由のうち Phoenix という Web フレームワークを使いたいというモチベーションがあるのだが、ここはストイックにフレームワークは Hello, World 程度だけを済ませ、まずは言語としての側面を理解するようにする。

そもそも、 Phoenix を Hello, World しようとすると Node.js, Potsgres SQL のような外部ツール、mix という Elixir のパッケージマネージャ兼ビルドツールなどがあり、それらが生成するファイルには拡張子が .ex のやつと .exs のやつがあって、などと初見では全くわからないという状態に陥ること必至。まずは Elixir の文法を知ろう。

小さく、シンプルに始めよ#

まずは REPL だけで動かす。パターンマッチなど、複数行必要で大変になってきたらてきとうなテキストエディタを使う。テキストエディタは当然なんでもいいが、IDEはビルドツールと連携することを前提にしていたりするので、ビルドツールを学んでいない状態では使うのを避けている。

なので、Elixir の場合は elixir コマンドと iex コマンドだけを使って学んでいく。

公式Guideを読む#

新しい言語は特にドキュメントを書く文化や機構が成熟していることが多い。Elixir の場合はここから入門できる。とにかく Getting Started をはじめから順番に、雑にやっていく。

公式であることがポイントだ。

今まで学んだこと

まだ道半ばなので全然学べていないが、次のような感想をもっている。

  • パターンマッチが強力な動的型付け言語
    • 静的型のノリだと「おや?」と思うところが結構ある
      • case とかで全ケース網羅できているかどうかがコンパイル時は決まらないとか
  • 高階関数の使い方がまだあんまりつかめていない
  • 同じ関数の名前をつけると別ブロックなのにパターンマッチになっているのなんか変な感じがする
    • 最初オーバーロードに見えた

まだまだやることはあるのでとりあえずいろいろ言うのは控えよう。まだまだ楽しめる。 けどオレ本当に Elixir の仕事やるのかな