Golangとは何か?
Golang(Goとも呼ばれます)は、
Googleが開発したオープンソースのプログラミング言語です。
Golangは、シンプルな構文と効率的な並行処理をサポートしており、
「シンプルで信頼性の高い効率的なソフトウェアを構築できる言語」
として人気があります。
ちなみに、私は最近PythonやTypescriptを使っていますが、
あまり会社の同僚で使っている人がいないので
勉強したくなりました笑 Pythonは使っている人が多すぎて・・・
ちょっとオリジナリティを出したいなと思いまして
(Goも十分メジャーな言語だとは思いますが)
Golangの歴史と背景
Golangは2007年にGoogleで開発が始まり、2009年に初の公式リリースが行われました。
その後、Golangは急速に人気を獲得し、多くのプロジェクトや企業によって採用されています。
Golangの設計者は、言語の開発において以下の重要な目標を掲げました:
- シンプルさ: Golangの設計哲学はシンプルさです。
シンプルな構文とコンパクトなコードは、
プログラマーが迅速に開発できるようになります。 - 効率的な並行処理: Golangは効率的な並行処理をサポートし、
複数のGoルーチン(軽量スレッド)を扱うことができます。
これは、高性能なマルチスレッドアプリケーションを開発する際に非常に有用です。 - コンパイル言語: Golangはコンパイル言語であり、高速な実行速度を提供します。
また、コンパイル時の型チェックにより、バグの早期発見が可能です。 - オープンソース: Golangはオープンソースプロジェクトであり、
コミュニティによって活発にサポートされています。
多くのライブラリやフレームワークが提供され、開発者は既存のコードを再利用できます。
Golangの特徴と利点
Golangの特徴と利点をもう少し記載します。
- 並行性: GolangはGoルーチンとチャネルを使用して効率的な並行処理を実現します。
この特徴により、大規模なアプリケーションや分散システムを容易に構築できます。 - メモリ管理: Golangはガベージコレクションを備えており、メモリリークの心配が少ないです。
また、ポインタ漏れの可能性を排除するための安全な設計がなされています。 - クロスプラットフォーム: Golangのコンパイラは多くのプラットフォームをサポートしており、
クロスプラットフォームの開発が容易です。 - 速度と効率: Golangは高速なコンパイル速度と実行速度を提供し、リソース効率が高いです。
- 強力な標準ライブラリ: Golangには強力な標準ライブラリが含まれており、
ネットワーキング、データベース接続、HTTPサーバーなど、
多くのの機能が組み込まれています。 - 簡潔な構文: Golangの構文は非常に簡潔で読みやすいです。
不要な冗長性を排除し、コードの保守性を向上させます。 - エコシステム: Golangのエコシステムは成熟しており、
多くのサードパーティライブラリやフレームワークが提供されています。
これにより、多くの用途に適したアプリケーションを開発できます。
※エコシステム:
互いにメリットを享受し合いながら
存在するという依存関係みたいな感じ
=多いほど仕組みが色々あって開発しやすいのかなと - 安全性: Golangはメモリ安全性に焦点を当てて設計されており、
ポインタ漏れやバッファオーバーフローなどの一般的なセキュリティの問題を減少させます。
Golangのインストール(Docker)
初心者の方には難しいかもしれませんが、
Golangの実行環境はDockerをお勧めします。
Dockerは異なるプラットフォームでのアプリケーション実行を容易にし、
プラットフォームの差異を気にせずにGolangの環境をセットアップできます。
もうここ数年、
開発環境はDockerやクラウドIDEを使うことが多いので、
ここでは覚えておいて損はないものとして、
Dockerを使用してGolangをインストールする方法を記載します。
以下は、主要なプラットフォーム(Linux、macOS、Windows)
でのGolangのインストール手順です。
実際に私が使っているDockerfileを
GitHubに置いておくのでよければどうぞ!
LinuxでのGolangのインストール
Docker公式のGolangイメージを使用します。
Dockerfileという名前のファイルを作り、以下のように指定します。
# 公式のGolangイメージをベースにする
FROM golang:latest
# 任意の追加設定を行う
これで、Golangの最新バージョンが含まれたDockerイメージが利用できます。
macOSでのGolangのインストール
macOS上でGolangの開発環境をDockerを使用して構築するには、次の手順を実行します:
- Docker Desktop for Macをダウンロードしてインストールします。
- ターミナルを開き、以下のコマンドでDockerが正しくインストールされているか確認します。
docker --version
- GolangのDockerイメージを使用して、新しいコンテナを作成します。
Linuxのときと同じようにDockerfileを作ってもいいですが、
こんな感じでもいけますよ〜ってことで!
docker run -it golang:latest /bin/bash
WindowsでのGolangのインストール
Windows上でDockerを使用してGolangの開発環境をセットアップするには、次の手順を実行します:
- Docker Desktop for Windowsをダウンロードしてインストールします。
- PowerShellまたはコマンドプロンプトを開き、
以下のコマンドでDockerが正しくインストールされているか確認します。
docker --version
- GolangのDockerイメージを使用して、新しいコンテナを作成します。
Macと同じ感じでいけます〜。
docker run -it golang:latest /bin/bash
Hello World!をやってみよう!
私のコードは以下のGitHubリポジトリに置いておきます。
golang-learning
シンプルなので解説もあまり必要ない気もしますが・・・
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
軽く説明すると。
package main
:- この行は、このGoプログラムが
main
というパッケージに属することを宣言しています。main
パッケージは、Goプログラムの実行を開始するために必要です。
- この行は、このGoプログラムが
import "fmt"
:- この行は、
fmt
パッケージをインポートしています。fmt
パッケージは、フォーマット関連の操作を提供する標準ライブラリの一部です。
このコードでは、fmt.Println
関数を使用してテキストをコンソールに出力します。
- この行は、
func main()
:- ここでは
main
という名前の関数を宣言しています。
Goプログラムのエントリーポイントであり、main
関数からプログラムの実行が始まります。
- ここでは
fmt.Println("Hello World!")
:- この行は、
fmt.Println
関数を呼び出し、
引数として文字列 “Hello World!” を渡しています。
この関数は、標準出力に指定された文字列を出力するために使用されます。
- この行は、
“Hello World!”というテキストを標準出力に表示する簡単なものでしたが、最初の一歩になります!
Dockerコンテナを起動して、このコードをコンパイルし、実行すると、
コンソールに “Hello World!” と表示されるでしょう。
以下でコンテナに入り
docker exec -it golang-learning /bin/bash
以下で実行です。
go run basic/hello_world/hello_world.go