このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

残念

言語仕様がちゃんと定義されていて、処理系もたくさんある ( http://sml-family.org/) のに、なんか残念感がただよう。

  1. パッケージマネージャがあるにはあるが (https://github.com/standardml/smackage)、使われている形跡がない。
  2. パッケージングの方法がドキュメントされてない。または、ドキュメントが探しにくい。
  3. インターネット上のライブラリ(モジュール)のリポジトリがない。マイナーなのがあるのかも知れないが露出してない。
  4. ビルドシステムがない、または処理系ごとにバラバラ。
  5. コンパイラーの吐き出すオブジェクト形式の標準がない。
  6. したがっって、ソースコード以外の交換形式がない。
  7. 分割コンパイルの方法が処理系ごとにバラバラ。
  8. FFI(他言語とのリンク)も、たぶんバラバラ。
  9. ソースコードの物理的配置の規則がない。
  10. この状況だと、言語仕様が標準化されていても、処理系ごとの互換性は事実上ない。
  11. 言語レベルで互換な処理系があっても、共通なライブラリを作るのは困難。
  12. 小さな弱小蛸壺コミュニティがたくさんあるだけで、総体としての力がない。

次のような方針が裏目に出ている感じ。

  • 言語仕様を標準化して、多様な処理系の出現と競争を促す → 言語仕様だけで互換性を担保できないので、蛸壺になった。
  • 実装レベル、バイナリレベルまでは規定しない → 周辺の規約やツールチェインは重要。バイナリ(オブジェクトレベル)の互換性も重要。それがないので、蛸壺になった。

現代のプログラミング言語においては、パッケージマネージャとエコシステムこそが肝だと思うが、そこがゴッソリ抜けている感じ、残念だ。