フロントエンド うえむーのブログサイト | NU-Blog(エヌ・ユーブログ)

こんにちは、うえむーです。
2月にgolangで簡単なタイピングゲームを作ったのでそれをブログに書きたいと思います。今回はgolangの特徴について書きたいと思います。

Golangというのはなんだろう?

「Golang」は、Googleによって開発されたプログラミング言語の1つであり、Googleが2009年にリリースした比較的新しい言語になります。

そもそもフロントエンドエンジニアの僕がgolangをやりたかったのかというと。。。

・[Gopher]というマスコットキャラクターがいい!
・2019年 学びたいプログラミング言語、トップ3入り!
・progateのプログラミング学習にその言語が入っていて面白そうだったから

という理由です。いたって単純です。

Golangはどういったところで使うのか?

・Webサーバー・アプリケーション

一番利用シーンが多いと思われるのはWebサーバー・アプリケーションだそうです。
実際に処理が実行されるのは裏側であり、表側からは見えません。ユーザーは処理結果だけを見るんですよ、というのがクラウドコンピューティングの概念だそうです。実際にyoutubeのサイトもgolangを使っているそうです。

この分野ではPHP・java・rubyが使われているんですが、後ほど記載するgoの特徴が評価され、先ほど記述しましたが2019年の学びたい言語ランキングだと、golangは3位で、Javascript・Physonの次に人気があり。開発者のgoogleはもちろん、日本企業でもgolangでの新規開発が進んでいるみたいです。

Golangの特徴

さて、続いてGolangのプログラミング言語の特徴についてお話します。
まだ浅いのでまだまだわからないところがあるのですが、調べたところ、特徴は大きく分けて7つあるみたいです。

1. 実行速度が速い
2. 並列処理に強い
3. 拡張性(スケーラビリティ)が高い
4. 環境に依存しない
5. 消費リソースが少ない
6. シンプルな言語構造
7. 誰が書いたコードでも読みやすい

今までこの分野ではPHPで書いてきましたが、Golangでタイピングゲームを作ってPHPと比較して共感したことは「2 並列処理に強い」「4 環境に依存しない」「6 シンプルな言語構造」かなと思ってます。自分が共感した3つの特徴についてお話したいと思います。

2 並列処理に強い

大量のデータ処理には並列処理が必要となりますが、Go言語は並列処理を得意としており、チャネルなどの機能を使うことでCPUへの負荷などを気にせずに処理を進められます。Go言語は、PHPが苦手とする並列処理やエラーチェックが得意なことなどから、PHPに代わる言語として使用されるケースも増えているそうです。うちが勤めているところはsymfonyであり、バージョンも古く処理が非常に遅いので、この特徴を知って関心しました。

4 環境に依存しない

"ソースコードを元に、開発しているOSとは異なる環境向けに実行可能なコードを生成すること" が可能であるため、OSやソフトウェアが異なるシステム上でも実行できるそうです。環境に依存するdockerはmacだとすぐにインストールできるものの、windowsの場合はインストールする際に何かかまさないといけないらしく、インストールするのに時間がかかったと聞いていますので。golangでは環境に依存しないの良いと思ってます。

6 シンプルな言語構造

複雑な機能は削られており至ってシンプルな言語構造になっています。言語をシンプルにすることで、高速コンパイルの実現やミスの軽減に役立っています。
Progateのプログラミング学習は平均時間を8時間のところ、6時間で終わらせまして、ミスるとどこのコードがミスっているのがわかりづらいためGo言語はどこをミスっているのか見つかりやすいのですごく助かっています。

golangの特徴は他にも4つありますが、経験が浅く実感しておらず、まだまだ知らないことがたくさんあるので、引き続きGolangについて調べて、実践して行きたいと思います。今後、golangの新規事業も増えていくわけですので少しづつ触れて行かないといけないかなと思ってます。

次は、Golangでタイピングゲームを作ってつまづいたことをブログでまとめたいと思います。