この短い投稿では、GoとRustがライバルではないと考える理由を説明します。
GoとRustがライバルだと思う人がいるのはなぜですか?
- Rust and Goはほぼ同時に発表されました。 Go言語の開発は2007年に始まり、2009年11月にはすでに日の目が見えました。 Rustは数か月後の2010年に登場しましたが、Graydonは開発がはるかに早く始まったと指摘しています。 いずれにせよ、影響力のある前任者は両方の言語でまったく異なっています。 Goの場合、これらはCSP Hoara 、Alef、およびNewsqueak Pikeです。 Rustは、MLファミリの言語の拡張と見なされます。
- その錆、そのゴー-両方とも(メモリ管理の観点から)安全と見なされます。 このステートメントは完全に真実ですが、どちらの言語も安全でないコードの使用を推奨していません。 さらに重要なことは、今日、このような信頼性の保証がなければ、世界は言語を受け入れないということです。 GoとRustが、数十年の証明の後、実際にはプログラマがメモリを手動で安全に処理できないことを証明できた最初の言語であることがたまたま起こりました。
- どちらも非常に若く、2012年にGoが1.0に達し、2015年半ばにRustに達しました。 どちらも野心的であり、明らかに「古き良き時代」を押し上げる準備ができています。
GoとRustがライバルではないと思うのはなぜですか?
- Rustは「無料」の抽象化に焦点を当てています。 おなじみですね。 過去数十年、それはすべてのC ++プログラマーの戦いの叫びでした! Goはプログラムの実行中に多くのことを行うため、シンプルさと直交性を優先してパフォーマンスをいくらか犠牲にする必要があります。
- Rustは当初、C言語と互換性がありました。 定義上、RustコードはCからの呼び出しをサポートするプログラムに簡単に統合できます。Goはcgoを介したC呼び出しの規則とも互換性がありますが、本当に必要な場合にのみ使用してください。
- Goの焦点は、競争力の第一級で優先的な実装です。 この競争力の側面は、たとえばRustでは見られませんでしたが、Goでは言語の一部です。
- Rustとは異なり、Go は開発サイクル全体を通じて最大限のパフォーマンスを目指しています 。
Rust and Goはライバルではありません
「シンプルさ」が広まっているため、Goは大規模な開発チームをより効率的にしています。 複雑なアイデアや、非直交的な行動につながるアイデアは切り捨てられます。 Rustは、安全でないメモリの使用またはどれほどのオーバーヘッドが許容されないソフトウェアクラスを対象としています。
Rustは、高いパフォーマンスと引き換えに、はるかに複雑な構文とセマンティクス(および重要性、読みやすさの大幅な低下)の準備ができているC ++およびDプログラマーの注意を競います。 マイクロコントローラー、AAAゲーム、Webページレンダリングエンジン。 Goは、Ruby、Python、Node(V8)などの言語を単純に凌andし、JVMを使用する言語の高い要求に耐えることができないインターネット2.0企業の注意を競います。