タイプライターの歴史がかかれた、WEBページがありました。
就職後5年くらいまで、タイプライターとの付き合いがありました。
私が使わせてもらっていたタイプライターは、通常のハンマータイプでした。
これは、キー(文字)に対して活字1文字が対応するハンマーがあり、それが、インパクトポイントに向かって、扇状に並んでいるタイプ。
最近でも、タイプを叩く、とかキーボードを叩くとか、良く言うと思います。
紙のインパクトポイントに向かって、ハンマーが勢いよくぶつかって行く様は、まさにハンマーで叩いているのですから、叩くと言う感じは有ります。
でも、あの頃の感覚を思い出しますと、タイプライターの場合、キーは押し込むと言う感じでした。タイプライターのキーは、ストロークが結構ありました。
キーのストロークが結構あると書きましたが、ハンマーが10cmくらいインパクトポイントに向かって移動するのは、キーを押し込むからなのですが、押し込む程度が、多分2cmから3cm位いだったように思います。
あの頃も、キーを叩くと、言っていたかも知れませんけど、具体的には、キーは押し込んでいました。
印字される仕組みは、インパクトされる力で紙にインクが転写される構造になっています。ハンマーと紙の間には、インクリボンか、カーボン紙がはさんで有って、インパクトにより、インクや、カーボンが紙にインクが転写されます。
私が使わせてもらっていた形式のタイプライター以外には、世の中には、いろいろな構造のタイプライターが存在していました。
その中の一つに、タイプハンマーでは無くて、ゴルフボールタイプの様な形をした、タイプボールと呼ばれるものを持つ、タイプライターも有ったようです。
これは、活字が、アームの先に付いている形状ではなく、まさにゴルフボールに活字を張り付けたような形状をしています。
実際に使ったことが有りませんので、いまだに、どんな風に制御され、どんな風にインパクトされるのか知りません。と、ここでYouTubeで検索しましたら普通のタイプライタ、セレクトリック、ディージーホイールの映像がありました。
この方式のタイプライターは、異なるフォントへの交換が、丸っこいヘッドを交換するだけで出来たとか、聞いたような気がするのですが、本当はどうだったのでしょう。と、ここでネット検索しましたら、こちらのページでこのタイプを使って居られた方のページがありました。
ある一定の規則に従って、フォントを入れ替えておけば、丸で暗号文というような、ことも、出来たのかもしれません。(あくまで、想像ですけど)
さらに進化していって、ドットマトリクス形式になると、文字フォントを活字としての物体として用意する必要が無くなって、縦横10個宛程の点で表現するようになっていったと思います。
しかもヘッド自体が、左から右に、とか、右から左に移動するので、ヘッドは縦一列に10個前後の点を打てれば良いことになり、横向きの10個と言うのは、点1つぶん、移動して打てば良いので、ヘッドがコンパクトになって行ったように思います。
これは、タイプライターの進化というよりは、パソコン等コンピュータ業界での印刷需要による進化が、タイプライターにフィードバックされた事によるものだったと思います。
さらに、この頃、同時にフィードバックされたのが、メモリーやCPUの小型化による、タイプライターへの頭脳の搭載。慣例句を登録して、特殊なボタンと対応させることで、タイプする労力を軽減する機能などが追加されていったと思います。
タイプライターとパソコンの境目が薄くなり始める頃には、タイプライターがどんどんパソコンに置き換えられて行き、よほどタイプのプロ以外はタイプライターとの接点が消えていった時代を迎えたと思います。
以上です。
<蛇足>
ドットマトリクス方式のプリンターには、下記のカテゴリがあると思います。
・ドットマトリックスインパクトプリンター(基本黒一色、良くて2色、インパクト出きるのでカーボンコピーが作れる為、伝票の発行等に好まれた)
・サーマルプリンター(感熱プリンター)
・サーマルプリンター(熱転写タイププリンター)(カラーもある)
・放電プリンター(一色、というか、金属っぽい)
・インクジェットプリンター
・レーザープリンター
さて、ドットマトリクスで、1文字を表現する能力があれば、すべての印刷に対応出きるかといえば、そうではないようです。
写真や、綺麗な文字等を必要とする分野があり、プリンターは更に進化して行きますが、構造上の限界なのか、細密印字に進化出来なかった方式があったようです。
・ドットマトリクスインパクトプリンター
・放電プリンター
です。
さて、ドットマトリクスの方式は、文字を縦横10個前後の点で表現しているため、文字を拡大すると、一つ一つの点があらわになり、文字形状が荒れる欠点がありました。
そこで、後には、トゥルータイプフォントと呼ばれる曲線(数式)で表現された文字形状に置き換わって行きました。
トゥルータイプフォントは、拡大しても、荒い点になることが無く、美しい状態を保つことが可能な方式です。
では、ドットマトリクスのフォントは、完全に不必要になったのか?と言えばそうでもなくて、
- ドットマトリクスで表現された文字でも、小さいサイズなら、人間の目には、あまり、あらが目立たない。
- ドットマトリクスのフォントと、トゥルータイプのフォントを比べた場合、ドットマトリクスのフォントの方が、処理負荷小さい
と言うメリットがありますので、画面表示等では、ドットマトリクスのフォントも現役です。
<閑話休題 ここから>
しばし、休憩
<閑話休題 ここまで>
「解釈実行」と言う言葉が有りますが、ある種の知性と言うか、知能を感じさせる言葉では無いでしょうか。
初期のタイプライターに知性とか知能が搭載されていたか?と問われれば、搭載されていなかったという回答になると思います。
女性が、長時間タイピング業務を継続できるグライの力の入れ具合で充分な印字が出来るメカニズムをあのサイズで実現するには、かなりの技術的な英知や知性が無くては具現化できない物ではありますが、タイプライター自体は、キーを押されれば、対応する文字が印字されるだけの物体だったと思います。
後期のタイプライターは、CPUとメモリーが搭載され慣用句をボタン一発で印字する等のインテリジェントな機能が搭載されたようですが、それまでは、解釈とか実行と言う言葉とは無縁だったと思います。
現在のトゥルータイプフォントによる文章の印刷には、プリンターが使われますが、このプリンターにデータを渡してあげるときに、どう云う風に渡すかで、大雑把に言うと、二通り有ると思います。
色々な書体、色々なサイズの文字に、写真まで混ざっている文書を印字するにあたり
- コンピュータ側で、ツゥルータイプフォントの曲線計算を行ってから、大量の点(ドット)のデータとして、プリンターに渡す。
- 文章のデータだけをプリンターに渡して計算作業をプリンターに委託する
など、大雑把にはふたとおりが有ると思います。
プリンターに文章データを渡すにあたり、ワードプロセッサ等のアプリケーション作成会社と、プリンター会社が同一の会社と言う事は少ないので、プリンター会社の製品とアプリケーション会社の製品がデータをきちんと渡せるための方式が必要になります。
その一つが、PostScript(ポストスクリプト)と言われるものです。
PostScriptは、ページ記述言語と言われるカテゴリの一つです。
これらは言語なんですね。
だから、プリンターンには、コンピュータで動作するアプリケーションから渡されるデータ(ページ記述言語に置き換えられた印刷データ)を受信して、解釈実行することで、印刷(印字)を行っているということになります。
初期のタイプライターは、解釈も実行もしていませんでしたが、それと比べると大きな違いが有ると思います。
解釈実行に置ける前提条件がずれると、結果が想定外の物となります。
こういった製品が出揃って来るまでの、過渡期には、度重なるバージョンアップ等も、起因して、想定外の出力結果を目の当たりにした人も居たことでしょう。現在は、もうそう言う事態に出くわすことはまず無いでしょうけど。
ある種の何某かを、ある種の規則に従って、記述してある。
この状態だと、それは、単なるデータでしかない。
解釈をする主体があり、実行する主体が存在すれば、それは、現実世界で何らかの結果をもたらす。
プログラムと言うのは、書かれただけでは、単なる文字の羅列でしかないのですが、それを解釈し、実行する主体が存在する場合、何らかの作用をこの世にもたらす。
と、いう事が出きると思います。
IBM360の頃のCOBOLとか、FORTRANで記述されたプログラムが電子データとして記憶されているだけだと、それは単なるデータでしかないのですが、IBM360エミュレータがインストールされれば、さっきまで単なるデータでしか無かったものが、実行可能なプログラムとしての意味を持ちます。
IBM360と言えば世界的に有名なコンピュータです。
でも、あなたが、自分の独自のアーキテクチャーを考案し、独自の命令形態を持つCPUを作成したとします。そしてそのCPUのエミュレータを作成したとします。
ちなみに、最新ゲーム機開発では、まだ開発途上で、設計図面でしか、この世に存在しないCPUに向けて、ゲームソフト会社がゲームを開発しなければならないと言う状況があるそうです。この場合、まだこの世に存在しないCPUのエミュレータを開発するんだそうです。開発途上のCPUに問題が無いかエミュレータで試しながら設計を見直したりもし、未来のゲーム機のCPUに向けたゲーム開発も平行して進めていくんだそうです。
この場合すでに、エミュレータが存在しますので、ゲームプログラムは単なるデータではなく具体的なプログラムですが、CPUを手にしてない人にしてみれば実行不可能な単なるデータでしかありません。
ここで、ウィルスとは何か?
と言う問いかけをしますとどうなるか?
利用者の想定とは異なる、利用者にとって不利益な活動を行うプログラムと言えるかも知れません。
でも、とあるシーンで、とあるファイルを消すのが良いのか、良くないのか?。
ある人は消すべきではないと考え、ある人はそのファイルは消しておくべきだと考え、人により異なるかもしれません。
便利な機能として、音楽CDをPCで再生すると自動的にジャケットの写真をネット上のどこかから引っ張ってきて、そのCD再生中は、CDジャケットや同胞されている写真等を画面に表示する機能があるとします。
これは、単純な利用シーンでは純粋に便利な機能ですが、見方を変えれば、音楽CDの何某かが、ここに有るんだという報告をしていると言う風に考える事もできます。
そういう意味で、活動結果の評価と言う側面で、それは、ウィルスなのか?と言う問いかけをするのが一つあるかと思います。
さて、次は、それは、データなのか、プログラムなのか?。プログラムならウィルスなのか、ウィルスじゃないのか?と言う見方についてなのですが。
解釈や実行をする主体がインストールされていないなら、それは単なるデータと言えるかも知れません。なので、ウィルスだともいえないと思います。
解釈や実行をする主体をインストールすれば、ウィルスになる可能性はあるかもしれません。
コンピュータに、開発環境を実装するべきか、しないべきか?。
開発能力を、そぎ落としておくと、プログラムのコンパイルが出来ません。
Windowsにおける、バッチファイルやPower Shellの活動を止めておいたり、コンパイラー等を動かないようにしておけば、後から怖いプログラムがコンパイルされたり動くと言うリスクを下げることが出来るはずですが、とても使い辛い物になります。
ほとんど自由度が無い、不便なものになると思います。
家庭用ルータなどの単純機能を提供する場合、内部OSがLINUXだったとしても、開発環境やshell環境を、できる限り、そぎおとして、単純にルーティング機能だけに絞り込んで、他から危険なプログラムが入らないように、危険なプログラムが動かないようにしている物も有るようです。
でも、これも、結構大変みたいです。