![見出し画像](https://assets.st-note.com/production/uploads/images/129018584/rectangle_large_type_2_30e915832874546be51037dbb1a72d65.jpeg?width=1200)
Go言語について
こんにちは! 本村です。
今回は「Go言語」と呼ばれるプログラミング言語のお話しをしたいと思います!
Webアプリ開発やブロックチェーン技術の開発が可能なプログラミング言語についてです。
Chapter1:Go言語とは何か
Go言語とは、Google社によって開発されたプログラミング言語で、機能性が高い上に構文がシンプルでプログラミングが行いやすいとされています。
Go言語の主な用途は以下の要素になります。
Webアプリ開発
データ処理
ブロックチェーン技術の開発
要するに、先端技術の開発に強いということです。
加えて、強みを上げると数多くあるプログラミング言語の中でも実行速度が凄まじいという点です。
そのため、上述した要素である「Webアプリ開発」や「ブロックチェーン技術の開発」といった高い速度性能が要求される開発分野にも適用できるということになります。
これらの実行速度が早い理由の一つに”ガベージコレクション”という機能が備わっていることが上げられます。
ガベージコレクションとは、効率的にメモリを管理できる機能のことで、不要になったメモリを自動的にリリースします。
つまり、Go言語の大まかな特徴としては、プログラミング言語の中でも自主的に動いてくれる言語だということです。
ガベージコレクションという機能が備わっていることから、実行速度が早いGo言語は、さらに便利な機能が搭載されています。
複数の処理を並行しながらプログラミングが行える”ゴルーチン”という仕組みです。スマートフォンの各アプリに備わっているバックグラウンド機能のようなものです。
そのゴルーチンという仕組みがあるおかげで、複数の処理すなわちマルチタスクが行えるということです。
ここからは、重複することになるかもしれないですが、Go言語できることを紹介したいと思います。
Webアプリの開発
分散システムの開発
コマンドラインツールの開発
データの処理・解析
ミドルウェアの開発
一つ目の”Webアプリの開発”は、フリマアプリの「メルカリ」やビジネス系SNSである「Wantedly」の開発に用いられており、二つ目の”分散システムの開発”では、元来Go言語はブロックチェーン技術の開発等を得意としていることもあり、分散システム開発はお家芸だということです。分散システムとは、複数のコンピュータで分散処理をしながら大規模なタスクを実行する仕組みのことです。そして、ここに上述した機能であるゴルーチンの特性が活かされ、軽量・高速な並行処理が行えることになります。
まとめると、元々Go言語に備わっている強み(ブロックチェーン技術の開発を得意としている)と付随している様々な機能(ガベージコレクションやゴルーチン等)がある為、高いコストパフォーマンスが求められる分散システムにも対応することが可能であるということです。
三つ目の”コマンドラインツールの開発”は、二つ目と同様にGo言語の得意領域であり、標準ライブラリが豊富なため、実装が容易にできます。
続いて四つ目の”データの処理・解析”については、このチャプター冒頭でも記載した通り、Go言語のもう一つの特徴として、データの処理や解析に強い部分が上げられたりします。
最後に五つ目の”ミドルウェアの開発”については、Go言語自体が開発に使用されることがあるということです。ミドルウェアとは、コンピュータOSとアプリケーションの繋ぎ役を行うソフトウェアのことです。Go言語はデータベースやネットワークを扱うための標準ライブラリを豊富に持つため、ミドルウェアの開発にも役立つとされています。
以上の5点がGo言語で可能な処理や開発でした。
次章では”Go言語の歴史”についてお話しできればと思います。
Chapter2:Go言語の歴史
チャプター1の内容を踏まえた上で、Go言語について1フレーズで表現すると、「高速処理が可能なプログラミング言語」と表せます。
因みに動画配信サービスの”YouTube”にもGo言語が採用されています。
そのようなGo言語には、どういった歴史があるのか?背景を追っていきたいと思います。
現代社会において、プログラマーの世界では技術の進歩に比例してWebアプリや各サービスが高度になっており、同時に内側のコードも複雑化しています。結果的にそれがシステム開発を行う上で効率が落ちてしまうことになり、現状を打破する為に効率良くコーディングが行えるプログラミング言語として、Go言語が開発されたという背景があります。
実際、Go言語は”C言語”と呼ばれるプログラミング言語の構文を意識し、より簡略化してコードが書ける用に設計されています。
それには、ケネス・レイン・トンプソンというC言語を設計した世界的なエンジニアがGo言語の開発に携わっていたからです。
歴史がまだまだ浅いGo言語ですが、特性や将来性を考えると、人気度でJavaやPythonに劣る一方で、注目度は高いと言うことができます。
今回は今後、歴史が作られていくプログラミング言語のGo言語についてお話ししてきました。
それでは、また!