やってきました、Advent Calendar 2016。ここ数年毎年参加してきたので、よし「今年も」と思ったのですが……
脳内の本音を喋る回路とTwitterを直結している人
Twitter上にこういう人がいました。
シェルスクリプトはどこでも動くと言ったな、あれは嘘だ
— スーパー🦍 (@ueokande) 2016年11月21日
echoコマンド一つでも、/bin/echoかシェルの組み込みコマンドかを意識しないといけないの、はっきり言って現代人のやることじゃない
— スーパー🦍 (@ueokande) 2016年11月21日
シェルスクリプトのプロジェクトに「curlが無いときは?」「whichコマンドが無いときは?」という性格の悪いプルリクを投げるの好き。
— スーパー🦍 (@ueokande) 2016年11月21日
ただTwitter上で呟いているだけならここでわざわざ問題にしませんが、このAdvent Calendarのホストをやっている人なのです。
このShell Script Advent CalendarはアンチPOSIX原理主義のためのシェルスクリプトを語る場なんですか?
せめてホストをやると決めた時点から役目を終えるまで、脳内の本音を喋る回路とTwitterは切断しておくべきではありませんか?1
品位が問われますよ。ホスト自身はもちろんのこと、さらにはQiitaまで問われかねません。
ここには反論を書くことにしました
このように品位を欠いた状態の場所にまともな話題を書いても不毛ですので、冒頭で取り上げたツイートに対する反論とその理由を書くだけにしようと思います。
当初は両方でやろうと思っていましたが、新しい話題は、今年はちょうど外に開設されたPOSIX原理主義 Advent Calendar 2016に行っています。
シェルスクリプトがどこでも動くというのは嘘じゃない
さて、冒頭のツイートに真っ向から反論します。
「シェルスクリプトはどこでも動く」というのは、今年ついに現実になったのです。
Bash on Ubuntu on Windowsが今年、革命をもたらした
どういうことでしょう?鍵はBash on Ubuntu on Windows(Windows Subsystem for Linux)の登場です。
ご存じのとおり今年の8月2日、Windows 10 Anniversary Updateがリリースされました。これにはBash on Ubuntu on Windowsというコンポーネントが追加され、Windowsに今までとは比べ物にならないほど本格的なLinux環境、つまりPOSIX的な環境がもたらされたのです。
Windowsといえば、2016年現在PC市場でシェア9割を誇るOSです。そして残り1割がMacとUNIX系OSでぼぼ占められています2。今出荷されているWindows PCのバージョンはほぼWindows 10ですから、出荷ベースでみれればシェルスクリプトはPCのほぼ100%で動くようになったのです。確かにまだ「PCの出荷ベースで見れば」という条件が外せませんが、Windowsのライフサイクル(サポート期限)を鑑みればその条件が外れるのも時間の問題です。
これによりシェルスクリプトが動くOSはほぼ100%ということになりました。あとはシェルスクリプトの互換性が確保できればよいわけすが、そのための開発指針こそ、我々が研究・提唱しているPOSIX原理主義です(外のAdvent Calendarで詳しくやってます)。一言で言えば、シェルスクリプトの共通語を覚えるということ。一部の環境でしか通用しない文法やコマンド、オプション等を、それが方言であると知らずに使うからよそで動かないだけで、きちんと知ればいいのです3。
きちんと知れば、こうしてシェルスクリプト製Twitterクライアントだって作れます。Bash on Ubuntu on Windows、OS X、CentOS、Ubuntu、Raspbian、AIX、それにCygwinで動くことを確認しました4。
ついにOSの壁を越えるプログラムが書ける時代がやってきたということで、今年はコンピューター史に残る革命的な年なのです。
それなのに……
故意に5「嘘だ」と言って嫌がらせをして、挙句の果てに他人の揚げ足取りのような行為を自慢する人がホストをやっていることに対し、品位を問わずにいられない。
以上
追記(12/03 12:25)
張本人が否定のツイートを出しました。
別にアンチPOSIX原理主義者じゃないし、そう捉えられたのは不本意だな
— スーパー🦍 (@ueokande) 2016年12月3日
しかし、全く説得力ありませんよ。過去にも前科がありますよ。こんなことツイートして、不本意などとよく言えたものです。
POSIX原理主義ヒマ人だなぁ
— スーパー🦍 (@ueokande) 2016年11月16日
不本意だと思うなら、こういった軽率なツイートは控えることですね。