web-dev-qa-db-ja.com

ScalaのXMLリテラルの何が問題になっていますか?

この投稿 では、マーティン(言語の本部)は次のように書いています。

[XMLリテラル]当時は素晴らしいアイデアのように思われましたが、今では親指のように突出しています。新しい文字列補間スキームを使用すると、すべてのXML処理をライブラリーに入れることができると信じています。これは大きな利益になるはずです。

私自身、言語設計に興味を持っているので、疑問に思っています。なぜ彼は、XMLリテラルを言語に組み込むことが間違いだったと書いているのでしょうか。この機能に関する論争は何ですか?

9
Oak

マーティンは彼の投稿でその理由を非常によく説明していると思います:

私は常に、以前は異なる概念の統一を見つけることを試みることによって、Scalaを非常に強力であると同時に美しくシンプルな言語にすることを試みました。

多くの言語がますます一般的になるときに直面する問題は、機能がコミュニティによって求められ、言語の上に追加されることです。これの最悪のケースの例(少なくとも私の本では)はC++で、ほとんどすべてが揃っていますが、美しく統一された方法ではまったくありません(たとえば この質問 から発生します)。 。

コミュニティからの要求やニーズによって言語が成長する場合の難しさは、言語のコアと一致する方法で新機能を追加することです。そして、この点で、ScalaのXMLリテラルサポートは、これはユニークなものであるため、痛い目です。実際には、美しい統合コアの一部ではありませんが、一度追加されました。一方、文字列補間は、1回限りの機能を置き換えるのに十分強力なコアコンセプトです。

11
Frank