今回はGoogleが開発したプログラミング言語「Go言語」をご紹介します。
目次
Go言語とは
Go言語は、Googleが開発したオープンソースのプログラミング言語です。
コマンドラインツールやWebアプリケーション、クラウドサービスの開発、DevOpsやSREなど幅広い用途に使用可能で、YouTubeやGmailといったGoogleのサービスはもちろん、Meta、Netflix、Uberといった大規模なWebサービスでも採用されています。
Go言語は2009年に登場して以来バージョンアップを繰り返し、2023年8月にリリースされた「1.21」では「1.20」でプレビュー公開されたProfile Guided Optimization(PGO)機能がGAとなったほか、min、max、clearとった組み込み関数の追加、log/slog、slices、maps、cmpといった多数のパッケージの追加といった機能追加が行われています。
Go言語の特長
高速な動作
Go言語はコンパイル(コードを機械語に変換)して実行するコンパイラ言語です。JavaScript、Python、PHPといったインタプリタ言語と比較して実行時に機械語へ変換する処理が不要になるため高速に動作可能です。また、同じコンパイラ言語のJavaやC#のように中間言語への変換を行わないので、それらと比較してもより高速に動作します。
シンプルな言語使用
Go言語はシンプルな言語使用となっており、Javaなどの言語の使用経験がある開発者はもちろん、初心者でもかんたんに習得することができる点が特長です。繰り返し構文もfor文しか用意されていないなど、コードの書き方が統一され、可読性が高くなります。
並行処理が得意
Goroutine(ゴルーチン)やchannel(チャネル)といった並行処理を行うための機能が用意されているので、簡単に並行処理を記述することが出来ます。
標準ライブラリが豊富
Go言語は標準のライブラリが充実しており、書式設定やファイル操作、HTTPサーバーといった機能を標準のライブラリで実現できます。
Go言語を使ってみよう!
それでは、早速Go言語を使ってみましょう。
Go言語の開発環境の構築
まずは公式サイトからGo言語のSDKをダウンロードしてインストールします。トップページから[Download]をクリックします。
今回はWindows環境にインストールするので、「Microsoft Windows」のインストーラーをダウンロードします。
ダウンロードしたmsiファイルを実行するとウイザードが起動するので、[Next]をクリックして進みます。
使用許諾を確認し、「I accept the terms in the License Agreement」にチェックを入れ、[Next]をクリックして進みます。
インストール先のフォルダを設定し、[Next]をクリックして進みます。
[Install]をクリックするとインストールが始まります。
以下の画面が表示されたら[Finish]をクリックしてインストールを完了します。
以上でGo言語の開発環境の構築は完了です。コマンドプロンプトやターミナルで以下のコマンドを実行し、インストールしたSDKのバージョンが表示されればインストールは成功です。
go version
Go言語でHello World
開発環境の構築が完了したら早速Go言語を使ってみましょう。任意のフォルダに「hello-world.go」ファイルを作成し、以下の内容を記述します。
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
ファイルを配置したフォルダでコマンドプロンプトやターミナルから以下のコマンドを実行すると、「hello world」の文字列が出力されます。
go run hello-world.go
上記のコマンドを実行した場合は、コンパイルから実行まで一気に行いますが、以下のようにexeファイルにコンパイルして実行する方法もあります。
go build hello-world.go
上記コマンド実行後に作成されるexeファイルを実行することで同様の結果を取得することができます。
.\hello-world.exe
※ exeファイルの実行時にウィルス対策ソフトの影響でエラーが発生する場合があります。その場合はウィルス対策ソフト側で検疫の対象外に設定するなどして再度実行してみて下さい。
HTMLページの表示
Go言語では標準ライブラリの「net/http」を使用することで簡単にHTTPサーバーを構築することができます。今回はこちらを使用して簡単なHTTPサーバーを作成し、静的なHTMLページを表示させてみたいと思います。
まずはプロジェクトの配下に「Public」フォルダを作成し、以下のようなHTMLページ(index.html)を配置します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTTPサーバーサンプル</title>
</head>
<body>
<h2>Hello World!</h2>
</body>
</html>
続けて以下のような内容で「main.go」ファイルを作成します。
package main
import (
"net/http"
)
func main() {
fs := http.FileServer(http.Dir("./public"))
http.Handle("/", fs)
http.ListenAndServe(":8090", nil)
}
以上でHTTPサーバーの設定は完了です。以下のコマンドを実行してサーバーを起動します。
go run main.go
ブラウザから「http://localhost:8090/」にアクセスすると、以下のようにHTMLページを表示することができました。
さいごに
今回の記事では、Go言語の特長や環境構築方法、簡単なHTTPサーバーの構築方法についてご紹介しました。高速な動作と並行処理が魅力のGo言語は大規模なWebサービスにも最適です。
メシウスでは様々なWebアプリケーションフレームワークと一緒に使えるJavaScriptライブラリを提供しています。
無償のトライアル版や、ブラウザ上で手軽に試せるデモアプリケーションも公開しているので、こちらも是非ご覧ください。