Scribble at 2023-07-25 20:56:02 Last modified: 2023-07-25 21:06:04

僕が csh や tcsh といった古い世代のシェルにこだわっている理由は、既に書いた話も一つあるが、他にもある。たとえば、僕は特定の環境でしか動かないプログラミング言語というのを使ってきた経験があり、それは40年前に遡る。当時はシャープの MZ-80B という8ビットのコンピュータを使っていて、その当時はメーカーごとに専用の言語を附属品として提供していた。僕は MZ-80B に附属していた SB-5520 BASIC という BASIC を習得したり、あるいはアセンブラを少しだけ勉強したりしていたのだが、そのうちサード・パーティ製の開発言語もリリースされるようになり、ハドソンの Hu-G BASIC なんてものも使ったりしていた。そうしているうちに、当たり前のことだが、メーカーごとに開発言語の仕様が異なるのは不合理だと思うようになったのだが、まだ当時は一般人、なかんずく中学生が UNIX や C を扱えるような状況ではなかったので、移植性といった話も次第に興味から消えてしまい、僕が主に使う「コンピュータ」は日本語ワープロになっていったわけである。8ビットの時代を経験しているのに、Windows 3.1 や MS-DOS を扱った経験が殆どないのは、その頃は日本語ワープロのオペレータをやっていてパソコンに関心を払っている場合ではなかったからである。

なので、現在のように多くのメーカーから出ているパソコンに、インストールしようと思えば Windows だろうと Linux だろうと乗せられるというのは、ありがたいことだと思う。したがって、同じ姿勢から言って、僕は特定の環境でしか動かないプログラムというのが、あまり好きではない。JavaScript の20年以上にわたるユーザでありながら、ライブラリや「フレームワーク」の類を軽視したり侮蔑しているのは、コアの JavaScript(ECMAScript と言ってもいいが)だけで書く汎用性こそが重要だと思っているからだ。僕が当サイトでも jQuery を使っていたりするのは、必要最低限の「悪事」であって、本来は自力で同じ結果を出せるのが真の JavaScript「プログラマ」であり、それをしないのは「コーダ」にすぎないと思っている。ここからもおわかりのとおり、僕はシェルについても csh とか tcsh という特定のシェルを擁護する意図はないのであって、寧ろ逆に後発のシェルがあれこれと「先進的」で「クール」な機能を続々と追加すればするほど、そういうシェルを使うユーザは特定の環境にロック・インされてしまうオペレータでしかなくなると思っているのだ。

何日か前の落書きでも書いたことだが、本来エンジニアというものは、いきなりターミナルの画面を見せられて「何のシェルを使っているか、環境変数へアクセスせずに一つのコマンドだけで判別せよ」(これは初心者でも分かるだろう。chsh を使うと該当するユーザが使うシェルのパスが表示される)とか、「何の OS を使っているか、コマンド一つだけで判別せよ」とか("uname" は正解ではない。その画面が PowerShell の画面だったら?)、そういう状況でも対処できるのでなくてはいけないと思う。これも何日か前に書いたことだが、Kali Linux なんていう特定のディストリビューションに頼ったスキルでは、ハッカーどころか情報セキュリティのエンジニアとしては初心者レベルであるというのも、同じ理由である。

つまり、僕は最も初期の頃に開発されて、いわばプリミティヴな機能しかないシェルでも使えると思っているし、そういうシェルだけでも仕事ができてこそ UNIX なり GNU/Linux のエンジニアではないのかと思うから、csh / tcsh をいたずらに「機能がしょぼい」とか何とか言っては zsh みたいなものを使ってるガキとは違うアプローチをとっているのだ。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook