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

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

2023年04月08日 10時30分 公開
[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 マーケティング新着記事

news176.jpg

「伊右衛門」「日清麺職人」「鍋キューブ」に見る2024年上半期食品・飲料トレンドは「うま濃い余韻」
食品メーカーの商品開発やマーケティング支援などを行う味香り戦略研究所は、2024年の食...

news076.jpg

オラクルが広告事業から撤退へ ポストCookie時代の業界地図は変わるか?
Oracleは「Responsys」「Moat」「BlueKai」などの買収を重ねて広告部門を構築してきた。...

news068.jpg

琉球泡盛「残波」「海乃邦」の海外展開を例に考える日本のブランドが持つべき視点
日本のブランドが海外展開で持つべき視点とはどのようなものか。2024年4月にI&CO APAC代...