Webフロントエンドでの話 その3
個別のツールやらその使い方やらでは問題があったりするが、全体としてみるとWebフロントエンドというか、むしろNode.js中心のコミュニティはなかなか凄いものがある。人口が多いとエネルギーの総量も大きいから(中国が凄いのと同じかも)。
まず、感心してしまうのは、NPMインフラ、あるいはNPMエコシステムだ。npmという個別ツールの話ではなくて、package.jsonフォーマット、Semantic Versioning、アーカイブ管理サイト https://www.npmjs.com/ 、それとgithubも絡んだその全体。
bowerが滅んだことは、むしろNPMエコシステムの健全性を示しているだろう。多元管理を排除して、単一の信頼できる管理システム/配布システムに集約されたのだから。大文字NPMはツールnpmのことではなくて、フォーマット/サイト/ツール群/ユーザーコミュニティとかを全部ひっくるめて言っている。ツールnpmがyarnに取って代わられる、とかは別にどうでもいい。
中核処理系であるnode.js自体のバージョンマネージャnvmや(yarnの)バージョン固定yarn.lockとかも素晴らしい。
こういうインフラ/エコシステムがあると、Webフロントエンドに限らず、分野にこだわらず、なんらかのパッケージ/モジュールはNPMインフラに載せたいと思ってしまう。
そういえば、PythonのPyPI/pipなどが同じようなエコシステムを作っている。C(だったか?)で書かれたuWSGIがPyPI and pipで配布されていた。Pythonの配布物でもCソースをコンパイルするメカニズムがあったので、フルCのパッケージでもPyPIで配布できる。同じように、JavaScriptではない配布もNPMインフラで配布されるようになるのではないかな。
もはや、配布インフラは言語ごとにあるものではなくて、利便性やら普遍性で選ばれるのではないか。現状、NPMインフラが利便性・普遍性で一番のような気がする。