これは、Go Advent Calendar 2024の21日目の記事です。
はじめに
こんにちは!私は普段Javaでバックエンド開発をしているエンジニアです。仕事でGoを使う機会は無いのですが、完全に趣味でGoを触り始め、気がつけば半年が経ちました(今年の5月中旬頃からスタート)。
Goを触り続けている理由は「直感的に好きだから!」と感じていたのですが、我ながら納得感が無かったため本記事ではこの「直感的な好き」を自分なりに言語化してみました!
本記事を通して同じようにGoを楽しむ仲間が増えれば嬉しく思います!!
本記事は私の個人的な感想であると同時に、他言語を下げる意図は一切ありません。炎上、ダメ、ゼッタイ。
対象読者
- Goに興味があるけどまだ触ったことがない方
- 趣味として新しいプログラミング言語に挑戦したいと考えている方
- Goを使い始めたけどモチベーションが続くか不安な方
1. 「Goは開発者が幸せになれる言語です(諸説あり)」
(繰り返しですが、これは個人的な感想です。炎上、ダメ、ゼッタイ)
私がGoを使い始めて最初に感動したのは、開発者体験の良さでした。
皆さんはこんな経験をしたことが無いでしょうか?
- ソースコードの書き方やベストプラクティスがチームやプロジェクトごとに異なり、統一性を保つのに苦労する
- 特定のリンターやフォーマッター(改行はするのかしないか、インデントはTABか半角スペースかなどといったコーティング)のルールを導入するか否かを巡って議論になる
- リンターやフォーマッターを導入しても、独自ルールを確認するため、結局目視によるチェックが発生する
これらの問題を解決する要素がGoにはあると思っています。
1-1. リンターとフォーマッターが言語本体に組み込まれている
Goではリンター(go vet
)とフォーマッター(go fmt
)がGo言語本体に組み込まれています。そのため、特別な設定なしでGo公式ルールの元、ソースコードが整形可能です。
1-2. Go自体がGoで書かれている
Go本体のソースコードがGoで書かれている点もポイントが高いです。Go本体の書き方を真似れば、Goらしい書き方が出来るという安心感があります。
1-3. 予約語が25個しかない
Goは「シンプルさ」を追求した言語思想です。それもあり、予約語の数はプログラミング言語の中で(恐らく)最小の25個です。脳みそが小さい私にとっては嬉しいポイントです。
また、Goが誕生した背景について少し触れると、その一つにはGoogle社が抱えていた開発速度の低下という課題を解決する目的がありました。その為、他にも開発者体験の良さを感じさせる特徴は数多くあります、是非探してみてください!
2. 「Goを通じて技術的に難しいことに挑戦したい」
そもそも私がGoを触り始めたきっかけは、「技術的に難しいことに挑戦したい」という思いからでした。その中で具体的に「マイクロサービスをやってみたい」と考えたのが始まりです。
Goは「シンプルで軽量」「並行処理が簡単に書ける」といった特性を持ち、マイクロサービスをはじめとした大規模なシステム開発に適している点が注目されています。
また、DockerやKubernetes、Terraformなどの主要なツールがGoで書かれていることを知り、クラウドネイティブ分野での新しいアップデートやツールの誕生にも期待がされています。こうしたOSS活動にも興味があり、今後挑戦してみたいと考えています。
きっかけはマイクロサービスへの興味からでしたが、今ではもう少しマクロな視点で、スケーラブルなシステム設計や効率的な開発プロセスなど、エンジニアとしての成長に繋がるスキルを磨けることが、モチベーションを保つ理由になっています。
3. 「Goコミュニティ暖けぇ..」
Goを始めたばかりの頃から、いくつかの勉強会に参加しました。そこで感じたのは、Goコミュニティの暖かさです。質問しやすい雰囲気や丁寧なサポート、そして何より「一緒に技術を楽しもう!」というエネルギーに溢れていました。Goは比較的新しい言語ということもあり、参加者は若くエネルギッシュな方が多い印象です。
また、特に印象的だったのは、同じ日に別々のGoの勉強会が開催されそうになったこと。これはGoコミュニティがそれだけ活発である証拠ですね!!
こういった方たちと一緒に技術を高め合っていけることは大きなモチベーションになっています。今後も勉強会に積極的に参加し、知識や経験をシェアしながら成長していきたいと思います。
勉強会はconnpassで「Go」と検索して良さげなものに参加してます。
まとめ
趣味から始めたGoですが、半年間続けてきて「直感的な好き」には確かに理由がありました。
- 開発者体験を追求したシンプルさによる「開発者の幸せ」の実感
- 技術的に難しいことに挑戦したい気持ちと、それを後押しするGoの特性
- Goコミュニティの暖かさと活発さ
半年という短い期間ですが、Goに触れる中で「好き」という感情が明確な形を持ち始めています。これからも趣味としてGoを楽しみつつ、技術を磨いていきたいと思います!
Goに興味のある方、一緒に楽しみましょう!!