Go
https://github.com/egonelbre/gophers/raw/master/.thumb/animation/gopher-dance-long-3x.gif
↑かわいい
ピン止めしてるからプロジェクト開くと踊ってて癒される
実質的にGopherくんを踊らせるためにピン止めしてる
残念ながらなんもわからんレベルくらいしか使えない
設計思想がとても好み
例外機構が無く、エラーは全部明示的に処理しないといけない所とか
panicが存在してはいるが、致命的なエラーの報告用でエラーハンドリングの道具ではない
libc相当の物まで自力で全部実装してあるため依存関係がほとんどない
netパッケージは便宜上Cgoを介してlibcを叩いているが無効化できる
クロスビルドやスタティックバイナリ化が簡単
言語機能として多値を持っている
前述のエラーハンドリングもこれを使って為されている
メインストリームの言語でこれを持っている言語は珍しいと思う
タプルで多値っぽく返せる言語はあるが
タプルと違って気兼ねなく使える
全ての依存ライブラリを静的にリンクして抱え込むのでリンクエラーを滅多に見ない
自分は見たことすらない
このせいでバイナリサイズが大きくはある
これのおかげでローダーが必要ないので(CGO使わない場合)スタティックビルドするとどこにでも持っていけるようになる