2015/11/14

GO言語を勉強してみるとか

これまで、bash (シェルスクリプト)、Perl をメインにプログラミングしてきた無銘闇人です。

たまたま、仕事で 72 万行のテキストデータを解析することになって、Perl でスクリプトを書く機会があったのですが、スクリプトのテストの段階で、処理に 3 時間以上かかる羽目になりました。最終的には、5 パターンのスクリプトを書いて、うち 1 つが 30 秒で処理できたので、まずまず使えるものになりました。


でも、結局のところ、Perl はスクリプト言語であって、C や C++、Java のようなコンパイルする系の言語に実行速度はかなわないので、そろそろ、腹を決めて、コンパイルする系のプログラミング言語を学ばないとと思って、学習コストが低そうな言語を探してみました。

そもそも、Perl とか bash のようなスクリプト言語に偏ったのは、簡単に書ける、ラフな書き方ができるなどの利点があるからなんですよね。自分や身内が時々使うだけのプログラムに無駄な労力と時間はかけたくないですからね。
あと、Perl とか bash が変数の型をあまり気にしなくてもいいというのが魅力的ですね。プログラム入門サイトで、よく変数を値を入れる箱なんて表現してますけど、まさにそれです。なんでも気にせず入れられちゃいます。当然、それで生じたエラーは自己責任ですが…。


さて、話がそれましたが、調べてみたところ、色々な言語がある中、GO 言語というものが目に入りました。GO の名にある通り、Google が開発している言語のようです。
実行速度は、C や Java に比べると遅いですが、Python (スクリプト言語の一つで、Perl とほぼ同等の実行速度) よりは格段に速いようです。
この頃 流行りの 言語たち(他)でベンチマーク (Dart, Go, Julia, Nim, Python, Rust 他) - Blank File

しかも、環境をインストールすると、他の OS 環境でも実行できるクロスコンパイラもついてくるという、モノグサな私にはぴったりの言語でした。

実際に触ってみると、確かに、C や Java に比べると格段に書きやすし、覚えやすいです。言語としては Python に近いのかな。スライスとかあるし、正規表現の扱いが一度コンパイルすることになってるし…。
はじめてのGo―シンプルな言語仕様,型システム,並行処理:特集|gihyo.jp … 技術評論社


あと、例のクロスコンパイラも、LinuxMint で Hello World プログラムを Windows 用にコンパイルしてみると、Windows 上で何のライブラリも必要なく動きました。

当面は、この言語を勉強していこうと思います。
コメントを投稿