リトルインディアンとビッグインディアン

これはおかしいよね。

n unsigned short (常に 16 ビット、ビッグインディアンバイトオーダー)
v unsigned short (常に 16 ビット、リトルインディアンオーダー)

PHPのマニュアル・pack関数の項より

ちょっと検索してみたら、こんなのを発見。

Endianをインディアンって読むのって珍しいの?

リトルインディアンとビッグインディアン

珍しいですよね?

今日、これ生まれてはじめて見たような気がするんですが。

ちなみにこれが語源。

好意的に解釈するなら、PHPは実用本位の言語だから、細かいところまで気にしていられない、ていう忙しい人が集まったコミュニティで使われている、ってことなんだろうけど。

でも、公式マニュアルなんだから、リトルエンディアン、ビッグエンディアンぐらいちゃんと書いてあってもバチはあたらないんじゃないか。(いつからこうなってるんだろう? 一事が万事じゃないけど、印象悪いな)

PHPのマニュアルは日本語版だけじゃなくて、そもそも英語版も結構いい加減だ。xml_set_character_data_handler関数のコメント欄には「undocumented」な仕様について書いてあったりするし。

しかし、PHPって、もともとPerlで書かれていたような気がするんだけど、Perlのあとにできたもんなんだし、折角なんだからPerlより洗練された美しい言語に発展させればいいのに。

なんで変数名の頭に「$」が必要なのかイマイチ理解できないし。unpack関数の仕様も、意図はわかるんだけど、なんだかなって感じだし。preg_matchとかの正規表現の両端にスラッシュをいれなきゃいけない理由も良くわからない。(今試してみたら、スラッシュじゃなくても「#」とかでもいいみたいだけど)

最近いじり始めたRubyは、食わず嫌いで長らくスルーしていたんだけど、これは洗練されていて良くできている。Rubyも、Perlの仕様をいくらか汲んでいるように感じられるけど、きちんと整理して取り込んでいるような印象を受ける。

(追記: 1989年のcomp.lang.miscのポスト「"big endian" and "little endian" - first usage for computer」、これ面白い。インド人は左から右に書くシステムで数字はbig endian。そこにムスリムが侵略して記法を輸入したので今のアラビア語はlittle endianなんだと。)