0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Go言語とは?Googleが生み出したシンプル&高速な言語を自分なりにまとめてみた

Posted at

golang.png

はじめに

とある企業様のGoのインターンに行きたい!ということでGo初学者ではありますが自分なりにまとめてみました!
※認識違いがあればコメントなど頂けると嬉しいです!

Goを使用している代表的なサービスを知ることでGoを身近に感じることができる!

以下はGo言語を使用しているサービスの一部です

1.AWA
2.YouTube
3.メルカリ
4.ぐるなび
5.Gunosy
などなど

使ったことのあるサービスばかり!
というわけで

Go言語とは

Go言語(Golang)は、2009年(リリースは2012年)にGoogle社が開発したプログラミング言語です。その特徴はシンプルさ、スピード、そして並行処理の強力さにあります

ちなみにプログラミング言語の人気指標https://www.tiobe.com/tiobe-index/ (Tiobe-Index)でトップ10にも選ばれるほど人気な言語のひとつです!

この記事では、Go言語の概要や歴史的背景、設計者たちが目指した「Goらしさ」そしてメリット、デメリットなどについて解説します!
また、Go言語がどのようにして注目を集めているのかもご紹介します!

Go言語の設計者たち

Go言語は以下の3人の開発者によって設計されました:
・Robert Griesemer
・Rob Pike
・Ken Thompson

特にKen Thompson氏UNIXC言語の生みの親とも言える存在!
Go言語は、こうした長年の経験を持つエンジニアたちが「現代に適したプログラミング言語」を目指して作り上げたものです

Go言語の誕生と目的(歴史的背景)

Go言語は、Google内で「プログラミングの環境を改善する」ことを目的として開発されたプログラミング言語です

近年、技術の進歩に伴ってWebアプリやサービスが高度化するのに比例して「内部のコードの複雑化」、「システム開発の生産効率の低下」が問題となり、その解決手段としてもっと手軽に効率よくコーディングができる言語としてシンプルさを追求したGo言語が開発されました

そう! シンプルさを追求=理解しやすい=初学者におすすめの言語!というメリットもあります!

Go言語のメリット

メリット一覧

1. シンプルな文法
Go言語は設計思想として「シンプルさ」を重視しているため、クラスや継承といった複雑な構文を排除し、直感的で読みやすいコードを書くことができる

2.効率的なメモリ管理
ガベージコレクション(GC)1が標準で搭載されており、不要になったメモリを自動的に解放してくれる

3.高速なコンパイルと実行
Goは静的型付け言語2でありながら、非常に高速なコンパイル速度を持つ

4.並行処理が簡単に実装可能
Go独自の軽量スレッドである「goroutine(ゴルーチン)3」と「channel(チャネル)4」を使用して、並行処理を簡単に実現できる

5.DockerやKubernetesとの親和性
Goは、クラウドネイティブなツールであるDockerやKubernetesの実装にも使用されています。これらの技術と組み合わせた開発に最適

6.学習コストが低い
シンプルな構文のため、初心者に扱いやすい言語

Go言語のデメリット

デメリット一覧

1.柔軟性の低さ
Goはシンプルさを重視しているため、柔軟な機能が制限

2.ライブラリやフレームワークが他言語に劣る
PythonやJavaScriptと比べると、ライブラリやフレームワークが劣る

3.動的な型付けがない
Goは静的型付けの言語であるため、動的型付けの利便性を活用したい場合には不向き

ChatGPT o1-previewが考えるGoの将来性

GPTに投げてみました!

質問内容:o1-previewが考えるGo言語の将来性について教えて

o1-previewの回答

回答 Go言語(Golang)は、そのシンプルさ、高いパフォーマンス、そして優れた並行処理のサポートにより、近年着実に人気を高めています。クラウドサービス、マイクロサービスアーキテクチャ、システムプログラミングなど、多くの分野で広く利用されています。

将来性について言えば、Go言語は引き続き有望であると考えられます。主要な企業による採用が増えており、コミュニティも活発に成長しています。豊富な標準ライブラリと強力なツールチェーンにより、開発者は効率的に高品質なソフトウェアを構築できます。

技術のトレンドがスケーラビリティや効率性を重視する中、Go言語の特徴は業界のニーズと合致しています。そのため、今後もクラウドインフラストラクチャ、ネットワークプログラミング、バックエンド開発などの分野で重要な役割を果たし続けるでしょう。

Goは業界のニーズに合ってるらしい!!

最後に

記事を見ていただきありがとうございました!
まったく0の知識からなのでまだまだ曖昧ですが、一つずつ消化できるように頑張ります!
認識違いがあればコメントいただくと嬉しいです!
Goを使えるエンジニアになりたい!

つぶやき
二郎系ラーメンというものにはまってしまった。。。
店名 : 歴史を刻め おすすめです!

  1. ガベージコレクション(GC): 使わなくなったメモリを自動で片付けてくれるお掃除ロボットのような機能

  2. 静的型付け言語 : 変数の型がコンパイル時に決定されるプログラミング言語のこと。変数やデータの型が明確に指定されるため、型の安全性が高く、プログラムのミスを防ぐ助けになる。

  3. goroutine(ゴルーチン): 同時に動かすことのできる軽いスレッドのようなもの

  4. channel(チャネル): ゴルーチン同士がデータをやり取りするための道具

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?