Go言語 【golang】

概要

Go言語(golang)とは、米グーグル(Google)社が開発・公開しているプログラミング言語の一つ。従来のC++言語の用途の一部を置き換えることを想定し、コードの記述の簡潔さや理解しやすさと、プログラム実行の高速性やリソース利用の効率性の両立を目指している。主要な処理系オープンソースとして公開されている。

基本的な文法や記法はC言語Javaに近く、大規模開発にも適用しやすいよう静的型付けとなっているが、スクリプト言語のように短い記述で目的を達するよう配慮されている。Cのようなメモリ破壊やメモリリークが起きないよう言語レベルでメモリの安全性が確保され、実行時にはガーベジコレクションわれる。

標準の言語処理系はコンパイラで、オペレーティングシステムOS)上で直接実行できるネイティブコードに変換してから実行する。実行環境仮想マシンなどをあらかじめ用意する必要はない。コンパイル速度を重視しており、Goコンパイラは一般的なC/C++コンパイラよりはるかに高速である。開発効率と実行速度の高いレベルの両立を目指している。

「Goroutine」(ゴルーチン)という並行処理のための仕組みが整備されており、実行時に極めて軽量なスレッドプログラム実行の流れ)を生成し、複数のCPUコアをフル活用して効率的に並行処理ができるようになっている。強力なコンピュータで動作するサーバソフトウェア開発する場合などに有用である。

標準ライブラリの機能を充実させ開発者が自前で記述しなければならないコードを極力減らす一方、現代的なプログラミング言語の多くに共通する機能の一部をあえて採用しない方針を取っている。これには例外処理継承ジェネリクスアサーションオーバーロード、暗黙の型変換などが含まれる。

Go言語はネットワークシステムやWebアプリケーションなどのサーバプログラムシステム上で直に動作するコマンドラインツール常駐プログラムデーモン)などの開発に適しているが、デスクトップアプリケーションやモバイルアプリを開発するためのパッケージなども公開されており様々な用途に使用することができる。

2007年頃からGoogle社内のソフトウェア開発を効率化するために設計が始められ、2009年に正式発表、2012年に標準処理系の初版が公開された。著名なソフトウェア開発者のロバート・グリーズマー(Robert Griesemer)、ロブ・パイク(Robert C. Pike)、ケン・トンプソン(Kenneth L. Thompson)の三氏が仕様策定を主導している。LinuxmacOSWindows、各種BSD系OSなどに対応しており、処理系BSDライセンスに基づいてオープンソースとして公開されている。

(2021.9.27更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる