投稿日: Feb 09, 2018 7:50:11 AM
OracleJDKの無償提供が終わってしまう。お金を払わない人はOpenJDKつかってね。ってことなんだけど。
一応今までのOracleJDK同等の機能とパフォーマンスをOpenJDKで。とは言ってるんだけど信じられない。とてもとても。
エンタープライズな人たち(笑)は気づかない部分でOpenJDKはとっても遅い。OracleJDKじゃないととても実用じゃなかった。
ということで、一応OpenJDKの動向を見つつもJava自体動向が怪しいし別の環境に移る準備をしましょうということです。
いろいろ考えましたがGolangが一番かなぁと。
プラットフォーム依存という部分を嫌ってのJavaだったわけなので各プラットフォームにやさしいのがいい。
しかしLL言語は困る。バイナリが出来上がるのを前提としたら、もうこれしかないでしょうって感じ。
JVMもJavaの一部分だと考えればJVMを使う言語も除外余裕ですしね。
他にもD言語とか開き直ってC++とかいろいろあるんだけど。とにかくGo。しかしGoに明るいわけではない。
とりあえずインストール。
Golangに限らず、普通のプログラム言語というのは画面描画用の便利な命令があるわけじゃない。
Javaには画面描画のための便利なクラスがいろいろと用意されていてとても親切だった。
世間の厳しさを感じつつ普通はやらなきゃいけないことをやります。
いわゆる描画エンジン等の選定。
有名どころではOpenGLとかSDL2とか。
わたしは2Dを対象とするのでSDL2かな。ってことでSDL2に決定。
なぜってRaspberry Piがわたしのメイン環境だからOpenGLとか重いだけだし、3Dとか扱うととても一人でどうにか出来る労力には収まらなくなるし。
sudo apt install libsdl2-dev
手っ取り早くaptでインストール。
次はgo本体。
wget https://storage.googleapis.com/golang/go1.8beta2.linux-armv6l.tar.gz
tar xzf go1.8beta2.linux-armv6l.tar.gz
rm go1.8beta2.linux-armv6l.tar.gz
sudo mv go /usr/local/go
sudo ln -s /usr/local/go/bin/go /usr/bin/go
sudo ln -s /usr/local/go/bin/godoc /usr/bin/godoc
sudo ln -s /usr/local/go/bin/gofmt /usr/bin/gofmt
あまり凝ったことはせずにgoがもともとGOROOTとして認識してるところに置いてやる。
パス通すのは面倒だから/usr/binにbin以下のファイルのシンボリックリンクを作るってかんじです。
で、ビルド用のシェルスクリプト。
#!/bin/bash
GOOS=linux GOARCH=arm go build $1
これをbuild.shとか適当な名前で保存してchmod +x build.shとかで実行権限つけてやって、
./build.sh hogehoge.go
みたいな感じ。
クロスコンパイルについては環境構築がよくわからないので保留。
macはどうにもなら無いけどwindowsマシンはあるからそっちはそっちでgolangとsdl2いれてやるのもありか。
golang用のSDL2ラッパーをゲットする。
go get -v github.com/veandco/go-sdl2/{sdl,mix,img,ttf}
これでひととおりのセットアップは終わり。