1. Qiita
  2. 投稿
  3. Qiita

品位が問われるAdvent Calendar -- シェルスクリプトはどこでも動く!

  • 6
    いいね
  • 13
    コメント
に更新
2

やってきました、Advent Calendar 2016。ここ数年毎年参加してきたので、よし「今年も」と思ったのですが……

脳内の本音を喋る回路とTwitterを直結している人

Twitter上にこういう人がいました。

ただ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)

張本人が否定のツイートを出しました。

しかし、全く説得力ありませんよ。過去にも前科がありますよ。こんなことツイートして、不本意などとよく言えたものです。

不本意だと思うなら、こういった軽率なツイートは控えることですね。


  1. そもそも普段からTwitterと直結していること自体が賢いことではないと思いますが、それは個人の自由ですから否定しません。 

  2. Windowsが全バージョンでシェア増加 - 10月OSシェア | マイナビニュース 

  3. 2番目に引用したツイートのechoに対する指摘も、シェルスクリプトの共通語を覚える気がないから出てくる発言。 

  4. もっと色々な環境(現役でサポートされているOS)で動くはずなので試してみたい。 

  5. 故意であるからこそ、3番目に引用したツイートのようにcurlやwhichコマンドをPOSIX範囲外と知ってて嫌がらせをしようとするのです。 

この投稿は Shell Script Advent Calendar 20163日目の記事です。
Comments Loading...