native code in 0.19
evanczによる投稿
雑にまとめると
最初は特に何も書かないでいた
リバースエンジニアリングして結構native moduleを書く人が現れて、
想定と反していっぱい書く人が現れた
最初はいいんじゃねと思った
ということで委員会みたいなのを作って、野良native moduleをレビューした
ナントカ.jsのバインディングばっかで、なんかいまいちだねってなった
さらに増えた
そもそも使い方のドキュメントがないのに
ちゃんと意図を伝えよう
既存のNativeをKernelに変更
ちゃんと意図された使い方にエンコードするのを提案した
以前の投稿の要約
重要なこと
信頼性
コンパイルできたら、動作する elmの大きな利点
任意のjsバインディングを持つことは、これを諦めることになる
移植性
elmはいつかwebassemblyにコンパイルされる
jsがないサーバーなど、他のドメインを対象にすることがある
elmがそういう境界を超えて働くのは貴重
セキュリティ
今の所、パッケージの中に罠を入れるのは難しい
任意のバインディングは危険に繋がりかねない
コンテキスト
多言語は、FFIでCを呼ぶ方法を持っている。これはいい。elmにもほしい
elm版jqueryがほしいとは思えない
こういうバインディングを否定するのは、優れたelmパッケージで終わったこと
エルムのエコシステムは強い
遅い道だが、elmで書かれたパッケージを得るだろう
パフォーマンス/コードサイズ
特定のフォーマットに依存されていなければ、コミュニティが大きなコストを払わずに劇的に変更できる
事実やっている
コンパイル速度や、出力サイズを縮小した
OSのカーネルみたいにリフレームすることで、同様のトレードオフに直面している他のシステムを強調できると期待した
規律は信頼できない
抜け道があれば人は歩くだろう
webassemblyの兆しが見えた
無視してドアを開くこともできるし
どうハンドリングするかを考えることもできる
私はちゃんと扱うことがより責任ある選択と思う