Slide 1

Slide 1 text

生成AI時代にこそ効く ― 変わらないことの価値 ― @mom0tomo 株式会社リブセンス / Women Who Go Tokyoスタッフ Women Who Go Tokyo 10th Anniversary

Slide 2

Slide 2 text

INTRO はじめまして mom0tomo DXチームのリーダー&インフラエンジニアを兼務 Women Who Go Tokyoのコミュニティ運営者になって約8年 最近よく触る技術はTerraform / AWS / Datadog / GitHub Actions / Fastly / n8n … →近年はGo言語メインで書いている 1 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary

Slide 3

Slide 3 text

10年間での変化にはどんなものがあったか? INTRO Webの10年は速い 大きく変わってきたもの • フロントエンドのフレームワーク • 機械学習のライブラリ • ビルドツール、バンドラー • クラウドサービスのAPI… Webは変化が多くて、刺激的! 2 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary

Slide 4

Slide 4 text

10年間での変化にはどんなものがあったか? INTRO Webの10年は速い 何度も入れ替わってきたもの • フロントエンドのフレームワーク • 機械学習のライブラリ • ビルドツール、バンドラー • クラウドサービスのAPI… あまり変わらなかったGo 書き味は10年前とほぼ同じまま Goは変化がなくて、つまらない? 3 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary

Slide 5

Slide 5 text

Goに入ってはGo Wayに従う Goは敢えて「退屈」であることを選んだ 4 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary ソフトウェア工学で古くから繰り返し語られてきた格言 「コードは書くよりも、読まれる時間のほうが長い」

Slide 6

Slide 6 text

Goに入ってはGo Wayに従う なぜGoは変化が少ないのか? 言語仕様が小さい Goは設計の最初から機能を絞ることを選んできた。シンプルな型システム・エラーは値として扱うなど 5 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary 豊富な公式ツールチェーンがある フォーマット・ビルド・テスト(+現在は依存性管理)などを標準提供。3rd Partyの争いが起きない 互換性を重視している 機能追加には慎重で後方互換性が優先される。genericsも長年議論されてから追加された

Slide 7

Slide 7 text

Goに入ってはGo Wayに従う 「Go Way」が課す制約 柔軟な記法や複雑な機能が少ない 自由度を捨てた代わりに、書き方がぶれない。久しぶりに開いたコードや他人の書いたコードで も迷わない gofmt/golint/govet/godocにより、書式の議論が発生しない インデントもスペースも公式ツールに任せて終わり。チーム内のレビューでは本質的なところに 集中できる 6 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary

Slide 8

Slide 8 text

AI時代に活きる「変わらなさ」 AIの書くコードも、人間のコードもあまり変わらない func DoublePositive(n int) (int, error) { if n <= 0 { return 0, fmt.Errorf("expected positive int, got %d", n) } return n * 2, nil } 「正の数を2倍する」処理 ↑AIに一発生成させたコード Goは誰が書いてもだいたい同じ形になる 7 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary

Slide 9

Slide 9 text

AI時代に活きる「変わらなさ」 Goのネガティブな面も薄れた 「ネガティブ」とされてきたもの ● 誰が書いても同じコードで退屈 ● 配列周りに便利なメソッドがない ● 記述が冗長 確かに写経のときなど、大変と思う場面もあった → AI 時代の今 退屈なくらい定型的なコードの方が AIの解釈ミス・出力ブレがない よく使われる記述・冗長な記述は AIが書いてくれる スラスラ書けること以上に 誰でも読めることの方が大事 8 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary

Slide 10

Slide 10 text

AI時代に活きる「変わらなさ」 「冗長」がAI時代のメリットに転じた 代表的とされる冗長なコード: エラーハンドリング result, err := doSomething() if err != nil { return fmt.Errorf("failed to do something: %w", err) } 10年前から聞かれてきた声 「いちいち書くのが面倒...」 確かに繰り返し書いてきた AI 時代の今 AIがサクッと書く 人間はロジックを確認するだけ 9 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary

Slide 11

Slide 11 text

「誰が書いても変わらない」ことの価値 AIが書く → 人間がレビュー → 取り込んで運用 AIが書いてくれる時代、人間はレビューする時間が増える。書き方が定まっている言語は レビューが楽! 10 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary AI時代に活きる「変わらなさ」

Slide 12

Slide 12 text

AI時代に活きる「変わらなさ」 AI時代にGoが選ばれる理由は他にもある 配布しやすさ&動かしやすさ 1つの実行ファイルにビルドして実行環境に依存せず動かせる。 AIがCI/CDやデプロイを行うときに環境依存のトラブルが起きにくい! 高速なコンパイル&ビルド時エラー検知 他のコンパイル言語と比べてもGoのコンパイルは高速。 AIが生成したコードの検証と修正が高速に行われて効率が良い! 学習元コードの質の高さ&後方互換性 GitHubにあるコードはgofmtのおかげで均一で高品質。 しかも後方互換性のおかげでLLMの学習データが古くても動作する! Goの特性はAI時代の新しいツールにもフィットしている! 11 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary

Slide 13

Slide 13 text

AI時代に活きる「変わらなさ」 Goの「変わらなさ」にコミュニティの学びも支えられている Women Who Go Tokyoでの活動の変遷 標準ライブラリを読む会 Goのコードそのものを読む 何かを作ってみる サンプルコード・教材を使ったもくもく会 読書会 技術書をみんなで輪読する → 現在の主要な活動はオンラインでの読書会 破壊的な仕様変更がほぼない → 古い名著も、話題の新しい資料も読める スタイルが安定している → 基本的な仕様だけ知っていれば良い。内容にフォーカスできる 応用にも広げられる → TinyGoを使って、組み込み開発やWASMの世界にも入門できる 12 / 13 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary

Slide 14

Slide 14 text

おわりに 次の10年もGoと 01 AI時代で開発チームの人数は減っていくかも AIに任せられる作業が増え、人間の仕事は設計やレビュー、オーケストレーション中心になる 02 全く新しい言語が出てくるかも? 詳しい言語を一つ持っていることは、新しい言語を学ぶ上での武器になる 03 Goで作られたツールのメンテナンスは10年以上残りそう Go製のツールは多数あり、一度ビルドしたバイナリは将来も動く。インフラの「土台」として長期的に安定稼働する 10年後もGoで作る・学ぶ・仕事をする! 生成AI時代にこそ効くGo / Women Who Go Tokyo 10th Anniversary 13 / 13

Slide 15

Slide 15 text

価値である 変わらないことは Women Who Go Tokyoの次の10年もお楽しみに! ありがとうございました Women Who Go Tokyo 10th Anniversary