概要
- Hacker News は以前 Arc (Racket上)で動作
- 現在は SBCL 上の Clarc へ移行
- パフォーマンス向上 と マルチコア対応 が主な理由
- ページング廃止 などUIにも変化
- Clarcのコード は未公開、セキュリティ上の事情
Hacker Newsの技術的変遷
- Hacker News は Paul Graham が開発した Arc というLisp方言で構築
- Arc は当初 Racket 上で動作していたが、現在は SBCL (Steel Bank Common Lisp)へ移行
- Clarc という新しいArc実装の登場が移行の決め手
- Clarc はパフォーマンスが高く、 マルチコア対応 も容易
- HN では長いスレッドの ページング機能 が廃止され、全コメントが一度に表示される仕様へ
- 過去には「More」ボタンで次のページを読み込む方式を採用
- 移行の公式アナウンスは少なく、UI変更に気付いたユーザーも多い状況
ClarcとArc実装の詳細
- Clarc は Arc-to-Common Lisp のトランスパイラ
- 他にも Arc-to-JS の Lilt というプロジェクトが存在
- Arc実装は段階的に再設計され、 arc0 (最下層)、 arc1 (arc0上)、 arc2 (arc1上)という階層構造
- arc0 のみ基盤言語(Racket, JS, CL)で記述
- 上位層ほどArc本来の機能が充実
- この設計により、異なる基盤への移植や再実装が容易
Clarcの未公開理由と今後
- Clarc のコードは 未公開
- 理由は HNのアンチアビューズ対策 が多く含まれ、公開すると効果が薄れるため
- 秘密部分の切り離しには多大な作業が必要
- 将来的に 他のArc実装公開時 に分離・公開を検討
まとめと今後の展望
- Hacker News は技術基盤を刷新し、 性能・拡張性 を大幅に向上
- UI/UX にも変化が現れ、今後もさらなる改善が期待
- Clarc や関連技術の一般公開には課題が残るものの、開発は着実に進行