スターティングGo言語を読み終わりました。
lndにcontributeにしたいなと調べていたら、lndはGoで書かれており、contribution guideのRequired Readingにeffective goがあり、effective go読む前にもっと基礎的な部分を勉強しようと思い、スターティングGo言語を手に取りました。
今まで理解できていなかったstructやslice周りがわかり、Goで書かれたコードを以前よりスムーズに読めるようになりました。
最近の暗号通貨のOSSプロジェクトは、Goで書かれているものが多い印象なのですが、なぜGoで書かれているか少しわかった気がします。静的型付けで、十分な実行速度があり、標準ライブラリに暗号ライブラリがあるのは、暗号通貨を開発するのに大きな強みだと思います。
どうしても他の言語だと、C言語で書かれたライブラリ(libsodiumなど)のbindingを使うことになりますが、Goはその点標準ライブラリをそのまま使えるのが嬉しいです。
次はeffective goを読みます。