posixism.org

Write Once,
Work Anytime/Anywhere

About

posixism.orgはPOSIX原理主義に関する情報を集約することを目的としたサイトです。

POSIXism

POSIX原理主義とは,高い互換性と長い持続性を目指したソフトウェアの開発技法です。

POSIX原理主義の主な利点と欠点を以下に掲載します。

POSIX原理主義の利点と欠点
Good
  • メンテナンスフリー
  • 古いOSから最新OSまで対応可能
  • インストールが簡単
Bad
  • 互換性と持続性を高めるための工夫が必要
  • 交換可能性が担保できない最先端分野では適用困難
  • バイナリーデータの処理など適用困難な分野も存在

POSIX(Portable Operating System Interface:移植可能なオペレーティングシステムのインターフェイス)という国際規格があります。この規格は移植可能なOSに必要なインターフェイス(主にC言語のAPIとシェルとコマンド群)が定義されています。1988年に最初に規格化されてから,改訂を重ねながら25年以上存在しています。LinuxやBSD,MacなどのOSはPOSIXへの準拠を意識したOSとなっています。そのため,POSIXに準拠したソフトウェア開発を行うことで,LinuxやBSD,MacのようにPOSIXに準拠したOSであればいつでもどこでも利用可能な製品を開発可能です。

POSIX規格のように,移植可能性(交換可能性)が担保されたソフトウェア開発をPOSIX原理主義と呼んでいます。

交換可能性を担保することで,特定製品(ソフト)への依存性を下げることができます。これにより,脆弱性やベンダーサポートの中止といった問題が発生しても,他の代替製品へ切り替えることで継続して利用可能です。

このように,POSIX原理主義を実践することで,高い互換性と長い持続性を持ったソフトウェアを開発できます。

POSIX原理主義を実践する具体的な指針として以下の3点が示されています。

  1. POSIX準拠
  2. 交換可能性担保
  3. W3C勧告準拠

詳細はWikipedia論文をご参照ください。

ShellShoccar

シェルショッカーとは,「POSIX原理主義を至上とし、エクストリームなシェルスクリプトで人間どもを洗脳し、世界征服を目論む組織。」とのことです(秘密結社シェルショッカー日本支部より引用)。

主にTwitter上で活動が目撃され,以下2名の構成員が確認されています。

秘密結社シェルショッカー日本支部@shellshoccarjpn
リッチー大佐の中の人@col_richie

過去の活動から,POSIX原理主義に対する中途半端な批判は返り討ちに合う可能性が高いのでご注意ください。的を得た意見であれば,建設的な議論に発展することもあるようです。

News

2017-10-20 posixism.orgを公開しました。
2017-10-15 情報処理学会にて査読付き論文「ソフトウェアの高い互換性と長い持続性を目指すPOSIX中心主義プログラミング」が公開されました。

Repository

 
秘密結社シェルショッカー 日本支部

Publication

Paper

  • 松浦智之, 大野浩之, and 當仲寛哲, “ソフトウェアの高い互換性と長い持続性を目指すPOSIX中心主義プログラミング,” デジタルプラクティス, vol. 8, no. 4, pp. 352–360, Oct. 2017. https://www.ipsj.or.jp/dp/contents/publication/32/S0804-R1601.html.
  • 松浦, 智之; 大野 浩之 & 當仲 寛哲 (2016) : ソフトウェアの高い互換性と長い持続性を目指すPOSIX中心主義プログラミング, DICOMO, pp. 1328 - 1334. http://tsys.jp/dicomo/program/7A.html.
  • 松浦, 智之; 中村, 和敬; 大野, 浩之 & 當仲, 寛哲 (2016) : IoT時代に資するユニケージ開発手法の普及啓発に関する研究(2)POSIX中心主義と情報科学教育 , Vol. 2016 , No. 1 , pp. 421 - 422. http://id.nii.ac.jp/1001/00163045/.
  • 松浦, 智之; 大野, 浩之 & 當仲, 寛哲 (2016) : IoT時代に資するユニケージ開発手法の普及啓発に関する研究(2)POSIX中心主義と情報科学教育 , 情報処理学会第78回全国大会. http://www.slideshare.net/tomoyukimatsura/posix-59447685.

Book

Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか Shell Script ライトクックブック 2014-2016 すべてのUNIXで20年動くプログラムはどう書くべきか
http://richlab.org/coterie/pfb2.htm http://richlab.org/coterie/ssr2016.html http://richlab.org/coterie/pfb.html

Slide

恐怖シェルショッカーのPOSIX原理主義シェルスクリプト 恐怖シェルショッカー一号男! 
http://www.slideshare.net/tomoyukimatsura/1-php-con2014-40134119 http://www.slideshare.net/tomoyukimatsura/1-php-con2014-40134119

Article

FAQ

ID Question Answer
1 シェルとバンドル済みコマンド群だけでの開発は難しいのではありませんか? POSIX原理主義の本質は交換可能性(移植可能性)にあります。交換可能性が担保できれば,シェルとバンドルコマンド以外のソフトを使っても問題ありません。
2 ハードルが高いのではありませんか? いきなり全て取り入れる必要はありません。自分が取り入れる分野で徐々に取り入れていけば問題ありません。例えば,定形作業をPOSIXに準拠したシェルスクリプトで行ったり,データに特定ベンダーの独自のバイナリーファイルではなく,CSVやJSON,XMLなど汎用的なデータ形式を採用するようにするといった具合です。
3 開発効率が落ちるのではありませんか? 最初の作成時にはやや作業効率が落ちるかもしれません。しかし,その後のバージョンアップや他の環境へのインストールなどの保守が基本的に不要,または簡単になります。そのため,長期的に考えれば,必ずしも開発効率が落ちるとも限りません。
4 シェルスクリプトは処理速度が遅いのではありませんか? 手続き型からストリーミング型のコーディングに改めれば処理効率を大きく改善できます。例えば,while文とtestコマンドで逐一実行する手続き型の書き方ではなく,AWKやsedで一括して処理を行います。
5 POSIX原理主義で開発したソフトウェアは具体的にはどのOSで動きますか? Linux(Ubuntu,Debian,CentOSなど)やBSD(FreeBSD,OpenBSD,NetBSDなど),Mac,Windows(10 build 1607以降, Cygwin, MSYS)などで動作します。特に,2016-08に行われたAniversary UpdateにてWindows 10からMicrosoftが公式にLinuxのサブシステムをサポート開始したことで,動作可能環境が大幅に広がりました。

Contact

何かご質問などあれば,以下のメールアドレスにご連絡ください。

contact@posixism.org