もし Rust のチュートリアルを眺めていて、最初の「Hello World」をコンパイルするだけでコンピュータサイエンスの博士号が必要なんじゃないかと感じたことがあるなら、あなたは一人ではない。Solana Foundation の Cat McGee が火をつけた最近の X 上のスレッドは、ブロックチェーン開発者たちに賛同の頷きを誘うか、あるいは激しい反論のタイピングを生んでいる。問題の核心は古典的な対決だ:Rust 対 Solidity、そして Rust の悪名高い ownership(所有権)や lifetimes(ライフタイム)ルールが天才的な安全網なのか、それともエリート主義的な障壁に過ぎないのか。
専門用語を並べ立てずに整理しよう。Cat McGee は率直な意見で議論を始めた:Rust は長期的に見ると「習得がむしろ簡単」になり得る。なぜなら初日から堅牢なコードを書くことを強制するからだ。一方で Solidity は、講義もなく車の鍵を貸してくれる気の置けない友人のようだ—ただし後になって reentrancy バグやオーバーフローでクラッシュするまで。彼女の端的な要約はこうだ。
Solidity = 学ぶのは簡単、極めるのは難しい
Rust = 学ぶのは難しい、極めるのは簡単
この感覚はWeb3 開発コミュニティに広く共鳴している。Ethereum の Solidity は長年の定番で、DeFi プロトコルから我々が取り繕っているあのバイラルなミームコインに至るまで幅広く使われてきた。しかし Solana やその他の高性能チェーンが Rust を未来の言語として推すにつれ(Solana のスマートコントラクトを参照)、この議論は以前より差し迫ったものに感じられる。
そこに Cantina の CEO で Solidity のベテランでもある Hari Krishnan が登場し、議論を一変させるような一言を投げた。彼は Rust の核心的強み—ownership(基本的には誰がデータを「所有」し、いつ借用できるか)や lifetimes(ダングリング参照を避けるためにそのデータがどれくらい生きるかを追跡する仕組み)—がスマートコントラクトにとっては完全に無関係だと主張する。
なぜか?スマートコントラクトは Ethereum の EVM や Solana の BPF のようなサンドボックス化された仮想マシン(VM)で動く。これらの環境は短時間のコード実行のバーストであり、永続的なメモリ漏れが起きるような状態ではないし、勝手に動くポインタが use-after-free などを引き起こすこともない。「これらの VM で double-free やメモリリークの話を聞くことはない」と Hari は指摘する。厳格なルールの本当の利点は、ガス(または計算単位)を最後の一ビットまで絞り出すことにあるかもしれないが、それでさえ過剰だという主張だ。なぜ VM 側を調整してメモリ操作を極めて安価にし、言語をシンプルに保たないのか?
これは「何でも Rust」派に対する実利的な一撃だ。ミームトークンのローンチが素早く行われる世界では—次のポンプ前に犬をモチーフにした ERC-20 を展開することを考えてみてほしい—開発者が borrow checker と格闘している間に機能を出荷できないのは本当に望ましいのだろうか?
とはいえ、全員が納得しているわけではない。Spearbit の Philogy は別の観点から反論した:確かに複雑さを増すが、それでもより安全なコードを得る価値はないのか?実際、エクスプロイトが原因でDeFi ハッキングにより何十億も失われてきた。学びを先にやっておく方が、コンパイラがメモリ管理を手抜きしたせいでアセンブリを手で書き直すよりは良い、というわけだ。
ではブロックチェーンを志す開発者はどうすべきか?もしあなたが Ethereum エコシステムに深く関わっているなら、Solidity に留まるのが無難だ—実験をさせてくれるだけの寛容さがあり、CS の学位がなくても始められる。しかし Solana のスピードを狙っているなら、あるいは監査人を嘲笑うようなコードを書きたいなら、Rust への先行投資は報われるだろう。Anchor のようなツールはそのギャップを埋め、Rust をロケットサイエンスのように感じさせないようにしている。
このスレッドは思い出させる:ブロックチェーン技術に万能解はない。次の PEPE killer をコーディングするにせよ、イールドファームを作るにせよ、プロジェクトの雰囲気に合わせて自分の毒を選べ。あなたはどちら派?Rust の伝道者、それとも Solidity の忠誠者?コメントで教えてほしい—この不安定なミーム空間を我々は皆で共有しているのだから。