見出し画像

Retro-gaming and so on

CUIは最低最悪の和製英語である

もう以前から言いたかったんだけど、マジでCUIと言う言い回しが気に食わない。あったまおかしいんじゃねぇの、って思う程不快な表現だと感じている。
何度も言ってるけどここでも言う。CUIは和製英語である。正確にはCLI(Command-Line Interface)と言うのだ。
CUIと言う表現は甚だ不自然過ぎるのだ。

Apple MacintoshにはGUIしかなかったが、後発のCommodore AmigaはGUIパソコンでありつつ、Shellを備えていた。
AmigaでShellを起動する際にクリックするアイコンにはCLIと書いてある。


これが個人的にはお馴染みの表現だったのだ。昔愛したパソコン、Commodore AmigaにはCLIと言う表現を教えてもらった。

あまりShellは使わんかったけどな(爆

さて、別に僕は英語原理主義者ではないので、和製英語でも面白けりゃエエんちゃうの?って立場だ。
ところが、CUIだけは腹が立って仕方がない。自分でも不思議だったんだけど、どうしてだか言語化出来なかったのだ。
でも何故に腹立つのか何となく分かってきたので、ここで書いてみる。

まず、教えて!gooでも書いたけど、コンピュータでUser Interfaceって概念が出てきたのはGUIが出て以降、だ。つまり、User InterfaceはGUIと共にある
反面、CLIと言うのはGUI登場以前から長らく使われてきたモノで、当然User Interfaceとは無縁である
だから

「文字だらけで文字打ちまくりでコンピュータに指令する使いづらい環境」

にUser Interfaceなんて単語をハメるのは間違いなのだ。CLIはUser Interfaceなんつー高尚なモノは持っていない定義が矛盾してるのだ。
逆に言うと、もし、CUIなんてものがあれば、一般ユーザーの半数は今でも黒画面でキーボードからコマンド打ち込んでるだろう。何せ「人々に使いやすいようにデザインされたモノ」がUIだからだ。しかし現実はそうじゃない。GUIは使いやすいけど、CUIは使いづらいから、だ。従って、CLIをCUIとか呼ぶのは矛盾してる

教えて!gooに顔出してない人の為に一応書いておくけど、元々User Interfaceと言う言葉は心理学の一分野だった「エルゴノミクス」(人間工学、等と訳される)から出てきた言葉だ。
エルゴノミクスでは

「道具をデザインする時、どうすればユーザーがその道具の使い方でミスを起こさないか」

研究する。これが転じて

「モノをデザインする時、どうすればユーザーが使いやすく出来るか」

を研究する分野に変わっていったのだ。
この研究範囲からUser Interfaceと言う造語が生まれた。造語である。
英語が堪能な人なら分かるだろうけど、そもそもUser Interfaceって言い回し自体が若干不自然である。UserはInterfaceを強調するわけだが、Interfaceは語源的には「面と向かう」事を表現している。誰と誰が?私と貴方だろうし、彼と彼女だろうし、彼ら、である。そこにはUserがいるだけ、ではなく、当然相手が存在するのだ。
コンピュータと我々が向かい合ってる時は単純に実はこれはMan-Machine Interfaceである。人類と機械(に顔があったとしたら)向かい合ってるわけだな。そして実はInterfaceと言う単語は状況を表現するにはそれだけで完璧なのだ。しかしエルゴノミクスの連中は敢えてUserを入れてInterfaceを強調したのだ。
「Userにとってどういう状態で道具に面と向かうのが一番ラクなのか?」と問いかける為に。

もう一回言うけど、まずはCLIと言う環境はそんな高尚な事は考えてない。CLIを使うヤツらは常に専門家だ、ってのが基本だった。だから使いづらいだろーが使いやすいだろーが関係無かったのだ。
だって元々、真空管で出来たようなコンピュータを導線で繋いでプログラムにしてたような連中だぞ?機械が気を使わなアカンような相手じゃないのだ。そこにはUIなんて概念は全く存在しない。


まずそれが第一である。もう一回書いておこう。

  • コマンドラインにはUIなんて言う高尚な概念は存在しない。

そして第二。そもそもCharacter-basedって表現が変な英語である。何なの、これ?誰が考えた?
どう変なのか説明してみようか。例えばこれを聞いて思い浮かぶのが、キーボードでaと打ったら動作Aが起きて、キーボードでbと打ったら動作Bが起きて・・・全27種類のコマンドしか実行出来ないのだ。何故?Character-based(文字ベース)だから。
まぁ、仮に大文字小文字で分けると54種類のコマンドが仕込めるか・・・・・・。日本語キーボードだったら50種類程度の(カタカナ合わせたら100種類程度の)コマンドが仕込める。それで終了。そしてモード切り替え、とか考えなければそれ以上何か出来るわけでもないのだ。
え?
それってコンピュータ?
viかよ(謎

分かっただろ?コマンドは別に文字ベースではないのだ。コマンドは敢えて言うと単語ベースだ。あるいは文字列、って事でテキストベースである。
C言語であれほど文字と文字列の関係にうるさく言ってる連中がこの体たらくである。文字ベース(Character-based)のインターフェースってものの直感的な意味が分かってないのだ。バカタレが。

  • 文字ベースのインターフェース、と言う言い回しが連想させる状態を分かっていない

つまりな。CUIって何?って訊かれた時に説明するconcatenated stringが嘘まみれで説明になってないから腹立つんだよ。

A「CUIって何なの?」
B「Character-based(なんつーのがデタラメな意味だし) User Interface(って程の実装じゃない)って意味さ!」(ドヤァ
A「B君って何でも知ってるのね!素敵!」

ありもしない英単語をありもしない英語文脈で説明する・・・・・・。何だそれ(怒 
バカなの?
だから腹が立つのだ。存在も嘘、説明も嘘。単なる嘘まみれである。

断っておくけど、僕は別に英語原理主義者じゃない。
和製英語だって構わないのだ。
ただ、これは酷いと思わないか?どこにも真実がない。説明が説明になってない、から腹が立つのだ。アホちゃうか、と。

ハッキリ言っておく。和製英語ってのはスラングの一種である。だから英語圏で生まれて無くって厳密な意味がネイティヴが一回で理解出来なくても、

「こういう背景が理由で、こう言う言い方をするんだよ」

って説明すれば英語話者でも納得してくれるものなのだ。
何故なら、和製英語に限らず、スラングってのは元々そういう発生の仕方をするもの、だからだ。
英語では車のウィンカーはTurn Signalと呼ぶ。っつーかウィンカー(Winker)って聞けば英語話者はビックリするだろう。
ただし、「ウィンクしてるみたいだから」と言えば、英語話者も

「日本人って面白いモノの捉え方をするのね」

って感心したりする。スラングとはそういうモノなのだ。
以前、確かNHKだったと思うんだけど、日本で和製英語を研究するアメリカ女性の研究者ってのが登場してて。和製英語が面白い、って話をしてた。
そりゃ面白いだろう、日本発のスラングだからなぁ。
彼女が一番最初に和製英語に興味を覚えたのが、友人(日本人女性)が発したパイプカット、と言う単語が衝撃的だったからだ、そうだ。当然、英語でパイプカットなんて言う表現なんざないけど、説明されてみたら「言い得て妙」だと感じたらしい。
そう、スラングは全て「言い得て妙」が背景にある。だから使われるし、意味もあるのだ。

反面、CUIと言う言い回しには何もそういう洒落たトコがない。だから最低最悪の和製英語って言ってるのだ。英語話者にCUIの意味を聞かれた日本人がドヤ顔でCharacter-based User Interfaceなんぞ答えたって、「なにそれ?」って言われるだけ、である。そこには「言い得て妙」が存在しないのだ。説明が説明になっていない。

10年ちょっと前?LinuxディストリビューションのUbunuが人気出始めた時、アスキーからUbuntuの雑誌が創刊される、なんつー快挙があった。それに連載されてた漫画が「うぶんちゅ」だな。
各国のLinuxファン及びUbuntuファンがこの「漫画」に注目して、翻訳しよう、って動きがあって、実際翻訳されたのよ。より多くのユーザーに布教出来るように、ね。
そしてその第二回、だ。


左側がオリジナルの日本語版、右側が翻訳された英語版、である。
この翻訳者は「良く分かってる」。オリジナルの題名にある「コビト」を敢えてGNOMESって訳している。
この回はCLIのGUIに対する優位性を説いてるのだが、ここで(当時の)UbuntuのデフォルトでGUIを提供する環境、GNOMEの名前を紛れ込ませてる。
ただし、そんな翻訳者でもCUIは我慢ならなかったらしい(笑)。CUIは思いっきりCLIに差し替えられている。 
そして次のページだ。説明が説明になってない、と言う意味が分かるのではないだろうか。



これ大変だぞ・・・わざわざCharacter-based User Interfaceって黒板に書かれたブツを塗りつぶしてCommand Line Interfaceに書き換えるなんて・・・・・・。翻訳者のやる仕事じゃねぇよ(笑)。
ここは左のオリジナルを見れば分かるが、「解説」である。ところが、やっぱCharacter-based User Interfaceって言うおかしな和製英語は、説明になってない、って事で差し替えるしかなかったんだろう(笑)。「言い得て妙」もクソもなかった、って事だ。

原文: "CUIとはキャラクターユーザーインターフェース"
英訳: "CLI is an acronym for \"Command Line Interface\"."
日本語訳: "CLIとはコマンドラインインターフェースの略称よ"

ここまではまあ、今までの流れで理解出来るだろう。
問題は次だ。

原文: "その名の通り文字ベースの入出力を通じてコンピュータを操作する方式よ"
英訳: "As you can see, it is a way to interact directly with the computer through the use of commands."
日本語訳: "見て分かると思うけど、CLIってのはコマンドを使用してコンピュータと直接やり取りする方式なの"

意訳としてはいい。が、「文字ベースの入出力」に当たる部分が英語訳ではごっそり欠けてるのが分かるだろうか。
つまり、英語話者に取っては「文字ベースの入出力」(直訳すればCharacter-based input-and-output?)と言うのは全くの意味不明なのだ。だから「コマンド使用」(the use of commands)で置き換えるしかなかった。

貴方はこれでも頑なにCUIって単語を使いますか?

正直言うと、コンピュータプログラミング関係の日本語の用語とか訳とか「どーかな」とか思うヤツばっかである。オブジェクト指向の用語なんぞ見てみろ。インスタンスだとかインターフェースだとかメソッドとか、

「翻訳諦めた」

って体の言葉ばっかである。殆どの人が意味が分からんだろう。
しかし仕方がない。そもそもプログラマは言語センスが壊滅的にダメなのだ。
だからCharacter-based User Interfaceなんつー、とんでもなくクソな造語を思いつくのだ。
そして、こういう壊滅的な言語センスだからこそ、IT会社の社長はインタビューされた時に、ろくろを回しながら

「当社のクリエイティブは・・・」

とか分かったような分からんような事をのたまうのだ。そしてクリエイティヴは形容詞だと知らず名詞のように使い、恥を晒すのだ。
それもこれもプログラマは総じて言語センスが壊滅的にダメだから、に他ならない。
















とここまで書いて来てハタ、と気づいた。
そもそも殆どのプログラマって人間語を喋ってなかったな、と。

「コミュ障です」って自己紹介するプログラマは可愛い。それなりにいる。
でもそれはまだ「コミュニケーションが取れる」からいいのだ。たまにバグりコミュニケーションが取れなくなるだけ、だから。だから「障害」なのである。電波障害と同じだな。常にアンテナが3本立ってるとは限らない。
問題はコミュニケーション障害、等と絶対自己紹介しないプログラマだ。そもそもコミュニケーションが「取れない」と言うか「無い」タイプだ。だから「障害」まで行かないのだ(「障害」まで行くヤツは幸いである)。このテのプログラマは全体の90%くらい存在する。
このテの、全体の90%くらいのプログラマは、そもそも日本語を解さない。英語も分からない。話すのはバイナリである。口を開くと高速で何か喋り、音声的には「ピー」とか「ガー」とかしか言わない。測ってみたら14,400bpsだった。
しかもこいつら腹立つのが、命令口調でしか話さないのだ。バイナリを命令口調でしか話さない人種。コミュニケーション以前の問題だ、ってのが分かるだろう。
バイナリで命令口調でしか話さない人種は当然日本語も解さないし英語も解さない。日本語も英語も超高級言語で彼らには難しすぎるから、だ。プログラマの中の数%が何とかかなり高級言語であるLispに目覚め、Lispによってやっとこさ日本語や英語を解するようになる。この時点でやっと記憶容量が豊富になって、ルールベースで「フツーの人間が使用する言語」を理解しだそうとするのだ。しかし彼らはカッコつけて話すのでちとウザい。ちびまる子ちゃんで言う花輪くん状態である。
でも依然として全体の90%のプログラマは「日本語や英語を解するLisp」を効率が悪い、って言って、かと言って他の高級言語まで達さず、相変わらず14,400bpsで命令調のバイナリを吐き続けている。昼飯は毎日スパゲティだ。多分こういう「英語も日本語も解さない」存在率90%のプログラマがCharacter-based User Interfaceなんつーワケの分からん単語を造ったんだろう。何故なら日本語も英語も解さず、言語センスも無く、スパゲティで腹をいっぱいにし、14,400bpsでバイナリを吐き続ける連中だから、だ。

余談1:
ちなみに某氏が言ってるような「GUIみたいなCLI」ってのは例えば次のような感じである。


MS-DOS上のTurbo Pascalのテキストエディタだが、MS-DOS上のソフトの癖にGUI的なFile、Edit・・・等のメニューを備えている。
当然、こんなのはCUI等とは呼ばれず、英語圏ではTUI(Text-based/Terminal User Interface)と呼ぶらしい。これこそGUIのもじり、である。
ただ、教えて!gooでも書いたが、MITだと1970年代半ばにはこういう「コマンドラインベースなんだけど、プルダウンメニューを備えた」テキストエディタを既に実装してたらしい(TECO)。そして、当時では驚異的な実装だったため、MITが使ってるミニコンと同じミニコンを持ってる大学からは、TECOを使わせてくれ、と言う問い合わせがあとを絶たなかった、と言う。
反面、UNIXはこういう事をやれる環境が整うのに時間がかかってたのだ(MITはUNIX陣営ではなかったし、MITは遥か先を行ってたのだ)。
また、MS-DOSは言わずもがな、である。

ちなみに、これがテキストエディタの話じゃなくってアドベンチャーゲームの話だったら

「この形式はコマンド選択方式と呼ぶ」

で終わりである。



余談2:
とにかく「文字ベース」(Character-based)と言う言い方は英語話者にはピンと来ない。逆に言うと「文字ベース」と言うのは日本人ならピンと来る、と言う事である。
本文中ではCharacter-based、って言われて英語話者が想像するインターフェース(つまり、文字キーを打つ事によって「特定の命令が発せられる」インターフェース)を紹介してみた。しかし日本人はそう言う想像はしない。
言い換えると、英語は「文字ベース」の言語ではない。日本語は「文字ベース」の言語である、と言う事だ。これは次のように考える事が出来る。
英語と日本語の大きな違いは何か。まぁ色々とあるんだけど、「字句解析」や「構文解析」をした事がある人ならピンと来るだろう。英語は「分かち書き」がある言語なんだけど、日本語は違う。英語は「分かち書き」された個々の部分を最小単位、と直感的に捉える言語なのだ。だからこそトークンと言う発想が出てくる。
逆に分かち書きが存在しない日本語での最小単位はそのまま文字なのだ。日本人は長い間、漢字にも慣れ親しんでるので1文字が意味を表す、と言う環境に慣れている。そして音に対してもひらがなとかカタカナは一文字が一音を表している。これは一文字が一機能を担ってる、と言う事であり、従って「文字ベース」(Character-based)の言語を我々は日常的に操ってる。だからこそ「文字ベース」と言う言い方に抵抗がない。
英語で扱われるアルファベットは、一文字一音を表す事もあるけど、総じて「組み合わせ」が音を表すし、それで初めて意味を持つ。アルファベットも遠い祖先を遡ればそれは象形文字で一文字が一つの意味を表してた事もある。が、現代ではその部分は既に忘れられて久しい。要するに一文字は単に無力なのだ。だからCharacter-basedって言われても意味が分からない。そんな力が一文字には存在せんから、だ。
英語(に実は限らないんだけど)では文字は組み合わされて初めて力を発揮する。そしてそれらが構成する意味は「分かち書き」によって配置され確定する。だから英語話者にとっては文字は直感的には最小単位ではない。最小単位を構成する為の単なる「材料」でしかないのだ。
従って、コマンドを「文字ベース」として彼らは捉えない。コマンドは、つやーな言い方をすると、それこそ「トークンベース」ってのが彼らの直感なのだ。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事