-
1:ID:i8fucl · 2018-03-18

#elixir ここにいる人でElixirつかってる人、いないんですかね?
軽量プロセスで超並列化できるし、パイプ演算子は後から見返しても何やってるかわからなくなりにくいし、データを予期せず破壊することもないし、楽しい言語だと思うんだけどなー
検索しても1件も質問がない

17 件の回答

2:ID:kwHCAK · 2018-03-18

それって何ですか?説明してくだせえ

3:ID: · 2018-03-18

Re:2
ElixirはErlang VM(BEAM)上で動く関数型言語だよ まぁJVMでいうところのScalaみたいな感じ
構文は昔からある関数型言語も参考にしつつRubyあたりをだいぶ参考にしていてモダン

関数型言語だから、特徴として
- 関数が型として存在する(他の関数の引数に関数を渡せる)
- オブジェクトは存在しない、全てはデータ
- データはimmutable(破壊的変更ができない、それっぽいことするときは新しいデータを生成して返す)

あとはBEAM上で動いているゆえの特徴として
- Erlangの関数が全部使える
- 軽量プロセスが使えて並列処理が大の得意 (他言語でのシステムスレッドやプロセスと違ってめちゃくちゃ軽い)

言語の特徴としては
- module と function の2つでプログラミングする
- (Erlangとちがって)マクロがある
- (Rubyとちがって)プリコンパイルされる
- 動的型付け(静的チェッカーはある)
- 基本的にアプリケーションは本体とそれを監視する親からなる(それぞれが軽量スレッド)
 - ↑なのでなにかエラーが起きてもrescueとかせずクラッシュさせる
 - クラッシュしたら親がプロセスを再起動させる
- パイプ演算子( |> )がある
 - 1つ前の結果を次の関数の第一引数に渡す
 - "1, 2, 3, 4" |> String.split(", ") |> Enum.map(&String.to_integer/1) |> Enum.sum()
  - 10 が返ってくる
  - Enum.mapには関数を渡している
  - 各ステージでどんな型が渡されるか想像しやすい

RailsにあたるPhoenixってフレームワークが存在してて、Railsのだめなとこ(名前規約が強すぎる、シングルスレッドの呪縛がある、大きなアプリケーションに向いてない、遅い)が解決していてつよい
BEAMが何十年も商用利用されてきていて信頼性が(若い言語なのに)あるのもポイント

4:ID:OmTa16 · 2018-03-18

ここに来る人はもっともっと下層にいるから場違いかと。

5:ID:J68zc7 · 非表示
6:ID:eGU6BB · 2018-03-18

関数型言語信仰はHaskellだけで飽きたから失せろ。

7:ID:dZmyBh · 2018-03-18

Re:6
やっぱ論理型だよなぁ

8:ID:L0jQYW · 2018-03-18

関数型ってことくらいしか知らん。どういった類いの業務に強い言語なの?(何でもいけるとかいう答えはNGね。言語の強みとそれが特に活きるところが知りたいので)

9:ID:qsasPI · 2018-03-18

この世には、エリクサーを躊躇なく使える人間と、使えない人間がいるんだ。
https://blog.tinect.jp/?p=45903

10:ID:O0uHso · 2018-03-18

エリクサーって名前のアプリ多いから紛らわしいよな。

11:ID: · 削除
12:ID: · 2018-03-18

Re:8
用途でいうと
- 通信系
 - もともとErlangはエリクソン社の業務用通信機器のソフトウェアなどに多く用いられてきたこともあって、Elixirも通信系に強みがある
 - Phoenixというフレームワークがあり、標準で文字列型がUTF-8であったりすることもあって、現状ではWebのサーバーサイドプログラミングで用いられることが多いかな
  - とくにマイクロアーキテクチャなサービスにはもってこい
- あとはBEAMのマイクロプロセスはもともとネットワーク上で使われることを想定してあってプロセス間通信はネットワークを超えて行えるので、分散サーバーで並行処理をするようなことにも向いてる
- プロセスはVM上なのでコア数に依存せず数十万個とか作れるので、例えばニュースサイトを片っ端から並行してスクレイピングして出来上がり次第DBに保存する、みたいな用途とかにも適合する

APIサーバー以外だと日本だとWebRTCサーバーを書いてる会社があったり、ニコニコのバックエンドの一部がこれで書かれてたり、海外だとゲームサーバーに使ったりもしている

逆に明確に苦手なものもあって、
- BEAMは遅い(Erlang/Elixirのアプリケーションは速いことが多いけれど、それはみんなマルチプロセッシングをしているから)
 - 遅いので、科学技術計算なんかには向かない。
 - ただしCとかRustとかとバインドする機能はあって、それを使えば速い実装もできる
  - でもそれは「Pythonは速い」と同じ話になるので…
- あとはもちろんVM上でしか動かないのでシステムプログラミングはできない。

13:ID: · 2018-03-18

Re:10
日本だと化粧品もアイテムも検索に引っかかるしね

14:ID:RrWPYb · 2018-03-19

Re:9
なんだ、この汚物のような記事はw

15:ID:uQaM2P · 2018-03-19

Re:3
へー、いいじゃん。

17:ID:ewSxEs · 2018-03-20

しらべてみたが、2005年に作られたらしいじゃん。
これから、、といいつつも浸透しないのは戦略の問題だろうね。
WINDOWSみたく、マスト的な存在に成り上がるくらいの営業力がさ。

18:ID:qinx0E · 2018-03-21

Laraのエリクサーのこと?

コメントの受付は終了しました。

一緒に読まれている質問

ページ上部に戻る