アメリカを震撼させたMiraiに使われた「GO言語(golang)」って何?
IoTを使ったボットネットで大規模なDDos攻撃が行われて1年ほどがたちました。この大規模なDDos攻撃で注目を浴びたマルウェア「Mirai」ですが、このマルウェアはC言語とGO言語でかかれています。GOはあまり聞き慣れませんが、現在世界ではトップクラスの人気を誇り、日本でも年収が高い言語として注目されています。
今回はこの「GO」という言語について紹介していきたいと思います。
注目のプログラミング言語GO
GO言語は2009年にGoogleが作ったプログラミング言語です。Miraiというマルウェアのサーバー側で使われたものとして記憶に新しい方も多いのではないでしょうか。並行処理が得意であり軽いため多数の情報を同時に処理する部分にGOを使うといった使い方が可能です。どちらかというとシステム開発に向いた言語です。
また、大規模開発を想定した言語だからか、型の縛りはきついです。この点は、プログラムに個性が出ることが少ないというデメリットがありますが、長期間保守をすることが他の言語よりも楽というメリットも同時にあります。またライブラリーがたくさんあることもGO言語の特徴といえるでしょう。ライブラリー開発が盛んであることはコミュニティーとして活発であるあらわれではないでしょうか?
実は世界で一番人気な言語
「TIOBE Index」では毎年「最も急速に人気が上昇している」プログラミング言語の賞があります。このGO言語は2016年と2009年の二回この賞を受賞しています。そもそもGO言語はあまり歴史がありません。しかし、大きなプロジェクトにもGO言語は使われており、採用例として、YoutubeやSound cloudの一部にGO言語が扱われています。
求人もフロントよりもインフラ側の求人が多いようです。原因として、Django、RailsやCakePHPのような他のフレームワークの採用例が多くあることが原因として考えられるでしょう。
GO言語の特徴
「クロスコンパイル可能」「軽量」「例外処理がない」などが存在します。他ではよくある「例外処理」や「継承」が存在しない為不便だという批判の声もあります。
しかし、継承の代わりにGO言語には「埋め込み」という機能が存在します。例外処理がないといっても「try-catch-finally」の構文をつかった例外処理が存在しないだけであり、他の例外処理の方法が存在します。それは、複数の値を戻り値として変えることができるという機能です。そのため、上記の方法で例外処理を行い必要がないのです。
クロスコンパイルが可能であるメリットはライブラリーなどの他の手順を踏まずとも、複数のOS対応のアプリケーションを一つの言語で作ることが可能であることです。この機能は開発を高速化させるためにも必須といえるでしょう。
いかがでしたか?C言語やJavaもいいですがたまにはGO言語のような新しいプログラミング言語に手を出してみるのもいいのかもしれません。みなさんもぜひ、GO言語を触ってみてはいかがでしょうか。