TL;DR
- golangと仲良くなろうと頑張ってみました、というお話
- 複数回に分けてやっていく予定です
- 今回は「golangって何が得意な子なの?」について調べてみました
ことの始まり
※ 注意:実際の事実とは異なる点がございます
※ 注意:この物語はだいたいフィクションです
~ ある日の会社にて ~
上司「ワイ君さ、ちょっといいかな」
ワイ「?はい、ええですけど」
上司「今のシステムとは別の構成で、全く新しいAPI作るんだったらなんの言語がいい?」
ワイ「えー、今ならgolangじゃないっすかね?」
ワイ(正直よお知らんけど)
上司「おかのした」
~ 後日 ~
上司「ワイ君さ、ちょっといいかな」
ワイ(またかいな)
上司「この前のあれ、どんな感じになるか具体的にちょっとまとめてよ」
ワイ「?」
上司「あれだよ、APIをgolangで作るってやつ」
上司「ワイ君が言ってたgolangでやることにしたから、モック作って」
ワイ「え」
上司「あっ、あとさ、メンバーに導入教育もしなくちゃいけないからそこらへんもいい感じによろしく」
ワイ()
Gopherちゃん、はじめまして
ワイ(golangって、なんとなーく流行ってるってことしか知らんなぁ)
ワイ(適当に答えてしまったけど、まっ、なんとかなるやろ)
ワイ(あ、そもそもgolangってAPIに向いとるんか確認してへんかったわ)
ワイ(まずはgolangってそもそも何者かっちゅーところから調べてみるか)
ワイ「とりあえず、公式サイトをぐぐってみるか」
ワイ「えらいシンプルなサイトやな」
ワイ「Hello Worldもサイト内で試せるんか!」
ワイ「すごいな!(Worldだけなんか翻訳されてるけど)」
ワイ「イメージキャラクターもかわいいやん」
ワイ「はえー、チュートリアルも一通りできるんか」
ワイ「至れり尽くせりやな」
ワイ「でも今回は一旦おいとこ」
ワイ「まずは、この子が何が得意なんかってことを知らんとな」
Goって何が得意な子?
ワイ「何が得意な子なんかちゃんと知っとかんと」
ワイ「go 言語仕様、っと(カタカタ)」
ワイ「これか」
つ https://golang.org/ref/spec
ワイ「なんやえらい長いな...」
ワイ「ちょっとずつやってこ...」
ワイ「えーっと、まずはIntroductionやな」
Go is a general-purpose language designed with systems programming in mind. It is strongly typed and garbage-collected and has explicit support for concurrent programming. Programs are constructed from packages, whose properties allow efficient management of dependencies.
ワイ「英語力に不安が残るけど、ここで言いたいんは」
ワイ「goはシステムプログラミングを考えて設計された汎用的な言語 っちゅーことと」
ワイ「ごっつ強い型付け と ガベージコレクション と 並列処理 を機能としてサポートしとる」
ワイ「んで、プログラムは パッケージ という単位で作られとって」
ワイ「そのおかげで、依存関係を楽に管理できる」
ワイ「ということやな」
ワイ「システムプログラミングっちゅーのが肝っぽいんやな」
ワイ「システムプログラミングってなんやろ」
システムプログラミングってなんだろう
ワイ「システムプログラミングをぐぐってみよ」
ワイ「なんやはっきりしたのないなー」
ワイ「低レイヤーを指してるっぽいちゅーことしかわからんな」
ワイ「おっ、Goならわかるシステムプログラミング言うのがあるやん」
ワイ「この本的には OSの提供する機能を使ったプログラミング をシステムプログラミングっちゅーことにしとるらしいな」
ワイ「OSの提供する機能 = 低レイヤーっちゅーことなんやな」
ワイ「まっ、ここらへんもgoの勉強進めていけばわかるようになるんやろうな、きっと」
ワイ「他は ごっつ強い型付け と ガベージコレクション と 並列処理 やったな」
ワイ「次は ごっつ強い型付け について調べてみよか」
(次回へと続く)