Go 言語の概要


 
 
Go 言語 (または Golang) は 2007 年に誕生し、2009 年に正式にリリースされました。 Go は非常に若い言語であり、その主な目標は「 Pythonなどの動的言語の開発速度と、C/ C++などのコンパイル言語のパフォーマンスとセキュリティの両方を備える」ことです。

 

Go 言語は、プログラミング言語設計のもう 1 つの試みであり、C 系言語を大幅に改善したものであり、基盤となるオペレーティング システムにアクセスできるだけでなく、ネットワーク プログラミングと同時プログラミングの強力なサポートも提供します。 Go 言語には多くの用途があり、ネットワーク プログラミング、システム プログラミング、同時プログラミング、分散プログラミングに使用できます。

Go 言語の導入は、アプリケーションのパフォーマンスを損なうことなくコードの複雑さを軽減することを目的としており、「展開が簡単、同時実行性が高い、言語設計が優れている、実行パフォーマンスが優れている」という利点があり、現在、多くの IT 企業が導入しています。中国では Go. 言語開発プロジェクトを採用しています。

Go 言語は、「C に似た言語」または「21 世紀の C」と呼ばれることもあります。 Go は、同様の式構文、制御フロー構造、基本的なデータ型、値を渡すパラメーターの呼び出し、ポインターなど、C 言語から多くのアイデアを継承しています。また、コンパイルされたマシンコードの実行効率や、C 言語との互換性も備えています。言語は常に重視されており、オペレーティング システムはシームレスに適応されます。

Go 言語にはクラスや継承の概念がないため、 Javaや C++ と同じようには見えません。ただし、インターフェイスの概念を通じてポリモーフィズムを実装します。 Go 言語には明確で理解しやすい軽量型システムがあり、型間に階層はありません。したがって、Go 言語はハイブリッド言語であると言えます。

さらに、 Docker 、Go-Ethereum、Thraform、Kubernetes など、多くの重要なオープンソース プロジェクトが Go 言語で開発されています。

Go言語の創始者

言語を評価するときは、設計者の動機とその言語が解決しようとしている問題を理解することが重要です。 Go 言語は、コンピューター サイエンスの分野の重鎮である Ken Thompson 氏と Rob Pike、Robert Griesemer 氏の手によるものです。

1) ケン・トンプソン

ベル研究所の Unix チームのメンバーであり、1970 年代に C 言語、Unix、およびプラン 9 の創設者の 1 人であり、オリジナルの UNIX オペレーティング システムを設計および実装しました。この観点から見ると、彼のコンピュータ サイエンスへの貢献はどのようなものでしょうか。強調しすぎませんか?彼はまた、UTF-8 エンコーディング スキームの設計に関して Rob Pike と協力しました。

2) ロブ・パイク

Go 言語プロジェクトのゼネラル ディレクターであり、ベル研究所の Unix チームのメンバーです。UTF-8 の設計に加えて、分散マルチユーザー オペレーティング システム Plan 9、Inferno オペレーティング システム、Limbo プログラミングの開発にも貢献しました。共著『The Unix Programming Environment』では、UNIX の設計概念を本格的に詳しく解説しました。

3) ロバート・グリーズマー

Google に勤務し、Java HotSpot 仮想マシンの開発に参加し、言語設計を深く理解しており、Chrome ブラウザと Node.js で使用される Google V8 JavaScriptエンジンのコード生成部分を担当しています。

これらのコンピュータ サイエンス分野の重鎮は、Google のニーズを満たすために Go 言語を設計しました。この言語の設計には 2 年かかり、チーム全体の長年の経験とプログラミング言語設計に関する深い知識が組み込まれました。設計チームは、Pascal、Oberon、C の設計の知恵を活用しながら、Go に動的言語の利便性を与えました。したがって、Go 言語は経験豊富なコンピューター科学者の言語設計哲学を体現しており、世界最大のインターネット企業の 1 つのために設計されています。

Go 言語の設計者は全員、C++ に不満を感じたために言語を設計したと述べています。 Google I/O 2012 での Go Design Team のミートアップで、Rob Pike は次のように述べました。

私たちは C++ 開発を頻繁に行っており、コンパイルが完了するのを待つのにうんざりしています。これは冗談ではありますが、ほぼ本当です。

Go はコンパイル言語です

Go はコードをコンパイルするためにコンパイラーを使用します。コンパイラはソース コードをバイナリ (またはバイトコード) 形式にコンパイルします。コードをコンパイルするときに、コンパイラはエラーをチェックし、パフォーマンスを最適化し、さまざまなプラットフォームで実行できるバイナリを出力します。 Go プログラムを作成して実行するには、プログラマは次の手順を実行する必要があります。

  1. テキストエディタを使用して Go プログラムを作成します。
  2. 文書を保存します。
  3. プログラムをコンパイルします。
  4. コンパイルされた実行可能ファイルを実行します。

これは、コンパイル手順を含まない Python、Ruby、JavaScript などの言語とは異なります。 Go にはコンパイラーが付属しているため、別のコンパイラーをインストールする必要はありません。

Go言語を学ぶ理由

システム プログラムやネットワーク ベースのプログラムを作成したい場合は、Go 言語が適しています。比較的新しい言語であるこの言語は、大規模な同時ネットワーク プログラムを作成する際の課題に対処するために、経験豊富で尊敬されているコンピューター科学者によって設計されました。

Go 言語が登場するまで、開発者は実行速度は速いがコンパイル速度が遅い言語 (C++ など) を使用するか、コンパイル速度は速いが実行効率が低い言語を使用するかという非常に難しい選択に常に直面していました。 (.NET、Java など)、それとも開発難易度は低いが実行速度は平均的な動的言語ですか?明らかに、Go 言語は、高速なコンパイル、効率的な実行、容易な開発という 3 つの条件の間で最適なバランスを実現します。

Go 言語はクロスコンパイルをサポートしているため、たとえば、Linux を実行しているコンピュータ上で Windows 上で実行できるアプリケーションを開発できます。これは、UTF-8 を完全にサポートする最初のプログラミング言語です。これは、UTF-8 でエンコードされた文字列を処理できるという事実にも反映されているだけでなく、そのソース コード ファイル形式でも UTF-8 エンコードが使用されています。 Go 言語は真の国際化を実現しました。

Go言語のマスコット

Go 言語にはマスコットがあり、カンファレンス、ドキュメント ページ、およびブログ投稿には、主に下の写真の Go Gopher が含まれています。この Go Gopher は、Go のデザイナーの 1 人である Rob Pike の妻でもある才能あるイラストレーター Renee French によってデザインされました。

 
 

「 Go 言語の概要」についてわかりやすく解説!絶対に観るべきベスト2動画

【初心者必見!】Go言語とは?できることや学ぶメリット・将来性について解説
Go言語で何ができるの?どこで使われてる?現役エンジニアが解説