1378 words
7 minutes
Goのチュートリアルをしてみた感想。

Goのチュートリアルをしてみた感想#

こんにちは、YAMAです。
今回は、Goをすこしかじってみたので、その感想をば

そもそもGoとは?#

いままで、JavaやC,JavaScript,etc…などを触れてきた私にとって、Goは少しばかり前に出た、話題の言語程度の感覚でした。(2009年は少し前なのだろうか?)
ベンチャー系の企業や海外の企業がこぞって「この言語いいよね」って言ってるだけのイメージしかなかったので百聞は一見に如かず、ということで実際におさわりしてみて実感してみよう的な感じで初めて見ました。

それでGoとはなんぞやとqiitaで調べてみました。(公式Documentsでは全部英語で読めなかったので…)
いろいろ見た結果、Cとjavaのいいところを組み合わせて2で割ったみたいな言語なんだなぁ…って感じの印象を受けました。
この後実際にプログラムを書いたのですがまんま C言語に近い感覚を味わいました。
ここではあまりGoがどういったものかは話さないのですが、少しだけ特徴をあげていきます。

  • シンプルな構文

よく見るとjavaに似てたり C に似てたりでGoを書くときにあまり苦労しなさそうでよかったです。
正直javaもしくはC 言語を書いている人はすぐにGoに移行することができそうです。

  • メモリ安全性

これはガベージコレクションのことですね、javaにもある機能でメモリの管理をしてくれるやつです。
C言語にはこれがないので、よくメモリ管理が大変だとか言われる原因ですね。
Goにはこれがあり、こちらでメモリの管理をする必要がなくて楽なのもポイントが高いですね。

  • クロスコンパイル

これはjavaにもある機能で、どんなOSでも同じように動くバイナリを作成することができるというものですね。
だいぶ前の記事でも書いたのですが、改行や文字コードというのはOSごとに違い、文字化けや、改行によるコンパイルエラーなどが起きることを防ぐことができます。

まだまだほかにもいろいろな特徴(処理速度、並行処理、などなど)いろいろなものがあるのですが、とりあえず今はこれだけ紹介しておきます。
これらがGoの特徴ですね。
   で、実際このGoで何が作れるのかって話ですが、できることは結構あります。
Web,api,Docker,cli tools ,IoT, etc…
こんな感じで、大体何でもできる便利な子ですね。
そもそもjavaやCに似てる時点で大体何でもできそうなんですけどね。
実際、サーバサイド開発においては需要が上がっていいるとかなんとか、将来性がありそうでいいですね。

チュートリアルドキュメントがある#

Goにはチュートリアル用のドキュメントがあります。
これはとてもありがたく、非常に助かります。
Go Tutorials
こちらから実際に始めていくことができます。詳しいことはこのTutorialsから読んでください。
ではまず最初にGoのインストールから始めます。 今回はURLからのダウンロードがめんどくさかったので、Scoopでダウンロードすることにします。

scoop install go

これで、最新版のGoがインストールされます。
一応確認のためにバージョンを表示させます。

go version

これで、バージョンが表示されれば大丈夫です。

Hello, Worldを出力してみよう#

チュートリアルの最初にあるのがHello, Worldの出力です。

mkdir hello
cd hello
go mod init example/hello 
cd hello

これで、helloというフォルダとgo.modというファイルが作成されます。
その後、hello.goというファイルを作成し、そこにコードを書いていく感じです。

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

この記述をした後にgo run . とコマンドを打つことで実行ができます。
これで、Hello, Worldが出力されます。
ちなみにHelpは

go help

で、Helpがでます。

まとめ#

今回はとりあえず、Hello, Worldを出力するまでを紹介しましたが、この後にDocumentを作成する方法、いわゆるjavadocみたいなやつの作り方まで載っていますので、ぜひ皆さんはやってみてください。
私は、一応Restful APIの作成までのチュートリアルをやってみました。
やっててやっぱり思うのはほかの言語にとっても似ているので、やはり勉強するための労力が少なく済みかなりやりやすい部類に入るのではないかなと思います。
大学などでjavaやCを勉強してた人なら一度試しにやってみてはどうでしょうか?
以上YAMAでした。