はじめに
goを勉強したいなと思ったのですが、環境構築するのが面倒で(ウソです。本当は全然面倒ではありません)かつ、どこでも使える環境が欲しいと思っていました。
実は、普段から旧cloud9上で jupyter を利用していたりするのですが、たまに落ちたりして困ることがありました。
そこで、Colaboratoryならいつでもどこでも使えるじゃん?と思い立ちやってみました。
Colaboratoryとは
Googleが作ったjupyterのクローン。googleアカウントさえあれば無料で利用できる。さらにGPUも無料!!
Google Colaboratoryにブラウザでアクセスするだけです。
jupyterとは
主に機械学習用に利用されている。
セルにPythonのコマンドを入力しながら実行しながらできるので試行錯誤がしやすい。
なれちゃうと、これなしでは生きていけなくなります。
環境設定
まずは、Colaboratoryの環境にgoがインストールされているかチェックします。
セルはそのままだとPythonが実行されますが、!を付けるとシェルコマンドが実行されます。
(複数行実行したい場合には、%%bashをつけると便利です。)
これをマジックコマンドといいます。
!go
/bin/sh: 1: go: not found
無常にもインストールされていません。
なら、インストールしてしまいましょう。
!apt-get install golang
(出力は省略)
実行が終わったら、インストールできたか確認しましょう。
!go version
go version go1.8.3 linux/amd64
無事にインストールできました。
コーディング&実行
早速goのプログラムを書いていきます。
でも、Colaboratory上では、vimとか利用できません。
ここでまたマジックコマンドを利用します。
%%writefile helloworld.go
package main
import "fmt"
func main() {
fmt.Printf("Hello World\n")
}
%%writefile ファイル名
でセルの内容をすべてファイルに書き出すことができます。
ただし、欠点があり、シンタックスハイライトやオートインデントなどが使えません。
その後、以下のセルを実行します。
!go run helloworld.go
Hello World
注意
Colaboratoryの仕様でファイルの永続的な保存はできません。(数時間で初期化されます。)
よって
- 毎回goをインストール必要あり
- ソースも毎回作成する必要あり(なので、セルに%%writefileで記述するほうが早いです。)
もちろん、セルの内容はそのままgoogle driveに保存されます。
あと、クラウド環境なので、バージョンなど変わる可能性があります。
Colaboratoryでやるメリットデメリット
メリット
- いつでもどこでもインターネットに接続できる端末があればできる。
- 自分のPCの性能が悪くても問題なし。PCである必要もない。
- 自端末が故障したりなくしたりしても大丈夫。
- コマンド実行ログなども残る。
- テキストセルがあるため、そちらにマークダウンでコメントを残せる。
デメリット
- インターネットがないと使えない。
- googleさんがやめたら使えない。
- シンタックスハイライトや保管など高機能なエディタ機能が利用できない。
- 対話型のシェルコマンドが利用できない。← これが何気に一番痛いです。
おわりに
今回はgoにしましたが、同じ方法で他の言語も利用できます。
Colaboratory便利なのでどんどん使いましょう!!