私がプログラミング言語Goを実際使ってみて感じたこと
弊社ではプログラミング言語Goを使った仕事のご相談が多くなってきました。
私も実際Goのプロジェクトに携わる機会がありましたので、今回はGoについての記事を書かせていただきます。
私も実際Goのプロジェクトに携わる機会がありましたので、今回はGoについての記事を書かせていただきます。
Goについて
Goは、2009年11月10日にGoogleで発表されたプログラミング言語です。
Goの特徴は、静的型付け、メモリ安全性、ガーベジコレクション、コンパイル言語などの特徴を持ちます。
バージョン1.0は2012年3月28日にリリースされました。
場合によってはGo言語やGolangと表記する場合がありますが、正式名称はGoです。
(公式サイトのドメインがgolang.orgになっているのは、go.orgが取得できなかったためでもあります)
Goの特徴は、静的型付け、メモリ安全性、ガーベジコレクション、コンパイル言語などの特徴を持ちます。
バージョン1.0は2012年3月28日にリリースされました。
場合によってはGo言語やGolangと表記する場合がありますが、正式名称はGoです。
(公式サイトのドメインがgolang.orgになっているのは、go.orgが取得できなかったためでもあります)
Goの使いやすいところ
Goの使いやすいところは何と言っても、構文がシンプルなところです。
同じ処理でもC/C++やJava等の静的言語と比べると、シンプルな構文で実現できます。
例えば以下です。
・型定義しなくても変数を使用できる(foo := 1の記述でで自動的に型変換)
・defer記述することで関数処理終了時にdeferに記述している処理を呼び出すことができる
・「var i, j int = 1, 2」の記述でiに1、jに2を一気に代入できる
GoはJavaにあるような型付け・コンパイルを行うことができ、実装段階でエラーを見つけやすいので、開発効率向上につながりました。
また、GoはC言語から派生した言語でもあるので、C言語経験者は容易に習得しやすいのも特徴です。
同じ処理でもC/C++やJava等の静的言語と比べると、シンプルな構文で実現できます。
例えば以下です。
・型定義しなくても変数を使用できる(foo := 1の記述でで自動的に型変換)
・defer記述することで関数処理終了時にdeferに記述している処理を呼び出すことができる
・「var i, j int = 1, 2」の記述でiに1、jに2を一気に代入できる
GoはJavaにあるような型付け・コンパイルを行うことができ、実装段階でエラーを見つけやすいので、開発効率向上につながりました。
また、GoはC言語から派生した言語でもあるので、C言語経験者は容易に習得しやすいのも特徴です。
Goの使いにくいところ
Goが使いにくいところは、まずオブジェクト指向が使えないところです。
オブジェクト指向が使えないため、Javaを使っている人にとって、Goは使いにくいと思われます。
また、他の言語では使える条件の三項演算子が、Goでは使えないです。
そのため三項演算子と同様の処理を書く際、if else文を使った冗長な記述になります。
それと、GoはC言語から派生した言語であり、ポインタや構造体などC言語特有の技術を経験していない人が習得する場合は、少し時間かかりそうです。
オブジェクト指向が使えないため、Javaを使っている人にとって、Goは使いにくいと思われます。
また、他の言語では使える条件の三項演算子が、Goでは使えないです。
そのため三項演算子と同様の処理を書く際、if else文を使った冗長な記述になります。
それと、GoはC言語から派生した言語であり、ポインタや構造体などC言語特有の技術を経験していない人が習得する場合は、少し時間かかりそうです。
Goを使う場面
Goは処理が速いのが特徴ですので、バックエンドの中でストリーミング処理などレスポンスタイムを重要視するプロジェクトに使う場合が多いです。
実際、私が携わったプロジェクトでは、業務システムのAPI(AWS Lambda)に使いました。
また、GoはDockerやKubernetesで使われており、IaCなどを使ったインフラ構築でも相性が良い傾向にあります。
今回は、プログラミング言語Goの記事について書かせていただきました。
弊社ではGoを始めとした最新技術を取り入れたアプリケーション開発・インフラ構築に取り組んでおります。
アプリケーション開発・インフラ構築で得た知見や、生産性向上・工数削減につながる最新技術の情報など、役に立つ情報を今後も発信していきます。
実際、私が携わったプロジェクトでは、業務システムのAPI(AWS Lambda)に使いました。
また、GoはDockerやKubernetesで使われており、IaCなどを使ったインフラ構築でも相性が良い傾向にあります。
最後に
今回は、プログラミング言語Goの記事について書かせていただきました。
弊社ではGoを始めとした最新技術を取り入れたアプリケーション開発・インフラ構築に取り組んでおります。
アプリケーション開発・インフラ構築で得た知見や、生産性向上・工数削減につながる最新技術の情報など、役に立つ情報を今後も発信していきます。