すみません、技術的な愚痴を書かせてください。

私は、もし可能なら県内の将棋愛好家の自伝集のようなものを作りたいと考えています。そしてそれは、1人分だけの原稿を取り出すこともでき、その1人分を製本すれば執筆者の家族にも「自伝を作ったよ」と渡せるようなものです。

お金と手間をかければ Illustrator なり InDesign なりで版下を組めるでしょうが、そんな予算も労力もかけられないので、極力省力化した仕組みが必要で、なおかつ一応の組版ができる仕組みが望まれます。

私はもともと LaTeX を使っていましたが、上記の構想を考え出したころは Re:VIEW を使っていました。でも Re:VIEW はその下部に TeX を組み込んでいるので使いにくいのです (それに加えて、Googlability が低いです)。そんな時、Vivliostyle が目に入りました。


Vivliostyle は技術的にはいいものだと思いますが、入門者向けの文献がものすごくひどいです。

特に、私が Vivliostyle について学びだして最初に触ったのが Create Book でして…これがもう本当に説明が足りていないのです。

それでも書かれている通りに試してみるとですね、最初に npm create book <directory> が出てくるのです。


npm の文字を見ただけで「あー、あのロクでもないやつか…」とピンときた方はいろいろ分かっていると思います。

npm ってのは Node.js の package manager の一種なのですが、これがもう、ものすごく無駄に disk 容量を食い潰すのですよ。例えば Vivliostyle で10行の文章を書いたとします。npm を使っているなら、その時点で disk を 100MB 程度消費しています。

あー、もちろん、package manager ですから、初回にそうなるのは仕方ないのです。npm がダメダメな点は、2つ目の文章として10行書いたら、追加で 100MB を消費する点です。

県内の将棋愛好家30人に原稿を書いてもらって、それぞれも別々の本として製本するなら、その時点で 3GB を消費するということです。

npm 以外のほとんどのまともな package manager はそういう愚かなことはしません。

キツイ書き方になってしまいますが、あらゆる package manager の中で私は npm が一番嫌いです。こんなにひどいモノは私の人生でも殆ど見たことがない気がします。

(因みに、npm の上記の問題を根本的に解決した pnpm というものがありまして、私はそちらが好きです。)


と、まあ、ここまでならありがちな好き嫌いの話なんですが、今日、ある事実を知りました。npm の設計に関わった Ryan Dahl という方自身が、npm のこの仕組みを後悔しているのだそうです。

この動画の 12:38 辺りを見てください。

ご自身で "HEAVIEST OBJECTS IN THE UNIVERSE" とまで表現しています。ホント、その通りです。

npm (の node_modules) の設計はとても醜悪でして、私は「よくもこんな醜悪な設計をこの世界に生み出してくれたな」と感じます。

私が自伝集を作りたいと構想し始めたのは何年も前ですが、この npm の設計の醜悪さにやる気が削がれてしまい、結局何も進んでいません。


私が所属する支部の設立時から支部会員であった T さんは、私が県内で初めての D を企画した時に後押ししてくれました。しかしその T さんは数年前に亡くなりました。

D で色々と困った状況になったときに助けてくれた K さんは、隣の支部の支部長さんでした。でもその K さんも数年前に亡くなりました。

あまり想像したくはない話ですが、今将棋の場に来ている方も、健康寿命が尽きれば来れなくなります。寿命が尽きればご自身が持っている将棋の経験談も後世に伝えられなくなります。

だから、自伝集を実現させるなら1年でも早い方がいい、ということは頭ではわかっているのです。

でも…npm の設計があまりにもひどすぎたので、やる気が出ないのです。pnpm を使えば問題が解決することはわかっているのですが、でも1度やる気が削がれたらなかなか戻ってこないものです。


今回は愚痴ばっかりですみません。