コンピューター サイエンスにおけるDWIM は、Do What I Mean の頭字語です。 「私の言いたいことを実行する」という意味です。これは、コンピュータサイエンスにおいて、実行されるアクションを「長さ、幅、深さ」で指定することを回避できる言語の品質を示すために使用されます。言い換えれば、「どのように」を指定せずに「何を」を指定できるということです。しかし、多くの場合、以下に示す例のように、省略されるのは「何を」そのものであり、したがって推論する必要があります。
DWIM は、使用される言語の DWIM を利用するプログラムまたはプログラムの一部の品質でもあります。名詞の文法的役割が非常に柔軟な英語と同様に、DWIM は動詞としても使用できます。「低レベル言語は DWIM を使用しません」。
実際、アセンブラでプログラムを書くときは、計算された値が通過するレジスタなどの実装の詳細を指定する必要があります。さらに悪いことに、これらの詳細により、プログラムが選択したハードウェアアーキテクチャに固定され、移植性が妨げられます。
DWIM の望ましい結果は、簡潔でありながら読みやすいプログラムを取得することです。
DWIM は、いくつかの強力だが複雑な言語の品質です。この品質は非常に主観的なものであり、その評価はプログラマの好みに大きく依存します。通常は、DWIMe コンテキスト情報を使用する言語です。言語の複雑さは、一見あいまいなプログラムを理解するためにそのメカニズムをよく知らなければならないプログラマーの認知的負荷も増大させます。
高級言語は必ずしも DWIM 品質を備えているわけではありません。
DWIM の重要性とその合理的な使用の背景については議論の余地があります。ある人の DWIM が別の人の調光になることもよくあります。

簡単な例
Perl 5 では、変数$_ は一種の万能代名詞です。その値は、多数の操作の影響を受けます。これは多くの関数の暗黙的なパラメーターです。したがって、これはコンテキストの暗黙的な使用の一種です。一部の人にとって、このスタイルは単一行でのみ許容されます。
$_ = "こんにちは";
印刷する。 # 「print $_」と同等
しかし、DWIM のこの品質は言語の不可欠な部分でなければなりません。そうしないと、すぐに煩わしく壊れやすくなります。したがって、Perl 5 には正式な関数署名メカニズムがありません。したがって、コード自体に含まれる簡潔で正式なドキュメントである署名がない場合は、 $_ print関数の暗黙的なパラメーターであることを知るためにドキュメントを参照する必要があります。このメカニズムは、 printの最も一般的な使用法が端末改行の使用であることを想定していないため脆弱です。 Perl 6 では、この終端改行を追加するsay関数が提供されています。
"$_\n" を印刷します。 # Perl 5: 暗黙的な $_ を使用できません 言う; # Perl 6: print "$_\n" と同等
Perl 6 の設計者は、 say printよりも多く使用されるだろうと予想しています。だからこそ、彼はハフマン原則に従って短い 3 文字の名前を選んだのです。 DWIM と同様、ハフマン原理は Perl プログラムの簡潔さに貢献します。
