2023年04月08日 10時30分 公開
特集/連載

CでもC++でもなくプログラミング言語「Go」を使いたくなる“あの良さ”とは?GoとRustを比較する【第1回】

プログラミング言語「Go」はマイクロサービスだけではなく、さまざまなプログラムの開発を支援する特徴を備える。開発者にとって、Goの何がうれしいのか。

[Kerry DoyleTechTarget]

 「Go」と「Rust」は、明確な構造と、プログラミングを支援するさまざまな機能を備えるプログラミング言語だ。「C」「C++」といった“老舗言語”に代わる、オープンソースの汎用(はんよう)プログラミング言語として、開発者の支持を集めている。

 GoとRustには似ている点と、そうではない点がある。両者の機能やアプリケーション開発における利点、一部の開発者にストレスを与えかねない欠点を解説する。

軽くてパワフルな「Go」の“あの魅力”

 「Golang」とも呼ばれるGoは、実行速度の高速性に加えて、ソースコードの簡潔さや読みやすさに重点を置いたプログラミング言語だ。コンパイル(ソースコードを実行可能ファイルに変換すること)の際、ソースコード内の変数や式(値や演算子、変数などの組み合わせ)の型をチェックする「静的型付け」を採用している。開発者がGoを活用する、代表的な開発対象は以下の通りだ。

  • コマンドラインインタフェース(CLI)ツール
  • サーバアプリケーション
  • ミドルウェア
  • マイクロサービス(独立した小規模サービス)

 Goは、プログラムの実行時に型の整合性を厳密にチェックする「強い型付け」言語なので、開発者はソースコードにおいて明確に型を指定する必要がある。こうすることで、開発者はソースコード内のエラーを特定しやすくなる。「配列」「スライス」「マップ」など、Go標準の型を使うことも可能だ。

 開発者はGoにおいて、メソッド(操作)の集合である「インタフェース」を定義することで、異なる型を持つ変数やクラス(メソッドとデータの集合)で同じメソッドを実装する手間を省略できる。これはソースコードの再利用性を高めることにつながる。軽量なスレッド(プログラムの実行単位)である「goroutine」を駆使することで、CPUをより効率的に利用できることも、Goの魅力だ。

 Goには、不要なメモリを自動的に解放する「ガベージコレクション」の機能が備わっている。ガベージコレクションは、Goプログラムの安定性と信頼性の向上に役立つ。


 第2回は、Goの制限を解説する。

TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

ITmedia マーケティング新着記事

news041.jpg

2024年の広告業界大予測(無料eBook)
Forrester Researchは2024年を「大手メディアが活気を取り戻す瞬間」としています。マー...

news067.jpg

Xにおける「バレンタイン」を含む言及数は過去4年間で最多だがUGC数は最少 どういうこと?
ホットリンクは、X(旧Twitter)に投稿されたバレンタインに関するUGCについて調査しまし...