こんにちは、博崎です。
こんにちは、三田です。
ゆるテクは、ゆるーく技術の話をするポッドキャストです。よろしくお願いします。
よろしくお願いします。
仕事でワンオンすると思うんですけど、その前に大体アイスブレイク的なものって挟まるじゃないですか。
そうですね。やりますよね。
このゆるテクは、あのアイスブレイク部分だけを取ったゆるゆるの。
楽に。
メイントピックを話さない、アイスブレイクで終わるだけのポッドキャストとして有名ですが。
そうなんですね。初めて聞いた。
今回もまさにそういうネタを持ってきました。
いいですね。じゃあちょっとアイスブレイクやっていきますか。
やっていきますか。大体そういう時って最初に最近どうですかみたいな話するじゃないですか。
そうですね。
最近そんな何かやりましたかみたいな話を持ってきたんですけど。
この間かな、なんかちょっとジェミニCLIでいくつかツールを作ってるんですよみたいな話をちょっとしたか。
本編ではしなかったか。まあいいや。
本編ではしてないかも。
作らせてるんですけど。
背景みたいなことから説明しなきゃいけないか。
自分は5をやったことが、書いたことがほとんどないんですけど。
今年は5を勉強するかと思って。
全部5で作らせました。
どのくらいかな。
これ微妙だけど、6個ぐらい作らせたんですけど。
さすがに6個もですね、1からリポジトリ5作ると大体見えてくるんですよね。クセみたいなのが。
大体こういうライブラリを使い、こういう構成でディレクトリ構成が切られ。
実行の方法はこういう感じにし、みたいなのが大体見えてくるんですけど。
多分自分が認識しているLLMの特性として、既存のプログラムのソースコードを学習していると思っているので。
良いか悪いかはさておき一番一般的っぽい書き方になっているはずではありそう。
それは何かあれですか、とはいえ0から5でこういうの書いてって命令するわけだから。
何かハクタケさん側で与えている事前情報とか何かこういう設計を守ってほしいみたいなところって結構細かく書いたんですか。
確かにそれ大事ですね。あんまり細かくは指定してなくて、とはいえ書いているのがですね。
ちょっと待ってくださいよ。5で書きます。なるべく標準のライブラリを使ってくださいって書いてます。
標準、はいはい。
5で言語組み込みのパッケージみたいなのがあるじゃないですか。ログとか。
あれで済むならなるべくあれで済ませてくださいとか。
これどういう位置づけなのかちゃんと分かってないですけど、Xみたいな感じの5ってライブラリがあると思ってて。
順標準みたいな扱いなのかなこれちょっと分かんないですけど。
何だっけそれ。
ちょっと待ってくださいよ。ゴーモッドを見るとゴーラングドットオルグスラXスラで始まる系のやつ。
それ何て言うんだっけ。
これ結構使われるんですよね。完全な標準ではないが標準っぽいものだと自分はただ認識していますけどね。
やべえ。出てこねえ。
大丈夫です。さっきも言いましたけど良いか悪いかはさておき。
こういう書き方が普通なんだろうなというのはそれで見えてくるんですよね。
なるほどですね。そして出てきたあれだ。
公式なんだっけ。公式のあれだ。拡張機能系がそのパッケージだった気がする。
なるほどね。ほとんどライブラリを使わずできるんですよね。
ちょっとでも癖が出てきてて。
例えば設定ファイルみたいなのが欲しくなったときって多分YAMLのライブラリが使われるんですけど
それ標準じゃないから。そこで自分はどうしようかなと思ってJSONの方を選びがちです。
JSONは言語標準で使えるから。
なるほど。
ちょっとめんどくさくなっちゃうけど。だからconfig.jsonがいっぱいあります。ツールのあれは。
結構構造が複雑になればなるほど。
そうそう辛くなってくる。
辛くなってくる。ちなみにこの辺ってGoのセットアップ自体とかも結構全部任せちゃったんですか。
Goのセットアップっていうと例えばどういうことになります。
要はそもそもの自分のPCに入れるっていうレベルでバージョンをどうしていくかっていうところは
例えばもう事前に自分で過去にやってたって話なのか、もう本当にオールインワンでやってもらっちゃったのかっていうと。
そこは自分で調べはしたんですけど、Goってあれですね。ローカルは自分はMeesってやつ使ってるんで。
それでGoのちょうど最近始めたんで1.26.0入ってるんですけど。
新しいMees。
一番新しいやつなんですけど、このツール群を作り始めて知ったんですけど、Goってあれなんですね。
GoModに書いたやつでインストールされるんですね。そのバージョンが。
そうなんですか。僕そこ詳しくなくてちゃんと入れてた。
そのディレクトリの中でちゃんとGoModに順次たバージョンが入るから、そうなんだ便利だねと思って。
いいですねいいですね。
そのバージョンでビルドされてますね。
なるほどですね。そうするとそこは自分である程度入れてて、サービスというかアプリの構成というか構築自体はジェミニーが頑張ってくれて。
どうすかね、ハクタケさん的に今回は人として結構頑張ったなみたいなポイントってありました?
全然なくて、他のGo以外の言語から来るとかなり愚直に書くなみたいなイメージなんですよ。
そうですね。
あんまりマジカルなことなくて。
ここはこういう感じかっていうのは割と聞きながらというか、他の方法はあるかって聞くとなんかすげえ更に複雑な書き方になったりとかして。
じゃあライブラリとか使わずやるとこれがオーソドックスなのかみたいなのは聞きながら分かっていった感じですかね。
そのぐらいです、人間がやったこと。
なるほどなるほど。
まさにそれってAI使った開発なんだろうなって今聞いてて思ってて、
せっかくこうやって2人で話してるからあえて聞いてみたいなって思うんですけど、
よくあるじゃないですか、なんだっけ知識の壁じゃなかった気がするけど、知ってる、わかる、できる、教えられるみたいなやつ。
はいはいはい。
で言うと多分今のやつで言うと、わかるぐらいまではAIのアウトプットからハクタケさんが吸収してるんじゃないかなって思ってて、
これってなんかできるの領域に人として持っていく必要ってありそうでした?
えーとですね、必要で言うと多分ないんですよ。
それで作れてるし、そのツール元気に動いてるし、もう1ヶ月以上ずっと使ってて特になんかバグとかもなく、
不満があればその機能追加も普通にまだできてるレベルではあるので、
その必要としてはないんですが、その言語を前提としたシステムのアーキテクチャを考えるとかもあるわけじゃないですか。
はい。
Goだと自分はまだちゃんと分かってないですけど、Goルーティンがあるんで、
あれを前提にしたアーキテクチャは絶対あるので、
うんうんうん。
分かってないと組めない設計というのは確実にあるなと思いますね。
なるほどなるほど。いやそうっすよね、結構そこがやっぱ、何でしょうね、新しい言語問わず言って書けるようになるというか、
その生成物を作れるようになるのはめちゃめちゃ画期的だとは思ってて、
その言語に対してどこまで僕らが理解度を持っておくといいんだろうなって結構難しいなって、
今の話を聞いてても思いましたよね。
どうやってそこまで行くかっていうのも、
ジェミリのコードアシストっていうのがあるんで、GitHub Appsであるんですけど、それでレビューもさせてるんですよね。
その技能を見ていると、職場で先輩とかがやってるレビューみたいなのを、
模倣みたいなことぐらいはできるのかなと思いますね。
じゃあそこのレビューをしっかり受け止めればって感じですかね。
それはいいかも。
へぇーってなりますね。
いいですね、いいですね。
これが令和の入門者の仕草なんだろうなと思って見てましたね。
そこにちゃんと適応しなきゃっすよね。
あんまり頑張ってやんなきゃってならなくてもできてはいて、
自分が欲しいツールを作ってるからだと思うんですけど、
こうやればいいんだろうなみたいな感じでやっていって、
いけるとこまではいけそうですね。
なるほどなぁ、そっかぁ。
あとあれだと思います。選んだ言語というか、今学ぼうとしている言語が語だからはデカそう。
一定メジャーになっているものというか。
学習、LLMが学習しているソースコードもきっと多いだろうし、
多いだろうし、あと多分LLMの出力するものが収束しやすそうな言語な気がしている。
語はだいたい口角みたいなのが結構同じになりやすいと言われているらしいので、
他の言語と比較してなんでしょうけどね。
特性的にも口角しかなくないぐらいのやつもありますもんね。
ありますあります。
頑張ってね、他の書き方をしようと思えば書き方あるし、
今ちょうどさっき1.26.0って言いましたけど、
それでちょっと変わった書き方とかもあるんで、フォーブンとか、
あの辺とか、そういうバージョンの違いとかも流石にあるんでしょうけど、
それでもだいぶ学習がしやすい言語ではあった気がします。
なるほどですね。
なんかいいですね、新しい時代の新しい言語のインプットを体現している感じですね。
最近の若者はこんなもんじゃないとは思うんですが、
一応それなりにできてはいると思うんです。
さっきGoだからできたみたいなこと言いましたけど、
JavaScriptどうでしょうねというのを、他の言語、JavaScriptに限らずですが。
どうなんですかね。
それで言うと、JavaScriptにくくっちゃってもいいと思う。
どっちをくくるべきかはいろいろあるかもですけど、
まさに僕、最近タイプスクリプトをちゃんとインプットしようと思って、
知ってる人は知ってるかもなんですけど、サバイバルタイプスクリプトみたいなサイトを使って、
割と愚直に内容を読んで、一旦自分の手で試しに書いてみるみたいなことをやってるんですよ。
ただ、学習計画とかは実は一回AIと壁打ちして、どういう進め方していくかはだいぶやりましたね。
計画からまず立てたんですね。
計画立てて、その学習サイトとかを使ってプロトタイピングじゃないですけど作った後に、
結構僕はそのコードに対してAIと2人でディスカッションするようなことをやってますね。
このアウトプットにしたいんだけど、他にどういう書き方があってとか、
その時どういう観点でこの選択してるのみたいなのを何度か、それこそ先輩と壁打ちしてるような感じで、
ちょっと拡張的に使ってるところがあるかもしれないです。
なるほどな。JavaScriptはね、多分世界一インプット量の多い、LLMのインプット量の多い言語でしょうからね。
いろんな答えが出てきそう。
最初びっくりしたのは、すべてがマッチしたわけじゃないんですけど、
そのサイトで書かれてる、こういうことをやってみましょう。
タイプスクリプトで書くんだったらこうです、みたいな模範回答もあるんですけど、
その模範回答の前に、こういうことをやりたいです。
実装して、ちょっと条件を与えて実装してくださいってAIにお願いした時に、
模範回答と全く同じものが出てきてびっくりしましたね。
そうなんだ。
やっぱこれが一番シンプルなんだって思って。
なるほどな。これ今言語の話してきましたけど、
もっとこう、さっき令和最新みたいな言い方しましたけど、
仕事を始めましたぐらいの人、新卒ぐらいの人が、
なんかこう、今よく言われるじゃないですか、
熟練者はAI使ってうまいこと言われるかもしれないけど、
まだ新卒とかの人は大変になるみたいな、
AIで代替されちゃうからみたいな。
そういう人たちも結局、うまいことAI使って学習の軌道に乗れれば、
全然いけたりするのかなみたいなのはどうなんでしょうね。
僕は結構そう思っていて、
よくAIで代替されるよねみたいな話は確かにあるんですけど、
あると思うんですけど、
実際僕らは代替されるためにというよりは、
逆にこういうエンジニアリング領域にいるんだったら、
どうAIを使いこなすかを設計しなきゃいけない側だと思っているので、
そこをどううまく使うかを新卒からまさに話して進めていくんじゃないですかね。
よりいろんなAIと接続して上手に使っている人が、
社内とか組織とかのルールの中にあって、
こういう使い方もあるんだなっていうところからインサイトを得て、
その人も独自のカスタマイズしていくとかがいいのではとは思っちゃいますけどね。
そうですね。全部来ている人が強いかもって今言おうと思ったけど、
そんなの今の高校生、大学生くらいの人にとっても当たり前なんですかね。
AIに全部聞くなんて。
じゃないですか。たぶん、
僕らの時代で言うと、
全部GoogleかYahooに聞いてみるみたいな話。
そうそう。これはどうするのから聞いちゃうんですよね。