以前、ページランクアルゴリズムをGoで実装したという記事を書きました。
それがですね、余興でTypeScriptとRustでも実装しちゃいましたー。
こちらGitHubです。 時が経てばnpmにでもUPします。
https://github.com/yukimura45z/pagerank-js
https://github.com/yukimura45z/pagerank-rust
Goより良い設計にしたので、この設計をGoのほうにも逆輸入したいと思いまーす。
というのも、ページランクの推移確率行列って密行列になかなかならないと思うので、過疎った疎行列であるという前提で、連想配列のループを回すようにしました。密行列になればなるほど密行列を前提とした行列演算のほうがはやいんでしょうけど、メモリ食っちゃうってのもあります。
弊社プロダクトにはTypeScript使います。Rustって設計自体はすごくいいんだけど組織として使うことにコスト的な合理性があるのかまだ心配の余地があるんですよね。