話の発端は,Pleromaという分散型SNSのサーバープログラムをインストールすることができない(mastodonはできたのに)というところからでした。
インストール手順を再検討すると同時に,PleromaがElixirという言語で書かれているというので,Elixirの本も読み始めました。
Elixirというのは,Erlangを元に作られたというのを知り,Erlangを実行する環境で動くという話を聞いて,Erlangについても調べて見ました。
ところで……。
Erlangというのは難解だと言われていて,「Erlangを実行する仮想マシンは優秀だけど,Erlang自体は……」みたいな言われ方もしているくらいなんだけど……。
本をパラパラめくった限りでは,
「Erlangそんな変じゃないやん。」
確かにオブジェクト指向全盛のこの時代,関数型言語自体がとっつきにくいとか,一周回って新鮮だって話になるけど,Lispの世界で物を考えてきた私からすれば,Erlangそんなに変ではなかったのでした。
……まあ,実際にプログラム書くとなればまた話は変わるのかもしれないのですが……。
そうすると,Erlang自体から逃げる理由はないわけですし,ElixirもErlangベースだってわかると,
「もしかしたらErlangベースのLispだってあるんじゃないの?(だってJavaに対するClojureがあるわけで)」
と思って探してみると案の定あるわけです。
それが,Lisp Flavored Erlang 略してLFEなわけです。
というので,LFEを本格的に勉強してみようかな……という次第。
(平行してErlangも勉強してみるわけです。)
ちなみに Lisp Flavored Erlang は,Erlangが走る仮想機械BEAMで動くLispです。Erlangでできることはたいていできるとの評判です。