Go 言語のススメ

概要

ここ最近様々なプログラミング言語が流行っています。Java や Scala、Node.js や Ruby、Python、R 等々、星の数ほど存在しています。昔はシステム管理用のスクリプト言語と言えば Perl 一択だったかと思います。ちょっとしたスクリプト程度であればシェルスクリプトでゴリゴリ作成する猛者もいるかと思います。Windows ならバッチファイルとかですね。





しかし現在 OS すらオープンになってきている中で、Windows と Linux が混在する環境はごく普通になってきました。Windows 及び Linux どちらでも動作するというのを売りに Java は破竹の勢いで流行りました。

ウェブシステム開発でも Java はかなり多く利用されています。さらに Java には非常に大量の内部ライブラリー・外部ライブラリーが存在しているので、出来ないことはほぼないと言っても過言ではないでしょう。

しかし1クラス1ファイルという構成を取ることで次第に肥大化していきます。プロジェクトが進行する度に増え続けるファイル数とライブラリー数、そして Java のみならず様々なライブラリーの使い方まで覚えていくのは非常に苦しいものです。


Go 言語とは

そこで Google が開発した Go 言語というものがあります。この言語は後発なだけに既存の問題点を多数解決していると共に、C/C++ 言語並みの速度で動作します。

C/C++ 並みに動作するとは言ってもポインター(メモリー上のアドレス管理)も扱う必要もなく(ポインターは使えます)、とても可読性の良いソースコードが出来上がります。またソースコードのフォーマットは Go 言語側が強制してくれるので(利点でもあり欠点でもある)、ソースコードのフォーマット統一性が実現されています。

ちなみに Go 言語の公式サイトのソースコードの一例は次のようになっており、とても簡潔ですよね。
$ cat hello.go
package main

import "fmt"

func main() {
  fmt.Printf("Hello\n")
}

クロスコンパイル

また様々な OS 向けの実行可能形式ファイルも作成できるのでとても便利です。Linux で Windows 向けの実行可能ファイルを作成することも可能です。例えば Linux で Windows 用の実行可能形式は次のように作成できます。
$ GOOS=windows GOARCH=386 go build -o hello.exe hello.go

このクロスコンパイルは非常に便利なのは言うまでもありませんね。今後様々な Go 言語の情報を記載していきます。