前回の冬コミとコミスペ6で頒布したPOSIX原理主義同人誌が、商業本になって本屋に並ぶことになりました。
すべてのUNIXで20年動くプログラムはどう書くべきか
~デプロイ・保守に苦しむエンジニア達へ送るシェルスクリプトレシピ集~
リアル リッチ・ミカン[著]、USP研究所[監]、C&R研究所[発行]
2015年7月24日 発売
本体2,500+税200円
A5版 2色刷 0x100頁
(Safariをお使いの方はコチラ?)
超硬派なUNIX哲学&POSIX原理主義本
どれくらい硬派かというと「bashはbashという言語であって、シェルスクリプトを語るに値せず」というくらい硬派です。そう言うと反感を覚える人もいるでしょうが、bash独自拡張機能を利用しておきながら冒頭に平気で「#! /bin/sh」を書く人に対して反感を覚えるという人なら、きっと仲良くなれるはずです。
Bourne Shellを至上とし、もちろんGNUコマンド等も使わず(使ってもいいけど独自拡張機能は一切使わず)、極力POSIXの範囲でプログラムを組みます。それなのに、こーーんなことがちゃんとできます。
- Ajaxで時計を更新するデモ
- HTTPセッション管理をするデモ
- 郵便番号から住所を引くデモ
- 東京メトロ車両位置情報表示プログラム「メトロパイパー」
- 侵略型ショッピングカート「シェルショッカー1号男」
- このサイトにもホラ、カゴに入れるボタンがついているでしょ?(たとえばここ)
- PayPal Web APIを叩き,オンライン決済が可能
- よそのCMSやサイトをショッピングカート化することも可能(→例)
- スライドも参照
さようなら。デプロイ沼とメンテナンス地獄
実用性があることはわかったとして、なぜわざわざPOSIX原理主義にこだわるのか?それは「どのUNIXに持っていってもそのまま動く」、「10年20年の長きに渡ってそのまま動く」という、超可搬性・超可用性を追求するためです。
世の中、「速い」「簡単」を謳う言語やライブラリー、フレームワークで溢れてます。コストを削減せよ!業務を効率化せよ!とウンザリするほど言われているとそういうものに飛びつきたくなります。しかし飛びついたらどうなるか……。待ち構えているのはメンテナンス地獄です。
- サポート終了といわれて、面倒なバージョンアップを強いられた。
- 脆弱性が見つかって、緊急バージョンアップを迫られた。
- 言われてバージョンアップしたらシステムが動かなくなった!
とかそんなのばっかり。本当にコスト削減&業務効率化は図られているのかと、疑いたくなります。
一方でPOSIX原理主義を遵守すると、こういう目にはほとんど遭わずに済むようになります。なにせPOSIXは枯れているからです。枯れているゆえに殆ど機能追加はありませんし、ましてや機能の廃止など殆どありません。とは言え「OSに脆弱性が見つかったらメンテしないわけには行かないだろ」と思うかもしれません。いや大丈夫です、どのUNIX系OS開発団体もPOSIX規格だけは遵守しようとしますから、POSIXの範囲で組んだプログラムしかないから、何も恐れることなくOSのバージョンアップができます。また、OSを乗り換えることもできます。しかもシェルスクリプト+テキストファイルでシステム組んでいれば、コピーするだけで乗り換え完了です。
さようなら、デプロイ沼とメンテナンス地獄……。
ところでこの商業本、Qiita投稿と同人誌が元なんです
冒頭でも出てきた同人誌というのは、これです。あ、同人誌ですからね、コレ。某出版社のページ探しても見つかりませんよ。ちなみに、このイラストはウチのサークルで手描きしたものです。
内容は同じで、旧バージョン(最新版は2015/03/29版)です。ただ、今回商業本化するにあたっては、クォリティーの違いを見せつけられましたね。実物を比べてみれば明らかに商業本の方が欲しくなるデキです。
同人誌もQiitaへの投稿が元
商業本と同人誌本はクォリティーの違いで棲み分けができていると思うのですが。実は、同人誌の元ネタ(つまり商業本の元ネタでもある)は、私がQiitaに書き貯めた投稿です。
中には商業本化の話が動き出してから投稿した記事もあります。先にWebに公開して、それを後から本に収録したのです。
「そんなことをしたら本が売れなくなるでしょ?」と疑問に思うかもしれませんが、私の経験上そんなことはありません。事実、この同人誌はWebに公開せずに作った同人誌(シリーズ第一弾)と同じ勢いで売れましたし、中には「Web(の記事)でいつもお世話になってまーす」と言って買いにいらしたお客さんもいました。
ですのでこの本(同人誌&商業本)には、Webで同じ記事があっても売り上げには影響しないことを実証する意味合いがあります。むしろ、Webで事前公開することによって記事のオープンβテストができるという利点さえあります。
どうでしょう、Qiitaでほぼ同じ内容が見られると知ったら購買意欲を削がれましたか?
さてさて、この本はどれだけ売れるでしょうか?内容に興味の無い方も、その結果にご注目を!