Go言語の特徴とできることを、現役プログラマに聞いてみた
19/02/14 11:29:51 19/04/08 10:51:00
Go言語の正式名称はgolangで、googleが開発したプログラミング言語です。アメリカから始まり今では日本でも案件が増えている注目言語の一つとなっています。
そこでこのページでは、Go言語の特徴やできることについて解説します。
目次
Go言語が使われているシステム
Go言語の特徴やできることを知るためには、実際のどのようなシステムで使われているのかを確認すると良いです。
まずOSについては、主要OSすべてに対応しています。OS依存はないと考えて間違いありません。
システム的にはWebサーバーやアプリケーションに使われています。サーバーサイドでもフロントエンドでも使用されており、有名なシステムとしてはYouTubeはGo言語で作られています。
今現在Go言語で作られているシステムの多くは、もしもGoがなければJava、Ruby、PHPなどで作られていたはずです。つまり競合する言語としてはその辺りです。他にはAndroidやiOSのアプリケーションでもGo言語で開発されているものが多数存在します。
Ivy big number calculator
完全にGo言語のみで作られているアプリケーションよりはGoと他の言語をミックスして作られているアプリケーションの方が多いのですが、Goのみで作られているアプリケーションとしては高度な電卓機能を持つ計算機などがあります。
この電卓は「Ivy big number calculator」という名前のアプリケーションなので、興味のある方はインストールして試してみると良いでしょう。使ってみるだけだとイメージが湧かないからあまり意味がないと思われるかもしれませんが、ソースコードも公開されています。
すでにある程度Go言語の学習が進んでいる方であれば、アプリケーションとソースコードを照らし合わせることでコードと機能の対応ができるかと思います。
https://itunes.apple.com/jp/app/ivy-big-number-calculator/id1012116478?mt=8
PaaS(Platform as a Service)でもGoが活躍している
Go言語が今もっとも活躍しているのはPaaSです。
PaaSはシステムの基盤をレンタルするサービスで、この土台がGo言語で作られているということです。今は自社で物理的なサーバーを持つよりもクラウド等でレンタルし、管理コストや物理的なスペースを削減している企業が多いです。
Go言語のメリット
Go言語はシンプルで扱いやすいという点にメリットがあります。他の言語と比べてソースコードをパッと見で理解しやすく、結果的に仕様書もわかりやすくなっています。Go言語は2009年に誕生した新しい言語なのでまだ初めてのプログラミング言語として選択している人が少ないのですが、言語のシンプルさから考えると最初のプログラミング言語に選ぶメリットも大きいです。
Googleでは新人エンジニアをGo言語のプロジェクトに配属させることが多いという噂が出ており、それくらい扱いやすい言語だということです。もちろんGoogleの社員なので新人の頃から優秀なエンジニアなのですが、同じGoogle社員同士で比べればベテランエンジニアの方がスキルが高い場合が多いでしょう。
相対的にスキルが低いエンジニアがプロジェクトを主導しているということは、それだけGo言語は扱いやすい言語だということです。
コードに制限が多い(デメリット?)
またこれは見方によってはデメリットなのですが、Go言語はコードに制限が多いです。コードのそもそもの種類が少なく、同じロジックを実現するのに様々な方法が用意されているわけでもありません。
プログラミング言語によっては記述を省略したり同じロジックでもいろいろな書き方があったりするのですが、Go言語は決められた通り正しく記述しないと動かない仕様になっています。
Go言語はわざとこのような言語仕様になっており、もともとGoogleが新人教育用に作った言語と言われることもあるくらいです。真偽は別にして、それくらいプログラミング経験の浅い人が学習するメリットのある言語です。
コードのルールが多い分、他の人が見てもわかりやすい綺麗なコードを書く習慣が身に付きます。
コンパイルが効率的
Go言語の一番のメリットは上で説明した通りシンプルだということです。しかしそれだけではなく、直接機械語にコンパイルできるというメリットもあります。たとえばJavaなどではいったん中間言語にしてから仮想マシンで機械語にコンパイルしますが、これだと多少時間が掛かってなおかつメモリも圧迫します。
Go言語は仮想マシンなしで直接コンパイルできるので短時間でメモリもあまり使わずにコンパイルできるのです。パソコン用のアプリケーションならまだしもスマートフォン用のアプリケーションだとメモリを圧迫するだけでなくバッテリーの消耗にもつながるため、Go言語はメモリやバッテリー容量が少ない機器にも向いています。
並行処理ができる
Go言語ではプログラマが並行処理を意識しなくても言語レベルで勝手に並行処理してくれます。
平均年収が高い
プログラミング言語ごとに案件が出ていますが、2018年にGo言語は全言語中平均年収が第一位になりました。これはビズリーチが公表したデータで、なおかつ日本国内でのランキングです。
アメリカ企業も含めるとGoogleが平均年収を引き上げているようなイメージがあるかもしれませんが、日本国内に限定しているので日本での需要も非常に大きいことがわかります。JavaやPHPに比べるとまだまだGo言語の求人数自体は少ないのですが、優良な案件が多いことがわかります。
JavaやPHPは求人数自体は多いのですが、SIerの下請け案件なども多く、必ずしも質の高い案件というわけではありません。その点Go言語なら案件を外さないので、仕事探しにも便利と言えるでしょう。
日本でのGo言語エンジニアの需要は大きいですが、アメリカ企業ではGoogleが開発しただけあってさらに大きな市場があります。そのため、将来的に日本以外の国も視野に入れている方におすすめできる言語です。
会社員にしてもフリーランスにしても国を選ばないのがエンジニアのメリットの一つですが、Go言語は世界で通用する言語です。
Go言語反対派の声
Go言語は上記の通りシンプルかつ複数のメリットがある言語ですが、Go言語の特徴ゆえあまり良く思っていないエンジニアがいるのも事実です。その理由としては、シンプルさを追求するあまり必要な機能まで削っているからです。
他にも、コードのルールが多すぎてコンパイルエラーになりやすいという声もあります。たとえば、使用していない変数があるとGo言語ではコンパイルエラーになります。気付かないうちに使っていない変数が紛れ込むこともあり、それを指摘してくれることでたしかに冗長なコードは減ります。
しかし、コンパイルエラーになってコンパイルできないのはやり過ぎではないかという意見があります。importについても同様で、無駄なものが含まれているとエラーが出ます。指摘してくれることはありがたいのですが、個人的にもワーニング程度で良いのではないかとは思います。
まとめ
以上、Go言語の特徴やできることについて解説してきました。
賛否両論ありますが、一定数の需要があり、プログラミング経験があまりない方が勉強するのに良い言語です。ベテランの方にとっても平均年収が高いというメリットがあります。
Goだけに特化するのはあまりおすすめできませんが、他の言語と組み合わせて学習するのであれば技術や仕事の幅が広がって良いかと思います。
案件量が豊富なアルマサーチ
最後に、アルマサーチのご紹介!
アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。
アルマサーチが選ばれる理由
- 豊富な案件量。週3〜4日の案件や在宅リモート案件も。
- 優秀なコンサルタント陣。
- 案件に参画後もしっかりサポート。
豊富な案件量
フリーランス向けに特化し、業界屈指の案件量を誇ります!週3〜4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。
優秀なコンサルタント陣
技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。
案件に参画後もしっかりサポート
常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。
▼Go言語関連の記事
1, 【Go言語の求人・案件情報】特徴やメリット、採用している会社やエンジニア開発単価まで
2, 【Go言語入門】Go言語を初めて学ぶ人がチェックしたい学習サイト5選
3, (この記事)Go言語の特徴とできることを、現役プログラマに聞いてみた
4, Go言語のフレームワークをそれぞれ比較してみました
5, 未経験者におすすめのGo言語の書籍5選
6, Go言語でjsonを使う時に気をつけておきたい4つのこと
7, Go言語の開発環境をWindowsで構築する方法まとめ
8, なぜPythonからGo言語にスキルチェンジする人が多いのか?
9, Go言語の実行速度は速いのか?他の言語と比べてみました
10, Go言語は難しい?スキルチェンジしたエンジニアに聞いてみた
人気記事