まず先に言っておこう。
・ByteLoaderは、本体がバイナリの「シェルスクリプト」になる。
・別に大きなパフォーマンスが期待できる訳では「ない」
・別にサイズが小さくなる訳では「ない」
だもんだから、「なんじゃそりゃぁ?使う意味あるのか?」と、長いこと首を傾げていたのだけど、つい最近になって「あっ、そうなのか」とポンと膝を打った。
ByteLoaderを利用する目的は「コードの保護」なんだと。
オープンソース全盛のこのご時世に馬鹿げた話だとは思うのだけど、やっぱりビジネスで活用するとなると利権の確保が必要になる。
ところが従来の「ソースまるみえ」Perlだと、極端な話、ソースのエッセンスだけ抜き取ってスクラッチから書くことも可能だ。
コード自体はたいしたことなくても、その「アルゴリズム」が重要な意味を持つ局面は少なくないハズだ。
つまりByteLoaderは「ソースコード見ちゃイヤン」を支援/促進するための技術だった、と、そういうことのようだ。
まぁ、副作用として、プリプロセス分の速度向上が認められるかもしれないけど、Perlプロセス上げ下げのオーバーヘッドに比べたら屁みたいなもんでしょ。
あ、いちおうもうひとつ利点が。それは、Perl5以降の「モジュール全盛時代」に対応するもの。
いちおうユーザ権限でもできなくはないのだけど、基本的にPerl5のモジュールはrootを持っていないと容易にインストールできない。
ところがperlccでByteLoader化するときに、static linkみたいにモジュールを含めてしまうことができる「らしい」のですわ。
これは可搬性の意味でちょっとは貢献するのかも。
でもこれはちゃんと確認してない。Perl 5.6.0なんて、もうとっくの昔に消しちゃって手元にないので。
|