yoriyukiの日記 このページをアンテナに追加 RSSフィード

2007-01-03

[]Lispが何故使われないか Lispが何故使われないかを含むブックマーク

原因のほとんどは経路依存性*1とかネットワーク効果*2によるもので、Lisp自体の性質とは無関係だと思います。と言った上で、私が何となくLisp言語を使わない理由としては、

  1. Too dynamic: 実行時にコードが差し替えられることがすごい利点だ、と言っている人がいましたが、逆に言えば今どのコードが走っているか理解しにくい、という欠点にも繋がる。
  2. Meta programming:S式のおかげでMeta Programmingがしやすいが、Meta Programmingを多用したプログラムは理解しにくい。
  3. 動的型付け:利点でもあるけど、特有のバグを引き起こす。
  4. 識別子に関数と値の2種類が別々にバインドできる。これは私には非常に美しくなく感じます。主観ですが。一方でScheme言語仕様が弱い。(特にModule機能が標準でない)
  5. Proprietaryな実装が中心。CMU LispはStandaloneなネイティブコードを生成してくれない(?)
  6. 上記の利点の大半はRubyErlangで実現されているし、これらはOOやマルチスレッドというEncapsulationに都合のいい機能を言語自体の機能として盛り込んでいる。
  7. (Lisp一般とは違うけど)EmacsLispの印象が悪い。スタックのサイズがデフォルトではかなり制限されていたり、設定を単に変数の値を(動的に)変化させて行うあたり。

まとめると、利点が欠点でもあること、自由度ありすぎることあたりが気に入らない点かな。間違いなどありましたらご指摘ください。

追記:Shiroさんのno titleも参考にしてください。

*1:いままで使われてきたものかそれに近いものが受け入れられやすい

*2:ユーザー数が多いほうが強い