こんにちは。
エンジニアのくるくるです。
世の中には色々なプログラミング言語があります。
サーバーサイドの言語でパッと思いつくだけでも、Python, Ruby, Java, PHP, Scalaなどがあります。
Web系の企業で働いている人は、RubyやPHPあたりを、機械学習を使ったり大規模なデータを扱うような企業で働いている人はPythonを、お堅め(?)のプロジェクトに関わっている人はJavaなどを使うことが多いかと思います。
そんな中、最近俄かに注目を集めている言語があります。
それがGo言語(Golang)です。
エンジニアとして働いている人であれば一度は聞いたことがある名前だと思います。
ちなみにGo言語で作られている有名なプロダクトとしては、Dockerがあります。
また、C向けのものでいうと、マッチングアプリのPairsのバックエンドもGoで作られています。
Go言語はGoogleが開発した言語で、現在はオープンソースとなっています。
Go言語が登場した直後は懐疑的な目も向けられていましたが、結果的にはかなりの成功を納めている言語といえます。
多くの企業でGo言語は採用され、これは今後も続いていくと思われます。
Python, Ruby, PHPなどを使っているエンジニアの方には、特に今後Go言語を学ぶことをおすすめしたいです。
その理由は3つあります。
まず1つ目は、Goの実行速度にあります。
Python, Ruby, PHPなどのLL(Lightweight Language)は、コンパイルが必要がなく気軽に触って実行できますが、その分実行速度は遅いです。
多くの人が使うプロダクトで、実行速度、処理速度のスピードが重視されるような場面では、Python, Ruby, PHPなどは使いにくいです。
一方、Goの実行速度、処理速度はそれらの言語に比べると圧倒的に早いです。
最も処理速度の速い言語はC言語ですが、C言語は学習コストも高く、なかなか身に付けることができません。
Go言語はC言語ほどは速くないですが、それに近い速さを誇ります。
それでいて、学習コストは高くなく、Rubyなどを書ける人であれば比較的すんなりと書けるようになります。
学習のコストパフォーマンスがいいともいえます。
Goを学ぶべき2つ目の理由が、静的型付け言語だからです。
RubyやPythonやPHPは動的型付け言語です。
一方Goは、変数の型をあらかじめ宣言する必要があり、異なる型のものを入れるとコンパイル時にエラーが発生します。
普段LLを書いている人からすると、この点は最初はかなり煩わしく感じる部分かもしれません。
しかし、静的型付けの方が、バグの混入が少なく、将来的なメンテのコストを考えると静的型付け言語の方が好まれます。
また、エンジニアとして成長していくためには、できるだけ異なるタイプの言語を勉強した方が良いですが、PHP、Python、Rubyなどをやっている人にとってGoはタイプの異なる言語といえます。
そういう意味でも、エンジニアの2つ目の言語としてGoを学ぶ意義はかなり大きいです。
エンジニアが2つ目の言語としてGoを学ぶべき3つ目の理由は、その将来性です。
先ほども言いましたが、Goは近年多くの企業で使われるようになってきました。
そして、この傾向は今後も続いていくことが予想されます。
今のうちにGo言語の勉強を開始しておけば、数年後きっと「あの時Go言語を始めておいて本当によかったな」と感じると思います。
伸びている言語をやっておけば、転職に困ることもないですし、需要があればある分だけ平均給与も上がります。
今であればGo言語を書ける人は比較的少なく、その分チャンスが大きいです。
プログラミング未経験でいきなりGo言語をやろうと思うとちょっと厳しいかと思いますが、エンジニアとしてすでに働いていて日頃からコードを書いている人であれば、Go言語を学ぶのはそこまで大変ではありません。
それでいて将来性があり、かつエンジニアとしてのスキルアップにも繋がります。
私はGo言語の回し者ではありませんが、本当にこのタイミングでGo言語の勉強を開始することを強くおすすめしたいです!
数年後間違いなく大きなリターンが返ってくるかと思います!
最近ではGo言語の本もちらほら出てきていて、そのうちの数冊はかなり分かりやすいです。
今までフレームワークばかり使っていた人にとっても、Go言語を使ってできる限りフレームワークを使わずにプログラミングを行うというのはかなり勉強になります。
(もちろんライブラリは使います。)
もしGo言語の勉強をしてみようと思った人は、最近書いたこちらの記事も参考にしてみてください。
一人でも多くの人がGo言語の勉強を始めてくれることを願っています!