web-dev-qa-db-ja.com

APIが型のコンテキストでその直交性を超えたという証拠は何ですか?

ウィキペディア ソフトウェアの直交性を次のように定義

プログラミング言語の直交性とは、比較的少数のプリミティブ構造のセットを比較的少数の方法で組み合わせて、言語の制御およびデータ構造を構築できることを意味します。この用語は、直交命令セットとして、アセンブリ命令セットに関して最も頻繁に使用されます。

Jason Coffinはソフトウェアの直交性を定義しています as

相互に疎結合している凝集性の高いコンポーネントは、直交システムを生成します。

C.Rossには 定義されたソフトウェア直交性 があります。

「Aを変更してもBは変更されない」という意味のプロパティ。直交システムの例はラジオであり、ステーションを変更しても音量は変更されず、その逆も同様です。

現在、 Tim BrayによってACMキューに公開された仮説 -BánffyBray型システム基準と呼ばれている仮説があります。

  1. 静的型付けの魅力は、APIサーフェスサイズの直接関数(および動的型付けの逆関数)です。
  2. 動的型付けの魅力は、単体テストの実行可能性の直接関数(および静的型付けの逆関数)です。

現在 スチュアートハロウェイはバンフィブレイを再公式化しています として:

aPIが直交性を超えるほど、静的型付けが好きになります

私の質問は:APIが型のコンテキストでその直交性を超えたという証拠は何ですか?


明確化Tim Brayは、直交性とAPIの概念を紹介します。 1つのAPIがあり、それが主に文字列(つまり、要求と応答を提供するWebサーバー)を処理している場合、ユニタイプ言語(python、Ruby)はそのAPIに「調整」されます-これらの言語の型システムは洗練されていませんが、とにかく文字列を扱っているので問題ではありません。

次に、彼はAndroidプログラミングに移ります。これには、以前に取り組んでいたWebサーバーAPIとはすべて「異なる」センサーAPIがたくさんあります。あなただけではないからです。文字列を処理しますが、タイプが異なるため、APIは非直交です。

Timのポイントは、型の「好み」とプログラミングの対象となるAPIの間に経験的な関係があるということです。 (つまり、主観的なポイントは、コンテキストに応じて実際には客観的です)。

4
hawkeye

APIが型のコンテキストでその直交性を超えたという証拠は何ですか?

文字通り、複数の方法でsomeタスクを実行できるAPIは、完全に直交しているわけではありません。

上記のバイナリ以外に直交性の正式な尺度がないことを考えると、「直交性を超えた」の唯一の意味は「完全に直交していない」です。

したがって、あなたが求めている「証拠」は、複数の方法で実行できるいくつかのタスク(任意のタスク)です。

どちらが役に立たない...


あなたが私たちに解釈するように求めている「ソース」はツイートです。意味の深さを深く読むことは価値のある活動ではないと思います。この場合、深い意味が意図されているのではないかと思います。確かに種類あなたがそれを読み込もうとしているという意味ではありません。

2
Stephen C