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


9

、この記事、マーティン(言語の頭本町)が書いています:

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

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


2
おそらく、彼は(リンクした投稿で)シンプルで一貫性のあるコアを持ち、より専門的な機能をライブラリに移動することを
言及

回答:


11

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

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

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

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


私見、理想的な世界では、言語には、その開発者コミュニティがそれを拡張できるようにするコア機能のみを含める必要があります。拡張機能はコア言語の一部ではなく、ライブラリとして提供する必要があります。したがって、最終的には言語の改訂によって新しい標準ライブラリが指定される可能性がありますが、新しい言語機能は指定されません。もちろん、十分強力なコア言語を定義することは簡単な作業ではありませんが、一部の言語(Lispなど)はそれにかなり近づいたと思います。
Giorgio

たくさんの気まぐれなプログラマについて話しなさい。ScalaのXMlリテラルは非常に便利です。JSONファンの少年たちはおそらく時代遅れだと思っていますが、XMLがSOAPのような他のテクノロジーで使用されていることを忘れてください。
annoying_squid
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.