Protocol Buffers:アマチュアによる災害?

2025-09-05

この記事はProtocol Buffers(protobuf)の設計上の欠陥を批判し、その型システムが貧弱で、設計が場当たり的で、コード全体に問題を引き起こすと主張しています。protobufの多くの制限は、すでに解決済みの問題に対する不適切な解決策に起因し、合成性に欠けています。例としては、oneofフィールドの繰り返し不可や、mapフィールドの様々な制限などがあります。この記事は、protobufの後方互換性と前方互換性に関する主張についても批判し、コードベースを汚染し、コードの記述と保守を困難にすると述べています。著者は、protobufはGoogleのような大企業には適しているが、ほとんどの企業には適しておらず、protobufの使用を放棄するよう開発者に勧めています。

続きを読む
開発

1年から数週間:コンパイラのプログラムグラフ共有の最適化

2025-05-13

著者は1年以上、コンパイラのプログラムグラフの直列化問題に取り組んできました。最初の解決策は、雑然としていてメンテナンスが困難でした。他者と協力し、問題をグラフ内の最低単一共通祖先(LSCA)の探索として再定義することで、既存のLCAアルゴリズムライブラリと巧妙な遅延評価プログラミング技法を活用しました。その結果、元のコードの3分の1の長さ、線形時間のエレガントなソリューションが得られ、パフォーマンスのボトルネックを効果的に解決しました。

続きを読む