SESの次期案件を探していると、Golangの案件が増えてきた。
私はJavaの経験しかないが、Golangの経験ありますか?と聞かれることが多い。
時代の趨勢がGolangに傾いてきているため、勉強していきたい。
Golangの興り
Go言語は2009年にGoogleがリリースしたオープンソースのプログラミング言語である。
「シンプルで信頼性の高い効率的なソフトウェアを構築できる言語」として紹介されている。
なぜサーバーサイドの言語にGolangが選ばれるのか?
Golangを選ぶ理由とは、Golangのメリットである。
Golangのメリットは大きく3つあるようだ。
記述がシンプルで大規模で複雑なシステム構築で保守性を維持しやすい
Go言語はコードの書き方が厳密に決まっているため、プログラマーごとの記述の癖が出にくい。
そのため、大規模で複雑なシステム構築でも他のエンジニアが理解しやすく、チームでの開発や保守・運用がしやすい。
高速な処理が可能
Go言語は、書かれたコードを実行する際に事前に機械語に変換できるコンパイラ言語である。
そのため、PHPやPythonなどのインタプリタ言語に比べて、処理速度が速い。
ただし、これはJavaやC++等も同じである。
しかしJavaの場合は二段階方式で機械語に変換するが、Go言語は直接機械語に翻訳できるため高速での実行が可能らしい。
並行処理・並列処理が可能
よく聞くGo言語の特徴でありメリットはこれ。
Go言語は並行処理と並列処理の両方が言語レベルで備わっている。
並行処理は、複数のコアで一定期間内に複数の処理を順不同に行うこと。
並列処理は、1つのコアで同時に複数処理を行うこと。
この並行処理と並列処理をうまく使い分けることで、複数のCPUを持つコンピューターのパフォーマンスを引き出すことができる。
その特徴が、大量リクエストを捌く必要のあるWebサービスに向いているらしい。
他の言語、例えばPHPは並行処理が苦手らしい。
Golangを使用している企業
これらの企業で使用されている。
Go言語でHello world〜最小のプログラムを動かす〜
package main
import "fmt"
func main() {
fmt.Println("hello Go言語!")
}
任意の場所に、上記のファイル(main.go)を作る。
ターミナルで下記を実行する。
% cd ファイルの場所
% go run main.go
hello Go言語!