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 マーケティング新着記事

news047.jpg

SASのCMOが語る マーケティング部門が社内の生成AI活用のけん引役に適している理由
データとアナリティクスの世界で半世紀近くにわたり知見を培ってきたSAS。同社のCMOに、...

news159.jpg

SALES ROBOTICSが「カスタマーサクセス支援サービス」を提供
SALES ROBOTICSは、カスタマーサクセスを実現する新サービスの提供を開始した。

news139.jpg

「Fortnite」を活用  朝日広告社がメタバース空間制作サービスとマーケティング支援を開始
朝日広告社は、人気ゲーム「Fortnite」に新たなゲームメタバース空間を公開した。また、...