Rust or Goあなたはどっち派?

1524 ワード

注意書き

あくまでも筆者の個人的主観です。
採用例などは一例です。
全ての機能をその言語で実装しているとは限りません。

Goの魅力と採用例

文法が簡単

Goは文法が比較的簡単です。
PythonやRubyの難易度を1として、
Goは1.5ぐらいです。
ちょっと難しいぐらいです。

並行処理が簡単

たったこれだけです。

go hoge()

ライブラリが豊富

標準ライブラリや周辺ライブラリがめちゃくちゃ豊富です。
Pythonほどではないですが、Pythonの次ぐらいのライブラリがあります。

採用例

  • メルカリ
  • google:Vitess
  • など

Rustの魅力と採用例

GCなし

GC(ガベージコレクション)がありません。
RustはC系のプログラマー丸投げでも、GCでもない、独自の手段で管理しています。

速度がC系とほぼ同じ

JavaやPythonと違い直接マシン語に変換するのでとても高速です。
Goもかなり速いですがRustは頭1つ抜けています。

コンパイラがめちゃくちゃ優秀

Rustのコンパイラはめちゃくちゃ厳しいです。
その分実行前にバグをできる限り排除できます。
Rustはコンパイラさえ通ればほとんど心配がいりません。

採用例

  • Discord
  • Dropbox
  • など

DiscordとDropboxはどちらもサービスの一部をもともとGoで書いていましたがパフォーマンスが遅いと言う理由でRustに移りました。

結局どっち?

とりあえず実装ならGo
パフォーマンスを追い求めるならRust
が個人的考えです。
どちらも相互に呼び出せるので少しずつ移植などもできます。

宣伝

ブログやってます。