見出し画像

VTuberでもできるGo言語入門(1)

Go言語をはじめよう

最近、人にプログラミング言語を勧める機会がある場合、Go言語を勧めるようにしています。
いまからプログラミングを始めるとしたら、もしかしたらPythonの方がいいのかもしれません。
でも、プログラミング言語もVのセカイと同様、人気が出る言語もあれば廃れる言語もあります。そして、先のことは誰にもわかりません。
なので、たまたま目に付いた、気になった言語をまずはやってみるでも良いと思うのです。
そこで学んだことはきっと次の言語・技術でも活かせます。

ということで私はGo言語を推します。
理由は「好きだから」なのですが、なんで好きかをもう少し。

・シンプルなのに生産性が高い。
・プラットフォームを選ばない。
・スクリプト言語ではなくコンパイル言語。

特に私がGo言語を好きになったのは、ブラウザからアクセスするWebサービスのサンプルコードがapacheもNginxも使わずに、10数行のコードで書けてしまうという体験をしたからでした。
しかもWindowsのexe(実行ファイル)でですよ。

自己紹介

とりあえずここでこの文章を読まれているのも何かのご縁。プログラミングを何となくやってみたいと思っていた方でしたら、これを機会に一緒にGo言語を学んでみませんか。

申し遅れましたが私は a2see といいます。エンジニアを20年以上やっていて、あと、VNOS・ブイノスというコミュニティと法人をやっています。
今回は本題ではないので詳しくは書きませんが、バーチャルとテクノロジー(特にシステム・プログラミング)でなんやかんややってゆきたいと思っていろいろやっています。
今回の記事は、タイトル通りプログラミングを学んでみたいけれど何をやっていいかわからないというVTuberさんを想定読者として書いています。
もちろんVTuberさんでなくてもいいのですが、いずれすべての人々はバーチャルなインターフェイスを手に入れて様々な活動をしてゆくと思っています。
そのときにプログラミングをある程度理解していると、いろんな意味でとても捗るのかなと、そんな思いで本記事を書いています。

プログラミングとは

プログラミングという行為は、大きく以下の3つのプロセスで出来ています。

1.プログラムを書く(コードを書く。コーディングをすると言うことも)
2.コンパイルをする(スクリプト言語では不要ですが、Goは必要です)
3.プログラムを実行する

プログラムを書くこと自体はテキストを書けるアプリ・ツールだったら実は何を使ってもできます。
しかし、プログラムを実行するためにはそのプログラム言語自体をインストールしなければいけません。
最初から入っている言語も一部あってそれはそれでややこしいのですが、幸か不幸かGo言語はWindowsにもMacにもLinuxにも入っていないので自分でインストールする必要があります。(でも、MacのPythonについて解説するより気が楽ですね、、)

あ。ちなみに環境としてはWindows(10)のPCを想定しています。残念ながらスマホではできません。基本的にプログラミングはPCでしかできません。いずれはそうではなくなってくるとは思っていますが、まず現時点ではPCをご用意ください。。

ダウンロードとインストール

インストールには幾つか方法があるのですが、今回はシンプルに本家サイトからダウンロードしてインストールする方法を選びます。

1.https://golang.org/ にアクセスし、怪しい生物の下にあるDownload Goと書いてある大きなボタンを押します。


2.英語でいろいろ書いてありますが、自分の環境にあったものをダウンロードします。

今回はWindowsでの環境構築なので、左上のMicrosoft Windowsと書いてある箱の中のリンクを押してダウンロードを開始します。

3.ダウンロードしたファイルをダブルクリックして実行します。
なんやかんや色々言ってきますが、基本デフォルト(そのままの状態)でNextをどんどん押してゆきましょう。
せっかく新しいことを始めるのに、いちいち細かいことを気にしていたら前に進めません。詰まったらそのとき改めて、調べたり考えればいいのです。まず勢い、大事。

あ、1点だけ注意があるとしたら、下記の画面のパスだけ覚えておいてください。
これはGo言語をどこにインストールするかという情報で、別にどこでも構わないのですが、だからこそ自分の環境を理解して覚えていないと、ネットに書いてある情報とズレて同じ操作をしてるのにうまく動かないということが起きてしまいます。

また、プログラムが動くにあたってパスという情報は非常に重要なので(それゆえに多くのハマりポイントにもなっています)、どのパスに何があるのかというのは常にアタマの片隅で気にしておくと、大きなハマりから身を守ってくれる確率が上がります。

環境構築

インストールボタンを押して、ステータスバーがぎゅいんぎゅいん進んで、Finishボタンが出てきたらインストールは完了です。
ここまでで詰まるようなケースはほぼないと思いますが、もしありましたらコメント等でお教えください。

次に行うのは環境構築です。
残念ながら言語をインストールしただけでは、プログラムをコンパイルしたり実行したりはできないのです。
環境変数の設定とパスを通すという作業が必要になってきます。早速出てきましたね。

環境変数の設定

まず、環境変数の設定画面を呼び出します。
いろいろな方法があるのですが、このやり方でいきましょう。

1.画面左下にあるメニューバー上のWindowsボタンを押す。
2.その状態で「環境変数」とキーボードで打つ。

日本語でもアルファベットでも、打っている途中から上記のような環境変数を編集というメニューが出てくると思います。それをクリックしてください。

GOPATHの設定

環境変数にGOPATHを設定します。
でました。IT特有の投げっぱなし説明です。
ネット上にあるインストール説明記事をいろいろ読んでいても、このあたりになると突然説明が適当になってくることが多いのですが、自分で書いてみて理由がわかりました!ぶっちゃけ、飽きて疲れてくるのですね。。

しかし、本記事は単なるインストール記事ではなくVTuberさんたちにプログラミングに興味を持ってもらい、V界隈の発展に少しでも貢献するという大きな野望のもとに実は書かれていたりするのです。なので気を取り直してもうちょっと頑張ってみましょう。閑話休題。

GOPATHとはGo言語が使う作業用のパスです。
プログラムを作るときには自分ですべてのプログラムを書くのではなく、既にどこかの誰かが作ってくれた便利なパーツを取り込んで使うことがあります。
そうしたときにいちいち場所を指定するのではなく、あらかじめここをGo言語が使うよ!と決めておく場所がGOPATHです。
なので最初のうちはあまり気にすることもありませんが、いずれ必ず必要になるので、先に作っておきます。

さきほどのメニューの環境変数を編集をクリックすると下記のような画面が出てきます。

ここにはPCの様々なシステム設定がまとまっています。もし初めてこの画面を見るような方はぜひ慎重に以後の作業を行ってください。設定を不用意に変えたり消したりしてしまうと、PC自体が動かなくなってしまう可能性もあるので。。

いきなりコワイ話になってしまいましたが、プログラミングをするにあたってはここは避けて通れない道です。
コンピューター上で自在に動く便利なプログラムを作るには、OSという土台への理解なしにはできないのです。コラボ配信にお呼ばれしたとき、相手VTuberさんのことを事前によく調べておかないと、配信事故が起きかねないのとまったく同じです。
しかし必要以上に恐れなくともよいのもまた同じ。少しずつ学んでゆきましょう。

画面は〇〇〇(ログインユーザ名)のユーザー環境変数システム環境変数と上下に分かれています。下のシステムの部分は今回は触りません。基本的にソフトやアプリをインストールしたときに自動的に設定されるものだと思ってください。
上部のユーザ環境変数が今回の変更箇所です。これはユーザごとの設定なので、もし同じPCを何人かで使っていた場合、他のユーザの設定には反映されません。自分専用の設定なので安心してチャレンジしましょう。

変数にGOPATHがあったら、そのままで大丈夫です。そこがGo言語の作業用パスだと覚えておくだけでOKです。
もしなかったら、新規ボタンを押して、出てきたダイアログに下記のように入力してください。

変数名(N): GOPATH
変数値(V): %USERPROFILE%go

OKを押すとC:\Users\ユーザ名\goという、入力した文字とは別のパスになってしまいましたがこれで大丈夫です。そこが作業ディレクトリです。

※余力のある人向け補足。
これはもともとシステムが設定してくれていた%USERPROFILE%という環境変数を利用しています。環境変数の値の中で、環境変数を使っているのですね。

Pathの設定

続いてPathの設定です。こちらの変数は既に作られて、しかも様々な値が設定されているかと思います。
Pathとは、簡単に言うとコマンド(プログラム)を名前だけで簡単に呼び出すようにする設定です。
パスを通す」という言い方をよくするのですが、どこからでも名前だけでコマンドやプログラムを呼び出せるようにすることを指します。
Go言語ではプログラムやコンパイルしたり実行するときに、何度も何度もgoというコマンドを実行します。
そのときにパスが通っていないとフルパスといってC:\Go\bin\goみたいな長ったらしいコマンドを毎回打たなければならなくなります。しかしパスが通っていればgoの二文字だけで同じことができます。
ちなみに「パスを通す」は、サッカーやバスケの「パス」のイントネーションではなく、「雪」とか「押す」とかと同じイントネーションです。
四月一日さん家のの双葉ちゃんみたいにならないように気を付けてください。

それではユーザー環境変数のPathの行を選択し、編集ボタンを押しましょう。

新規ボタンを押して、%GOPATH%bin という値を追加してください。もし既にあったらそのまま何もしないで大丈夫です。

※余力のある人向け補足その2。
これ実は先ほど設定したGOPATH用のパスを通す作業で、goコマンド自体のパスではありません。つまりこの作業を行わなくてもgoと打つだけでコマンドは動作します。その設定は誰がどこでやってくれているかというと、インストール時にインストーラーが下のシステム環境変数の方に既に設定してくれています。

実行してみよう

これでGo言語を実行する準備が整いました。まずはコマンドプロンプトでgoコマンドを実行してみましょう!
環境変数の編集を呼び出したように、今度はWindowsボタンを押してcmdと入力してコマンドプロンプト画面を呼び出してください。

この真っ黒い素朴な画面が、無限の可能性を持つプログラムのセカイへの入口なのです。
続いて、go version(goとversionの間は半角スペースです)と入力してみましょう。先ほどインストールしたバージョン情報が返ってくれば成功です。

はじめてのプログラム

いよいよプログラムを書いてみるのですが、その前にプログラムを書き記すソースファイルを置く場所を作ります。
これまたどこでもよいのですが、デスクトップ上に作ることにします。
デスクトップで右クリックして新規作成→フォルダーを選択。gosrcという名前でフォルダーを作りましょう。
(ちなみにsrcはソースファイルのソースの略で、プログラミングではよく使われるキーワードなので覚えておくと便利です。あとコマンドやプログラムのことをバイナリファイルというのですが、そちらはbinと略されます)

gosrcフォルダーが出来たらその中に、hello.goというファイルを新規作成します。
まず、gosrcフォルダーをクリックし、画面上部のgosrcというパスが表示されている部分にcmdと入力しEnterを押してみましょう。

コマンドプロンプト画面が呼び出されるはずです。
先ほどのWindowsボタンからの操作との違いはカレントディレクトリです。

C:\Users\ユーザー名\Desktop\gosrc>

みたいな状態になっていればOKです。
先ほどcmdと入力したgosrcフォルダーと同じ場所にこのコマンドプロンプトもいます。
言葉だけだと何のこっちゃという話なので、下記のコマンドを打ってみましょう。

copy nul hello.go

1個のファイルをコピーしました。と表示されたら成功です。
そうしたら先ほどのgosrcフォルダーを見てみてください。今までなかったhello.goというファイルが作成されていると思います。

これがプログラム(ソースコード)を書くためのファイルです。
それではこのファイルにさっそくプログラムを書いてみましょう。
プログラムを書くための専用エディタ等もあるのですが、今回はWindows標準のメモ帳で書くことにします。

Windowsボタンを押してmemoと入力すると、メモ帳アプリが出てきますのでそれを選択し起動します。
起動した空のメモ帳ファイルに、さきほどのhello.goファイルをドラッグしてみてください。

そうすると、メモ帳の無題の部分がhello.goとなって、このメモ帳画面でhello.goファイルを編集できるようになります。
あとはもう、ソースコードをコピーするだけです。
今回はプログラムの詳細は説明しませんので、メモ帳にぐぐっと勢いよく以下のソースコードをコピー&ペーストしちゃってください。

package main

import "fmt"

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

最初から最後まで綺麗に貼り付けられたら、右上の×ボタンを押してメモ帳を終了します。確認ダイアログでは、もちろん変更内容を保存するボタンを選択します。

先ほど開いていたコマンドプロンプト画面に戻り(もし閉じてしまっていたら、先ほどと同様にgosrcフォルダーをクリックしてcmdと打ち込んで再度起動してください)、いよいよプログラムを実行します。

go run hello.go

と入力してみてください。
うまく表示されましたでしょうか?
実行結果のスクショは敢えて貼りませんでした。はじめて書いたプログラムが実行された結果は自分の目で確かめてみてください。

そしてまだまだ余力があるという方は、先ほどのhello.goファイルと実行結果を見比べてみてください。
勘の良い方なら、なんとなくいじっても大丈夫そうなところが見えてきたのではないでしょうか。
そうしたら、再度メモ帳で編集し、同じようにgo run hello.goを実行してみてください。

思い通りの実行結果が得られた方は、夜神月の顔真似をしながら『計画通り』と心の中で呟いてください。
上手くゆかなかった方も気にしないでください。もしかしたら上手くいったケースよりも、実はもっと高度なことをやろうとしていたのかもしれません。その素敵なアイディアを実現するために、これからじっくり学んでゆけば良いのです。

ここまで読んでくださったみなさん、ありがとうございます。
それでは、改めまして。

ようこそプログラミングのセカイへ。

この記事が、もしあなたがこの素晴らしきセカイ知るきっかけとなれたなら、とても嬉しく思います。
次の記事でまたお会いしましょう。


追記(2019-06-13):

鋭いご指摘をいただきました。
今回使ったgo runというコマンドは実は「コンパイル+実行」をまとめておこなってしまうものなのです。
本来はgo buildというコマンドを使ってコンパイル(ビルド)して、実行ファイルを作ってからそれを実行するのですが、手順の簡略化のために敢えてgo runを使いました。
実際の開発時にも何度も「コンパイル+実行」を繰り返すため、開発時はgo runを使って、リリースしたり開発環境とは別サーバで動作させるときにgo buildで実行ファイルを作るということも多いです。

こうした違和感や疑問というのは、プログラミングを行うにあたって非常に重要な感覚だと思っています。
自分の頭の中でシミュレートした動作と実際の動作にズレがあったとき、それを何故だろうと調べ突き詰めてゆくことは、エンジニアにとってより理解を深めてゆくことを習慣化する大切な感覚だと思います。
記事を読んだだけでそこに疑問を感じ気付けるというのは、もしかしたらすごいセンスを秘めているかもしれないので、ぜひ実際にも試してみてほしいですね。
りりいるさん、ありがとうございました!

この記事が気に入ったらサポートをしてみませんか?