ホームページ >バックエンド開発 >Golang >大手インターネット企業が Go 言語を使い始めているのはなぜですか?

大手インターネット企業が Go 言語を使い始めているのはなぜですか?

PHPz
PHPzオリジナル
2023-03-24 10:58:341541ブラウズ

大手インターネット企業が Go 言語を使い始めているのはなぜですか?

Tencent、Meituan、Didi、Baidu、Google、bilibili など、ますます多くの大手インターネット企業が Go 言語 を使用し始めています。 .

そして、当初 Python を使用していた ByteDance は、Go を完全に採用しました。国内外の多くの大手企業が導入を始めていますが、そのメリットは何でしょうか?次に、その利点のいくつかについて説明しましょう。

ps: もちろん、Go-To-Byte のメンバーの中には、Go 言語を学び、それを使って青少年トレーニング キャンプの大きなプロジェクトを完了したいと考えている人もいます~

Go のいくつかの利点

利点と言えば、ある面では、他のものにはないいくつかの機能があること、または他のものの面倒な領域を最適化することが主な理由です。比較すると、さらに優れています。次に、Go の機能のいくつかを見てみましょう。ただし、単純な機能を理解する前に、他のいくつかの一般的な言語を見てみましょう:

いくつかの一般的な言語

これは比較ではなく、誰が良いか悪いということではなく、川を渡るポニーです。人によって異なります~

1, C/C

C 言語 は、1971 年に偉大な神々 Ken Thompson と Dennis RitchieGo 言語 の主要な開発者によって発明されました。そのうちの Ken Thompson は、多くの点で C 言語に似ています。 (struct、Printf、および value 演算子など)

C /C 初心者向けの言語としても多く使用されています。これらはすべて マシンコードに直接コンパイルされるため、実行効率が高く、すべて 実行環境を必要としません。 、ユーザーの使用コストを削減します。必要な環境のインストールも必要な多くの言語とは異なり、コストが低くなります。

これらの理由により、

1 つのエンコードまたはコンパイルは 1 つのプラットフォームにのみ適用されます。オペレーティング システムが異なると、エンコードを変更してからコンパイルする必要がある場合と、そうでない場合があります。直接再コンパイルするだけで十分です。

そして、それは開発者にとって「非常に不親切」でもありますか? ガベージ コレクション

(GC) の問題には自分で対処する必要があります。コーディングするときは、ヒープ上のメモリがいつ free になり、いつ 削除されるのかについても考慮する必要があります。コードはメモリ リークを引き起こし、安全ではありませんか?

2. Java

Java から Go を学んだ新人として、私はまだ正式に開発していません。 Javaより開発効率は落ちる気がします(個人の感覚です、気に入らなくても文句は言わないでください)~?

Java

バイトコード (.class) に直接コンパイルされており、このコンパイル成果物は、元のエンコーディングとマシンコードの間の中間コードです。この場合、Java プログラム には特定の実行環境 (JVM) が必要となり、実行効率が低下し、仮想化の損失が発生する可能性があります。ただし、これには 一度コンパイルすれば、複数の場所で (クロスプラットフォーム) 実行できるという利点もあります。また、 には GC も付属しています。 3. JavaScript

Python

と同じで、

JS はインタープリタ言語であり、コンパイルする必要があり、解釈後に実行できます。したがって、Js には、特定の実行環境 (ブラウザ エンジン) も必要です。 コードをブラウザに入力した後、ブラウザはコードを解析する必要があるため、仮想化損失が発生します。

Js

を実行するにはブラウザーのみが必要なので、クロスプラットフォームでもあります。 Go についてもう一度話しましょう前の共通言語の簡単な紹介を読んだ後。

C/C

仮想化を損なうことなくバイナリに直接コンパイルされるため、パフォーマンスは非常に高く、

Go は非常に優れていると考えています; Java 自動ガベージ コレクション メカニズム は非常に優れています。Go これも優れていると思います。Js ワンタイム エンコーディングは複数のプラットフォームに適用できます,Go は非常に快適であり、Go は当然のことながら、どの言語にも匹敵しない高い同時実行機能を備えています。それでは簡単にまとめてみましょう! 独自の実行環境 Runtime が付属しており、

GC
    問題
  1. に対処する必要はありません。 Go プログラムの実行環境は驚くべきもので、実際、Java
  2. など、ほとんどの言語には
Runtime

という概念があり、プログラムの実行環境は JVM で、別途インストールする必要があります。 Java プログラムの場合、特別な処理を行わないと、JMV 環境を持つマシン上でのみ実行できます。 <p>#Go<code> プログラムには、独自の実行環境が付属しています。Go プログラムの Runtime は、プログラムの一部としてバイナリ製品にパッケージ化され、 Runtime は、ユーザー プログラムと一緒に実行されます。つまり、Runtime は、一連の .go コードやアセンブリ コードなどです。ユーザーは、 を「直接」呼び出すことができます。ランタイム の関数 (make( []int, 2, 6) など、この構文は実際にはランタイムで makelice 関数を呼び出すためのものです)Go プログラムの場合、簡単に言えば、追加のオペレーティング環境をインストールせずに実行できます。 Go プログラムを開発する必要がある場合を除きます。

このため、Go プログラムは GC 問題に対処する必要がなく、処理は完全に Runtime に任せられます。 (とにかく一緒にパッケージ化する必要があります)

  1. 高速コンパイルとクロスプラットフォーム

C/C とは異なり、複数のプラットフォームの場合は変更が必要な場合があります。コードを作成してコンパイルします。これは、中間コードにコンパイルされ、複数のプラットフォーム上の仮想マシン上で実行される Java のワンタイム エンコーディングとも異なります。 Go コーディングは一度だけ行う必要があり、簡単にマシンコードにコンパイルして複数のプラットフォームで実行できます。

#Runtime にはシステム コールをある程度シールドする機能があるため、そのクロスプラットフォーム機能も Runtime によって提供されることは言及する価値があります。

  1. シンプルな構文と穏やかな学習曲線により、高いパフォーマンスと高い同時実行性を自然にサポート

C 処理する能力同時実行性も弱いわけではありませんが、C の高いコーディング要件により、経験豊富で専門的な C プログラマ でなければ、多くの失敗が発生する可能性があります。 Go はそれほど経験が豊富ではないかもしれませんが、それでも高いパフォーマンスで同時実行性の高いプログラムを作成できます。

その非常に高い同時実行性は、

コルーチン スケジューリングを処理するために Runtime によって与えられる機能でもあることは言及する価値があります。

  1. 豊富な標準ライブラリと完全なツール チェーン
開発者向けに、

Golang 環境をインストールします。その後、次のコマンドを使用できます。多くの機能を開発するための公式標準ライブラリ。たとえば、以下の図に示すように、一般的に使用されるパッケージが多数あります。

大手インターネット企業が Go 言語を使い始めているのはなぜですか?##そして

Go

自体には 豊富なツール チェーン があり、 (例: コードのフォーマット、単体テスト、ベンチマーク テスト、パッケージ管理...)

。 。 。 。 。 。
  1. 多くの大企業が Go 言語を使い始めています。私たちのチームが GoLang を使用する理由は、これらの機能と関係があります~

関連する推奨事項:

Go ビデオ チュートリアル

以上が大手インターネット企業が Go 言語を使い始めているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。