- 864 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:42:23.84 ID:Yk52Q7IR0.net]
- >>829
今の仕様で不動点コンビネータが記述できるのかどうかは俺には分からないが、 焦点はその先で、「記述できたら何がうれしいのだ?」なのだと思うよ。 実用言語で重視されるのは当然「実用性」であって、「学術性」ではない。 逆に、実用性皆無なら、当該部分が削除された状態で採用されるべきだ。 例えばC#は意図的にインラインアセンブラを禁止している。 ヘルスバーグのインタビューがググッても出てこないのだが、心は、 「C#のコードならメンテできます」の為の必要知識量を抑えること、だった。 これは長期的に要員確保の難易度を下げ、結果的にメンテ性を上げる。 これも実用言語では重要だよ。 アメリカでPythonを使うのも、Python自体が良い言語だと思っている奴は皆無で、 「Pythonならみんな読めるし書けるから」だからね。 そのコードが10年以上使われることが分かっているのなら、 10年後に要員確保できない可能性がある言語を選択するのは間違いだし。 Cは、(時代的に無理ではあったが)何でもありの状態で、 文法は極めて簡単だが問題は中で何をやっているかで、読んでみなければ分からない。 「Cのコードならメンテできます」とか、簡単に言うのは無理だろ。 C#はイミフなコード構成(大体はCでも警告が出るもの)も禁止されており、 一応、エンジニアが「C#ならメンテできます」と言えることを目指している。 (上手く行っているとは言い難い部分もあるが) 酷い話だが、Javaは10年間全く進歩しないことによってこれを達成してしまっているし。 だから、話を戻すと、 実用言語においては実用性のある機能は取り入れるべきだが、 実用性がない機能は捨てられるべきなんだよ。 (大は小を兼ねる、多めに採用しとけ、ではない。同様に無駄に構文糖が多いのも問題) 今回ラムダが矮小化されて取り込まれているということなら、 取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。 勿論今後覆る可能性もあるけどね。
|

|