Lapis Lazuli

technical blog for web developer

Goは動的と静的言語両方の長所をもってると思う点

Goの記事多めですが、今回もGoでいきます。
晴れて仕事で一通り開発が終わったので、今回はGoにに関して振り返ってみようと思います。

言語仕様がシンプル

一番印象に残ったのは、とにかく言語仕様がシンプルだなと。
クラスもないし、継承もないです。
行末のセミコロンもないし、publicやprivateも記述がいりません(function名の大文字小文字で区別する)
最初は「覚えるの面倒だな・・・」って思ってましたが、一通り覚えると記述量を減らせて便利だなと。

クラスがないのも複雑さを無くす為ですね。継承やオーバーライドなど複雑さのもとですからね。
もちろん使えなくて不便。と思った事はありますが・・・使っているとスピード感がでて中々快適です。

型推論が理想的

モダンな言語は標準装備の型推論ですが、Goはその中でもかなり洗練されていると思います。

というのも、他の言語ってこんな感じだと思うんですよね。

var hoge = "ほげほげ"
// hoge is string

宣言と同時に代入するとことで型を決定しています。
これはこれで使いやすいのですが、Goは更にシンプルに。

hoge := "ほげほげ"
// hoge is string

ってな感じでvarさえも省略できます。
これなにが凄いって、型あり言語なのに、ほぼスクリプト言語っぽく書けます。
もちろんvarを使って書くことも出来るのですが、こっちのほうがよく見かけるので主流なのかな・・・って思ってます。

ガベージコレクションのおかげでメモリ管理をそこまで意識しなくてもよい

これ、書いててものすごく感じました。
比較的低級言語なGoですが、Cのようにメモリを意識して書かなくてもよいのは、ものすごくハードル下げてる要素と思います。
もちろんポインタがあるので全く意識しない訳にはいかないのですが、それでもメモリ解放を手動でやるシーンというのはあまりありません。

ポインタが意外にも難しくなかった

完全に主観なのですが、僕は今までポインタはとても難しいものだと信じ込んでいました。
けど、単に実態を指し示すものだと考えるようになってからは、そこまで苦手意識はなくなりました(笑)
Goでしか触った事ないですが、これならやっていけそうです。

まとめ

書き出してみると絶賛意見ばかりだなあ(笑)
僕は入り口が静的言語だったので、その煩雑さをことごとく消し去ってくれてるGoは感動モノだったというのが大きいと思います。
完全に主観ですが、なんとなく分かって頂ければ幸いです。

それでは今回はこの辺で。