キーボード配列の謎を解く:なぜ四則演算の記号はそこに置かれたのか
こんにちは。ゆうせいです。
毎日プログラミングをしていると、キーボードの記号配置について違和感を持つことがあります。なぜ -(ハイフン)や /(スラッシュ)は Shift を押さずに入力できるのに、+(プラス)や *(アスタリスク)は Shift を押さないと出ないのか。演算子として使う頻度を考えると、逆の方がプログラマーにとって便利ではないかと感じるかもしれません。
実は、このキーボード配列は、プログラミングの便利さを第一に考えて設計されたものではなく、100年以上前のタイプライター時代の運用慣習が、今もなお受け継がれているのです。本記事では、なぜキーボード上の記号がこのような配置になっているのか、その歴史的背景を初心者向けに解説します。
ハイフンとスラッシュが通常側にある理由
まず、-(ハイフン)と /(スラッシュ)がなぜ Shift なしの位置にあるのか、という疑問から始めましょう。
結論から言うと、これはプログラミングでの使用頻度とは関係なく、タイプライター時代の文章・事務文書入力での使用頻度が理由です。
19世紀から20世紀初頭、タイプライターが活躍していた時代、ハイフンとスラッシュは文章や事務文書の中で非常によく登場していました。
ハイフンの用途:複合語の表記(例:「well-known」)、ダッシュ代わりの記号、日付や番号の区切り(例:「1995-12-25」)。
スラッシュの用途:日付表記(例:「12/25」)、分数表記(例:「1/2」)、略記(例:「c/o」は「care of」の意味)。
当時のタイプライター設計者たちは、「多くのタイプライター作業は、こうした記号を頻繁に使う事務文書である」と判断しました。そのため、ハイフンとスラッシュを、他の記号よりも容易にアクセスできる位置(Shift なしの位置)に配置することが標準的になったのです。
これはまったく論理的な、計画に基づいた設計というわけではありませんでした。実際のところ、19世紀のタイプライターの記号配置は機種ごとに異なっていました。ある改良の過程では、!(感嘆符)の位置が / に変更されたという例さえあります。つまり、「最適な配置」を求めての変更が繰り返された結果、現在の配置が定着したということです。
一度「これが標準」という配置が決まり、多くのユーザーがそれに慣れてしまうと、後からそれを変更することは極めて難しくなります。この歴史的経路依存性(パスディペンデンシー)が、現在のキーボード配列を説明するうえで最も重要な要素なのです。
プラスとアスタリスクが Shift 側にある理由
次に、+(プラス)と *(アスタリスク)がなぜ Shift キーが必要な位置にあるのか、という問いを考えてみましょう。
現代のプログラマーは、掛け算の * や足し算の + を頻繁に使います。それなら、Shift なしで入力できる方が便利ではないかと考えるのは自然です。
しかし、タイプライターの時代には、事情は異なっていました。
タイプライター時代における * と + の用途:* は当初、脚注記号として、または「何か重要なマーク」という意味で稀に使われていました。+ は医学や科学文書でごく限定的に使われていましたが、一般的な事務文書ではほぼ使用されていません。
つまり、「使用頻度が低い記号は Shift 側に置く」という原則に従って、+ と * が Shift 側に配置されたのです。
その後、コンピューターが普及し、プログラミングが広がるにつれ、+ と * の重要性は劇的に増しました。計算処理では、これらが演算子として頻繁に使用される記号になったのです。
しかし、ここで重要なことが起きます。すでにコンピューター時代に突入していたにもかかわらず、キーボード配列は大きく変更されませんでした。なぜでしょうか。
理由は単純です。既に何百万というユーザーが、この配列に慣れてしまっていたからです。もし配列を変更すれば、すべての既存ユーザーが学習し直す必要があります。それは、企業にとっても、ユーザーにとっても、極めて大きなコストなのです。
こうした「利用者が慣れている配列を大きく変更しない」という保守的な判断が、タイプライター時代の配置を現代まで受け継がせてしまったのです。
日本のキーボード配列の歴史
日本のキーボード配列(JIS キーボード)の成立過程も、複雑な歴史を反映しています。
JIS キーボードは、単純に欧米の QWERTY 配列をそのまま採用したわけではありません。日本語入力の文化と、複数の機械文化が交錯した結果として形成されました。
かなタイプライターの時代:日本語を入力するために、かな文字をキーボードに配置したタイプライターが開発されました。これらの配置は、QWERTY 配列とは無関係に、日本語入力の効率を目指して設計されていました。
テレタイプの運用:電話回線を使ったテレタイプ機械が導入される際、記号配置が標準化されました。
カードパンチ機械:初期のコンピューターでは、穴を開けたカードにプログラムを記録するカードパンチ機械が使用されました。この機械の配置も、その後のキーボード設計に影響を与えました。
こうした複数の機械的文化が積み重なり、相互作用を通じて、現在の JIS キーボード配列が標準化されました。つまり、JIS 配列も、完全に論理的な設計ではなく、歴史的な積み重ねの産物なのです。
キーボード配列から学べることの重要性
この歴史を学ぶことは、プログラマーにとって二つの重要な教訓を与えてくれます。
まず、「現在のシステムやツールがなぜこのような形をしているのか」という問いに対して、「最も効率的だから」という単純な答えで終わらせてはいけない、ということです。多くの場合、歴史的な経緯、過去の判断、利用者の慣習が、現在のデザインを形作っているのです。
次に、「一度多くの人が慣れてしまったシステムを変更することがいかに難しいか」という教訓です。プログラマーが新しいツールやプロトコルを設計するとき、その設計の論理的な最適性よりも、既存ユーザーへの影響や互換性が、優先されることがしばしばあります。
エンジニアとして長く仕事をしていれば、「なぜこのコードはこんなに複雑な書き方をしているのか」「なぜこのシステムアーキテクチャなのか」という疑問に直面します。調査してみると、答えは「それが最善だったから」ではなく「20年前のレガシーシステムとの互換性を保つため」だったり、「当時の選択肢の制限」だったりします。これがエンジニアの日常です。
キーボード配列がもたらした副次的効果
興味深いことに、元々事務文書入力のために作られたキーボード配置が、プログラミング言語の設計にも影響を与えてきました。
例えば、C言語や Java などの言語では、Shift キーで入力できる {、[、( などが、ブロック構造を表す重要な記号として使用されています。これは「Shift 側に特殊な記号を置く」というキーボードの慣習に合わせて、言語の設計者が選択したものと言えます。
もし歴史がもう少し違っていて、キーボード配列が異なっていれば、プログラミング言語の構文さえも異なっていたかもしれません。
まとめ
キーボードの記号配置は、数学的な効率性やプログラミングの便利性を第一に考えて設計されたものではなく、19世紀から20世紀初頭のタイプライター時代における文章・事務文書入力の慣習から出発しています。
ハイフン - とスラッシュ / が Shift なしの位置にあるのは、タイプライター時代にこれらの記号が文書作成で頻繁に使用されたからです。一方、プラス + とアスタリスク * が Shift 側にあるのは、当時はこれらの使用頻度が低かったからです。
その後、コンピューターとプログラミングが普及し、* や + の重要性が劇的に変わりましたが、既に多くのユーザーが既存の配置に慣れてしまっていたため、大規模な変更が行われませんでした。
この歴史は、「システムの形状は、しばしば技術的最適性よりも歴史と慣習に支配されている」という重要な教訓を教えてくれます。エンジニアとして、ツールやシステムの設計理由を批判的に検討し、その背景にある歴史的背景を理解することは、より良いデザインの判断をするうえで欠かせません。
次のステップとして、自分が日常的に使用しているツールやシステムについて、「なぜこのような設計になっているのか」という疑問を持ち、その答えを探索することをお勧めします。その過程で、現代の技術環境がいかに多くの歴史的選択の重ね合わせでできているかが、より深く理解できるようになるでしょう。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。

