実装は、プログラミング言語のコンパイラまたはインタプリタです。言語の指示を行動に変換する方法です。現在、複数の実装を持つ最も一般的な言語は、おそらく JavaScript です。
人々が実装について話すとき、それは多くの場合、複数の実装から生じる問題に対処しなければならないという文脈にあります。好きな人が好きなようにやってくれるというメリットはありますが、イライラすることもあります。Chrome と Firefox、IE と Safari はすべて同じ JavaScript コードを使用しても動作がわずかに異なるため、Web 開発者はさまざまなブラウザーでコードをテストし、使用しているブラウザーを検出し、コードを環境に適応させるために多大な時間を費やさなければなりません。ライブラリ、バグなどのわずかに異なるセット。
一部の言語は、ドキュメントではなく標準実装 (ruby、perl、python) によって定義されています。そのため、それらの複数の実装について聞いたことはありません。これらの言語でも、さまざまなバージョンの動作が異なるという関連する問題があります。
実装は新しい現象ではありません。たとえば、Bill Gates は高校時代に多くの BASIC 実装の 1 つを書き始めました。
他の言語よりもSchemeの問題を悪化させるのは、仕様が意図的に小さく、ほとんど指定しようとしないことです。利点は、プログラミング言語を設計する人々が、きちんとした新しいプロパティを備えた新しい実験的な Scheme 実装を比較的迅速に作成できることです。これが完了すると、他の人が小さな言語を有用な言語に拡張する方法を示しているため、自分が書いた小さな言語でさえ「有用」であると主張できます。しかし、その「プログラミングの単純な問題」には多くの作業があり、各実装は独自に非常に多くの決定を下さなければならないため、実装間の違いは非常に大きくなります。したがって、複数の実装に関連する問題は、より完全に指定された言語と比較して、Scheme では多くかつ大規模です。
Scheme コミュニティは、小さな仕様の利点とともにこの問題を認識しており、標準の新しいバージョンで実験的な言語から有用な言語への移行をより明確にする方法に積極的に取り組んでいます。
http://scheme-reports.org/
今のところ (2010 年)、新しいユーザーが PLT スキームで作業を開始することを個人的にお勧めします。多くの実装の問題に怯える必要はありません。プログラミング言語の設計者が独自に設計した言語で作業することには、大きなメリットがあります。PLT には、大規模なコミュニティと、上で概説した問題を克服するのに役立つ一連の優れたライブラリがあります。
ベスト、グレム