Windows / Mac / UNIX すべてで 20 年動くプログラムはどう書くべきか
ウインドウズ マック ユニックス スベテ デ ニジュウネン ウゴク プログ
一度書けばどこでも、ずっと使えるプログラムを待ち望
- 著者:
- 松浦智之 / ユニバーサル・シェル・プログラミング研究(マツウラ, トモユキ / ユニバーサル シェル プログラミング ケンキュウジ)
- 出版社:
- シーアンドアール研究所
- 出版日:
- 2016年11月
- ISBN:
- 9784863542099
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
「いつでも、どこでも、すぐおいしい」を実現する POSIX 原理主義解説書。
技書の森解説
Windows、Mac、UNIX のどれでも同じシェルスクリプトを動かすための書き方を、POSIX の規格の範囲に絞って解説した本です。『Windows / Mac / UNIX すべてで 20 年動くプログラムはどう書くべきか』は松浦智之 著、USP 研究所 監修で、C&R 研究所 (シーアンドアール研究所) から 2016 年 11 月に刊行されました。副題は「一度書けばどこでも、ずっと使えるプログラムを待ち望んでいた人々へ贈る[シェルスクリプトレシピ集]」です。
Windows 10 の WSL と POSIX 原理主義の考え方
版元の紹介文は、2016 年 8 月 2 日の Windows 10 Anniversary Update で「Bash on Ubuntu on Windows (Windows Subsystem for Linux)」がリリースされ、UNIX、Mac、Windows でそのまま動くプログラムが書けるようになったという出来事から書き起こされています。POSIX は、UNIX 系の OS の間でプログラムの移植性を確保するために IEEE が定めた規格群で、シェルの文法と、awk や sed、grep といった基本的なコマンドの振る舞いも規定しています。本書が序章の題に掲げる「POSIX 原理主義」は、この規格で保証された範囲の文法とコマンドだけでプログラムを組む立場を指します。
序章から第 7 章と付録までの構成
目次は、序章「POSIX 原理主義: その本質と可能性、実践方法を理解する」に続き、第 1 章から第 3 章が「どの環境でも使えるシェルスクリプトを書く」の文法 / 変数編、正規表現編、コマンド編です。第 4 章「Hors d'oeuvre:ちょっとうれしいレシピ」、第 5 章「POSIX 原理主義テクニック」、第 6 章「POSIX 原理主義テクニック …… Web 編」、第 7 章「知らないとハマるさまざまな落とし穴」と続き、付録「レシピを駆使した調理例」で締めくくられます。版元は要点を 3 つ挙げています。速い書き方を知れば C 言語並の処理速度が出せること、何が方言で何が共通語かを見分ければ互換性が高まること、乱数発生やファイルロックといった基本機能から、セッション管理、Cookie、Ajax、JSON の読み書きまでレシピで扱えることです。紹介文によれば、最終的には Twitter アプリの制作と郵便番号住所検索の Web アプリを紹介し、Windows や Mac の利用者に向けたシェル・プログラミングの開発環境の準備手順も記述しています。
方言を避けて書くシェルスクリプトの前提と向く使い方
シェルスクリプト は OS に最初から入っているシェルとコマンドだけで動くため、言語処理系やライブラリを別に入れずに済みます。その一方で、OS ごとのコマンドの実装の違いに当たりやすい書き方でもあります。たとえば GNU 版の sed と macOS に入っている BSD 系の sed では、ファイルをその場で書き換える -i オプションの引数の扱いが異なります。Bash の配列や二重角括弧の条件式も POSIX の規格には含まれない拡張です。こうした方言を把握したうえで共通の書き方に寄せるのが本書の方針で、配布先の OS を選ばない道具を作りたい人に向きます。
刊行時の版元の著者紹介では、松浦智之は 2007 年にフリーランスとなり、2010 年に USP 研究所と知り合って同社の雑誌 (著者紹介の表記では現シェルスクリプトマガジン) の創刊に携わったとされています。依存する処理系を増やさずに保守の手間を抑えたい人、ひとつのスクリプトを複数の OS で長く使い回したい人に合う一冊です。
言及した記事 (2 件)
この本に興味がある方におすすめ
関連する本
関連記事
技術書の知識を定着させる間隔反復法 - 読んだのに忘れる問題を解決する
技術書を読んでも内容を忘れてしまう原因を認知科学の観点から分析し、間隔反復法を使って知識を長期記憶に定着させる具体的な方法を紹介します。
技術書のタイトルに隠された法則 - 「入門」「実践」「詳解」の意味を読み解く
技術書のタイトルに使われる「入門」「実践」「詳解」などのキーワードには暗黙のルールがあります。タイトルだけで本のレベルと内容を見抜くコツを紹介します。
技術書を読む順番の戦略 - 複数冊を組み合わせて理解を加速させる
技術書を 1 冊ずつ読むのではなく、複数冊を戦略的に組み合わせることで、1 冊では届かない理解の深さと広さに達する方法を解説します。
関連用語
ShellScript
シェルのコマンドをまとめて自動実行するスクリプト。作業の自動化に使われる
CSP
Content Security Policy の略で、Web ページで実行可能なリソースの出所を制限するセキュリティ機構
Bash
Linux で標準的に使われるシェル。macOS にも同梱され、コマンド操作と自動化の中心になる
XSS
Web サイトに悪意のあるスクリプトを注入し、ユーザーの情報を盗む攻撃
Service Worker
ブラウザーとネットワークの間でプロキシとして動作し、オフライン対応やキャッシュ制御を実現する Web API
ファイルディスクリプタ
OS がオープンしたファイルやソケットを識別するための整数値