Goについて Part1
2015·08·04
Goが大好きゆえの。
ゴーゴーは踊れない@CreatorQsFです。
Goというプログラミング言語、最近だとやっと日本に上陸しました感があって嬉しいです。でもまだまだ、おなじ学生の土俵だとGoを使ってる人を見たことがないんですよね…。寂しい限りです、マイナー感まだまだ否めません。ううむ…良い言語なんですが。
そこで、私はGoを布教しろというお告げをもらっておりますので、本日は、そのGoの良さについて、語っていこうと思います。
Goは楽しい
Goは書いててとにかく、楽しいんです。PHPとか書くのが苦痛でしかなかった言語に比べて、Cの時のように楽しんで書くことができます。
その一つに、将来有望だということがあげられるかもしれません。Goはまだまだ若い言語です。そしてそれを使わなければならないというマストな場面もいまのところはありません(swiftとかのようにってことです)。でもそれを逆手に取れば、今後どのような方向にも進むことができるということなんです。Goをやることは、何者にもなれないけれど、何者にでもなれるということなんです。でもそのくらい可能性のある言語なんです。
Javaもそうでした。しかし、Javaは少し古い。そしてめんどくさい。正直IDEがないと書けない言語なんです。モダンといえばそうなのかもしれないですが、そうは素直に喜べないところがあるなぁと僕は感じます。Goは新しいゆえに、いままでのそういう使ってみて初めて分かった悪いところを一掃した感じがあります。
なぜ将来有望だと言語を書くのが苦痛ではないか?その言語をやっていることに意味を感じられるからです。今役立つものはすぐに役立たなく成るとはよく言ったものですが、つまりそういうことです。同じ時間かけてやったものがすぐに使えなくなるのとこれから先も図と使えるのと、それなら後者を選ぶと思います。もちろん、ソレに合わせたものという私の考えから言うとどちらもやってみるべきですが、それでも気持ちとしては、はアリますよねw(私は割と嫌がりながらも両方やるようにするタイプです)
また、GoはFramework類がきつくないのもあります。よくFrameworkが使えないのは駄目だみたいなのを見かけますが、僕は全く使えません。というより、ソレに割く時間はもったいないというか…大体、そういうのってその言語に特化してたりするわけでもなくて、言事は別の学習が必要なことが多くて、結局ほぼ同じ時間かかってしまいます。Railsなどもよいんですけど…あ、ちなみに、GoではRevelはおすすめです。でもですね、Goならば、ぜひnet/httpは使いこなしたいですね。Frameworkと呼べるかは微妙ですが、これは使える子です。こういうのを組み合わせて素のGoであまりに巨大でなければかけるぐらいには、Goは便利です。つまり素でやったことがそのままどこでも役立つ、という感じでしょうかね。意外とこういう言語少ないような気もします…。
そしてGoの特徴とも言えると私は思うんですが…。一つのことをやるのにいくつかの無駄なルートがないということがあげられるのではないでしょうか。いやもちろんやろうと思えばいくつでも出てきますけど、ある程度これがいいよってことが明確に決まっています。たとえば、ループ処理はfor一つです。whileやdoや、そういったものは存在しません。ifとselectはありますがどのように使い分けるかは実に明確です。要するに書くときにあまり手が止まる瞬間がないのです。こうと考えたらそれがコードとして出てくるとでもいいますか、人それぞれのProgramはもちろん生まれますが、その個人単位で見た時に迷いはある程度少ないのではないでしょうか。
オブジェクト指向でありそうではない、というのもすごくいいです。たいてい私のように中間をとろうとすると微妙に成ることが多いのですが、これはそうでもなさそうです。そしてほぼオブジェクト指向なので、多分他の言語から来た人もすぐに慣れると思います。
error型も面白いです。panic recoverなども非常によく考えられてます。例外処理がないのが非常に私は気分がいいです。とはいえど、まだ他人のコードをそれほど読む機会がないので、そこまで恩恵があるわけでもないですが…。test機構がもともとあるのもいいですよね。
とにかく、書くためのツールが揃っていて、書きやすいこと。それが私がGoを使う理由です。
とはいったものの、私もまだまだGo初心者ですから、精進しなければ…。