非常に多くの動的プログラミング言語にはダックタイピングの機能があり、クラスやインスタンスのメソッドをいつでも開いて変更できるため(RubyやPythonなど)、...
質問1)動的言語のクラスの必要性は何ですか?プロトタイプ言語ではなくオブジェクトを使用するのではなく、クラスを何らかの「テンプレート」として使用するように言語が設計されているのはなぜですか?
また、JavaScriptはプロトタイプベースですが、CoffeeScript(JavaScriptの拡張バージョン)はクラスベースの方法を選択します。また、Lua(プロトタイプベース)とMoonScript(クラスベース)でも同じです。さらに、ES 6にはクラスがあります。
質問2)特にプロトタイプベースの言語を改善しようとする場合、クラスベースに変更する必要があることを示唆していますか?そうでない場合、なぜそのように設計されているのですか?
class
は、次のECMAScript標準(ECMAScript 6)でキーワードをサポートします。JavaScriptのクラスのサポートは長い間計画されています。さて、クラスは単なる構文上の砂糖であり、同じ型のオブジェクトのモデルについて推論するのは簡単です。JSではこのようになり、Pythonや他の動的言語ではこのようになります。