コマンドオプションはおまじない?

髙橋です。

 

コンピュータを全く知らなかった素人が

PC-98とMS-DOSとREDというテキストエディタを使ったC言語研修を終えて配属されたのは、3ヶ月ほど経ったころでした。

 

わたしが配属されたのは、

COBOLやFORTRANなどの言語でプログラムを書いてメインフレームで業務システムを構築するのではなく、

C言語や4GL(UNIFACEを利用していました)などの言語でプログラムを書いてオープンシステムを搭載したワークステーションで業務システムを構築する

受託開発ビジネスを立ち上げる、新しい部署でした。

 

そんな部署なので、よく言えば、

『チャレンジ精神旺盛で最先端技術の習得にどん欲な人』

言い方を変えると、

『かなりユニークな人』

が集められていたのだと思います。

 

ということで、最初に面倒を見てくれた先輩は、まさにユニークな人でした。

 

オープンシステムと言えばUnix

UnixといえばCLI

CLIといえば、shell

ということで、配属初日、先輩が唐突にUnixコマンドの説明を始めました。

 

以下、先輩とのやり取り(脚色入ってますが、大筋こんな感じ)です。

いまから何を説明するのか全く説明のないまま、Unixにログインして、shellプロンプトが表示されて...

 

 先輩「ls -laって打つとね、一覧が表示されるんだよ」

   (lsの実行結果が画面に表示され...)

  私「はい、なんか表示されますね」

心の声「ん?なんのためにlsと打つのかな?

    そもそもなんだっけ?そもそもこれは何をやっているのだっけ?」

 先輩「でね、このオプション(-laのことを指している)は『おまじない』

    だから気にしないで」

  私「はぁ、『おまじない』ですね...」

心の声「えー?『おまじない』って何?

    コンピューターにおまじないなんてあんの?

    おれ、何を教わってんのかな?これ何の役に立つのかな?」

 先輩「で、ここに点(カレントディレクトリを示す表記のことを指しているらしい)

    と点点(親ディレクトリを示す...)があるでしょ?

    これもおまじないだから気にしないで」

心の声「わー、もう頭がウニ!!

    点と点点、ってなんなんだ??

    何を言っているんだ、この人は?」

 

この後、細かいことは覚えてないけれど、cdやらcatやらviやら一通りよく使いそうなコマンドを『おまじない』という言葉を多用しながら説明してくれました。

 

配属先で初めて教わったのが『おまじない』です!

すでに配属されていた同期は、

UnixのGUIであるX-Windowシステムを使って、

GUIでプログラムを作るためのプログラム

を作っているのに!

 

その時の私は、ものすごい焦燥に駆られました。

  • 言っている意味がわからないから質問すらできない
  • 何を目的にしているのかわからないから何をすればいいのかわからない
  • これを繰り返したら何かわかるようになるのだろうか?
  • おれは仕事ができるようになるのだろうか?

まさに頭がウニになりました!

 

今なら(玉石混淆だけど)ググるとこですが、

その当時は、ブラウザでさえソースコード配布の時代、ググる先もないので、

誰かに「『おまじない』って何ですか?」と聞くところから始め、

誰かがmanコマンドを教えてくれたところで、やっと調べる端緒を得たのでした。

 

この時に得た知識は

『おまじない』という言葉は、細かい説明が面倒なときに使うもの

ということです。

あはははは!

 

冗談はさておき、

『誰かに何かを正しく伝える』

って、とても難しいですよね。

それは、相手が上司、同僚、新入社員、何年も一緒に働いている者同士でも

難しいです。

そして、ソフトウェアを提供するということは、

『誰かに何かを伝える』

ことの連鎖で成り立っているものと考えられます。

 

ここでいう『誰か』とは、

一緒にソフトウェアを開発する人たちはもちろん、ソフトウェアを使う人、販売してくれる人、運用監視をしてくれる人など様々な役割の人々に置き換える事ができます。もちろん、ソフトウェアを駆動してくれるハードウェア(平たく言えばパソコン)にも置き換えることができます。

 

そして『何か』とは、

ソフトウェアの仕様(どのような仕事をパソコンにやらせるか)、使い方(マニュアルや説明動画など)、魅力(導入実績や導入メリットなど)、問題の発見および解決方法などこれまた様々な事柄に置き換える事ができます。もちろん、実行プログラム(平たく言えばアプリです)にも置き換えることができます。

 

ソフトウェアの連鎖を形成している人やハードウェアは、それぞれの中で完結したものであるけれど、その間に『伝えられるもの』が正しく伝わらないと、連鎖は崩れ、ソフトウェアが危機に陥るだけではなく、それを形成している人やハードウェア自身も危機に陥ると考えられます。

 

ソフトウェアを作り提供するという仕事は、

実はものすごく人間臭い作業の連続で成り立っているものだと思います。

『おまじない』で始まったこの仕事

いまでも情熱を持って続けていられるのは、

『おまじない』に象徴される『人間臭さ』のおかげだと思っています。

2018年3月27日 髙橋

 

※UnixはAT&Tのベル研究所で開発が開始されたマルチタスク・マルチユーザーのOSです

 私が触れたときには、すでにC言語で書き直され、当時はソースが公開されていたので、新人の私でもOSのソースを読むことができました。

 おお、もちろん、今日の主題であるコマンドのソースも配布されていたので、自分で実行ファイルを作ることができました

※PC-98は日本電気株式会社が開発、販売していたパソコンです
※MS-DOSはMicrosoft Corporationが開発、販売していたOSです
※REDは旧ライフボートが販売していたテキストエディタだそうです
※UNIFACEはUNIFACEが開発、販売しているアプリケーション高速開発ツールです

 私が使っていた頃はUIとデータベースを専用の開発ツールで実装できる点と帳票設計も簡単で、その出力はPostScriptだったので、UNIFACEが吐くPostScriptコードを見て、カーニングでいけてないところなど見つけて、UNIFACE側に修正してもらう、なんて事もできました
※PostScriptはアドビシステムズが開発しているページ記述言語です

 PostScript対応プリンタに直接プログラムを送信することで自分が望むままの帳票を作ることができたので、プリンタと会話しているようで、とても楽しかった!