1. キマグレエフエム
  2. 70 GitHub Copilotと未来のプ..
2021-07-07 25:51

70 GitHub Copilotと未来のプログラミング

HADES、PS5、GitHub Copilotについて話しました。

HADES
https://store-jp.nintendo.com/list/software/70010000033130.html

GitHub Copilot
https://copilot.github.com/


chapters:

HADESを買った

PS5をそろそろ手に入れたい

タイトルコール

Github Copilot

エンディング


---

キマグレエフエム(kimagure.fm)は r_takaishijune29 が気まぐれに収録した雑談を配信するPodcastです。

感想・お便りは #キマグレエフエム でつぶやくか https://twitter.com/kimagurefm/status/1307216152330792960 までお願いします。

Podcast: https://anchor.fm/kimagurefm

Youtube: https://www.youtube.com/channel/UClaKVYzgPi7EkYAEbPOpQbA

BGMとジングルは フリーBGM・音楽素材MusMus http://musmus.main.jp/ のものを使用しています

00:00
最近新しいゲームを購入してプレイしていまして、 今日はその話から始めてみたいと思います。
お、どういうゲームですか?
これは「Hades」っていうゲームで、
「Hades」
はい。「Hades」自体はもともと最近出たゲームではなくて、
おそらく1年、2年前くらいからあって、
パソコンでプレイしてる人たちがいるのは知ってはいて、
で、誰かが遊んでるところをYouTubeで動画見たこととかはあったんですけど、
最近あのNintendo Switch版がダウンロードで購入できるようになったんで、
そのタイミングで、Nintendo Switch版であれば僕もカジュアルに遊びやすいので、
ちょっともともと興味あったし、ちょっとやってみるかと思って買ってね、
3日くらいやってるところなんですけど、
なかなか毎評判通りなかなか面白くてですね、
最近毎日ちょっとずつやってるっていう感じですね。
「Hades」っていうのはどういうゲームなんですか?
これは、
ローグライク、いわゆるローグライクに分類されるやつで、
何回も死にながらマップが自動生成されて、
その中で、ジャンルとしてはアクションゲームですかね。
アクションだった。
ダッシュする動作と近接武器攻撃みたいな動作と、
少し遠距離武器みたいな動作があって、
敵が次々襲い掛かってくるんで、
それをなぎ倒して、どんどんマップを奥へ奥へと進んでいくタイプのゲームですね。
世界観としては、「Hades」ってこれは主人公の父親が名王、Hadesで、
で、この主人公はHadesの息子なんですけども、
このHadesが管理する、何、冥界?
前、ちょっとキマフレームで地獄の話したけど、
地獄みたいなところがあって、ここを出たいと、外に。
出るためには、険しいいろんなマップを抜けて抜けて、
外の世界みたいなところがあるのかな、そこを目指していくんだけど、
死んじゃうと、またHadesのいる血の池みたいなところから再スタートになると。
なるほど。
奥に向かうというよりかは、外に出るっていうのが目的のゲームになってるわけですね。
おついち:そうですね。
世界観は、そういうHadesとか出てくるぐらいなんで、
他にもゼウスとかアテナとかポセイドンみたいな神々、
神話の神々みたいな人たちが、道中で主人公にいろんな力を授けてくれて、
スキルっていうんですかね。
プレイするたびにマップとか、取得できるスキルとかも、
結構ランダムで決まるんで、
今回は、このゼウスのスキルと、
このアテナのスキルを中心に組み立てようみたいな感じでやって、
03:04
いい組み合わせになると攻略がしやすくなったりするんで、
ちょっとずつ死につつ、ステータス強化しつつ、
プレイヤースキルもやっていくと、ちょっとずつ上手くなってくるんで、
ちょっとずつ、ちょっとずつ、
前回よりまたちょっと先に進めた、でもまた死んだっていうのをやって、
僕ももう10周ぐらいしたかなと、死にまくるんだけど、
ちょっとずつ奥に進めるんで、
ちょっとそれが楽しいって感じですね。
おついち:その10周というのは、最後までいってっていうのを10周というか、
死んで戻って最後に行くっていうのを10周、10回死んだっていうようなことですかね?
おついち:そうです。結構、やっぱローグライクだけあって、
最初はもう全然進めないから、
まっすぐ死んじゃう。
チュートリアルぐらいの感じでどんどん死ぬんで、最初の3周ぐらいは。
やっていくとだんだん、ここの中ボスまでは倒せたなとか、
この最初のマップみたいなところ、ボスまでは倒せたけど、
2つ目のマップの最初で死んだかみたいなことを何回もやっててですね。
僕がこれまでにやったことある中だと、
デッドセルズっていう、これもパソコンのゲームなのを、
ニンテンドースイッチ版が出てたんで、
デッドセルズってやつは2年前ぐらいにやってたんですけどね、
それに結構近い感じなんで、
デッドセルズとか好きな人であれば、
多分同じく楽しめるタイプのゲームだと思いますね。
結構アクション要素も強いんですかね?爽快感があるような感じなんですか?
そうですね。
攻撃連打したら連続攻撃でツバツバみたいな感じなので、
アクションは強いんで、ロールライクではあるものの、
例えばスーファミとかで言うとアクションRPGというか、
ライフ増やしながら、武器とかを強化しながら、
ちょっとずつ進んでいくけど、基本操作はずっと変わんない感じですね。
面白そう。
なので、今日も1回死ぬまでやるかみたいな感じで、
20分とかでやれたりするんで、
平日の夜、寝る前ちょっとだけやるかぐらいの感じで、
やるにも気軽でいいかなという感じですね。
ちょっと興味が出てきました。
なかなか面白くやってますね。
あとはゲームの話題で言うと、僕は9月に出る『ロストジャッジメント』って、
『キムタクガゴトク』ってあれの『ジャッジアイズ』っていうのが、
2019年かな?
あって、それの読編が今年の9月に出るんですけど、
それが出る時までに、
PS5が手に入ったらいいなと思いつつ、
じゃあそのゲームはPS5でもプレイできる?
PS4とかでもできるってことですかね?
PS4でもできるはずですね。
ただせっかくなんで、
PS5に合わせて作ってきてるゲームだったと思うんで、
PS5で快適にプレイできたらいいなと思っているんですが、
06:02
PS5入手が難しそうと思って、
真面目に一回も調べてないので、
今はどのくらい手に入りやすいのかとか、
どうやって手に入るのかあんまり分かってないので、
そろそろ一回真面目に調べてみようかなと思っているところです。
僕もそろそろPS5を買って、来年に出るであろうゲームに備えたいなと思っているところですね。
高橋さんまだPS5は持ってないんですね。
持ってないですね。
「Horizon Zero Dawn」っていうゲームの製作編が来年出るんですけど、
それをやりたくてですね、
そろそろハードウェアを手に入れておくかという感じですね。
結構見てると、ヨドバシのゴールドポイントカード、
クレカートを予約できるからヨドバシで買ったみたいな人周りにも何人かいるんで、
そうすると僕は宇都宮まで行くことになるのかな、ヨドバシの。
それがちょっと奥なの。
都内にいるときだったらもうちょっとカジュアルにヨドバシだったら行けたんでしょうけど、
ドライブがてらちょっと宇都宮まで車で行って帰ってくるわ。
それはそれで楽しいと思うんで、
そろそろ真面目に調べようと思ってます。
はい。
はい、じゃあ冒頭はゲームの話から始めてみました。
「キマグレFM」は高石とじゅんにじゅきゅうが気まぐれに収録した雑談を配信するポッドキャストです。
ご意見・ご感想は#キマグレFMかお便りフォームからぜひぜひお寄せください。
こんにちは、じゅんにじゅきゅうです。
こんにちは、高石です。
はい、いいですね。ゲームの話から始まりました。
後半はまたちょっと話題を変えて、
最近気になったことを一つ二つ持ってきたので、
その話をさせてください。
はい。
「キマグレFM」
はい、今日一つ目の話題はね、これは僕らの界隈ではそこそこ話題になったと思うんですが、
「GitHubコパイロット」
「GitHubコパイロット」知ってますよ。
AIですよね、AI。
やたら甘えのめりできたことで逆にこの人知らなかったのかなっていう雰囲気が出て面白かったですね。
醤油系とあんまり調べてなかったですね。
見かけてはいたぐらいですかね。
そうですね、話題になっているのは見ました。
コパイロットって、福相授使みたいなことですかね。
パイロットの隣に座る人みたいなことだと思うんですけど。
そうですね、コパイロットですね。
ウェブサイトが公開されていて、タグラインとしても「YourAIPairProgrammer」ってことなので、
あなたの隣に座ってくれるAIのペアプログラミング相手という感じだと思うんですけども、
09:03
今これはVSCodeの拡張機能として提供されているのかな。
なるほどね。
結構僕はこういうのもともとコンセプトとかはあったし、
類似のものもいくつか見たことはあったので、
GitHubが出してきたんだなあぐらいの、あまりすごい大きな期待を持たずにサイトを見たり、
これに言及している人の発言とかを見たんですけど、
僕がネュートラルに想像していたよりも実用性が高いやつが出てきたなというところで、
ちょっと衝撃を受けましたね。
このGitHubのcopilot.github.comを入れると、
いくつかこういうことができますよという例が載っているわけですけど、
例えばコメントをコードに変換できると、
この例だとコメントにJsonのスキーマでオブジェクトの配列の例みたいなのを書いておくと、
コメントの下の行にですね、Function=CollaboratorsMapで引数にJsonを渡してあげて、
Map=String=Setみたいな、
変えり値を書いてあげると、
AIがコードを生成してくれると。
これなんか不思議で、他にもいくつかあって、
そのすぐ下に表を紹介されているのはAutofill for Repeated Codeといって、
繰り返し書くようなコード。
これってなんだろうな、
結構エディターの空気選択とか複数行、
編集とかを使って一気にベバッと書けますみたいな、
そういうお役立ちエディター活用チップスみたいなのは結構見たことあるんですけど、
構造体を定義するような時とかの、
これこれはこれで、これこれはこれでみたいな、
決まったフォーマット通りに何かを記述するみたいなのを、
えいっと交換してくれる謎のテクノロジーがあったり、
あとよくある構造みたいなのも面白いなと思っていて、
例えばなんだろうな、下の方にある、この背景が暗くなるところにある、
なんかフェッチツイーツ?
おー。
で、すげーわかるなと思ったのは、
僕一番よく書く英語はRubyなんで、
このフェッチツイーツRubyの補完を見て、
おうって思ったんですけど、
確かにそのRubyでTwitter API使って何かやるときって、
自分がコード書くときでも以前の自分が書いたコードの、
12:01
あの、何だっけ認証情報ってどうやって設定すんだっけみたいなのを探してきて、
ああはいはい、このこれこれって言って、
もうこの4行はセットみたいな感じで、
実際コピーして持ってきてそれを使ったりするんで、
確かに。
それが確かにGitHub.com上にはそういった自分ですら繰り返し、
いろんなリポジトリ使ってるコード編があるから、
それをGitHubが学習データとして使って、
まあこういう時はこうだよねみたいなのを、
まあもうパターンから持ってこれるっていうのは、
確かにそれはできそうだし、できてるじゃんってなったので、
これは結構ね自分にはなんか刺さるというか、
もう自続きだなって自分がやってることを、
なんかワンクリック、ツークリックでできるようにしてくれてるっていうところで、
おうって思いましたね。
この関数名、メソッド名からうまくロジックを生成するっていうのは、
なんとなくこれまで自分が書いたコードとかだけじゃなくって、
例えば、とあるサイトから検索してきたコードをコピペするみたいなことを、
AIAがやってくれてるようにも思いますね。
そうですよね。
で、これ見て思ったのは、現状だと、
あ、そうだな、先に不思議だなって思ってるのは、
コードコメント、いわゆるコメントアウトって言われるような、
各言語ごとの、ここからここまではソースコードではなくて、
人間が読むようのコメントですって表現する記法があると思うんですけど、
コメントの内容からコード生成するって、
何が学習データになってんだろうなってちょっと思ったんですよね。
だから、こういうコメントがついてたら、
こういう関数定義がよくあるっていうセットがないと、
なかなかこれできないんじゃないかなって思ったんで、
みんなそんなに関数に説明って書いてんのかな?
なんだったら書かなくても、書かない方がいいじゃんっていう考えもあると思うので、
うん、確かに確かに。
こんなに、一方でね、関数名と中身のセットは、
まあ、関数は名前つけるから、みんな、
それは学習データ大量にあるなって分かったんですけどね、
このコメントがコードに変換されるのは、
まあ、なんかどういう仕組みになってんだろうって、
そうですね。
気になったところですね。
これ確かにちょっと不思議な感じがしますね。
そうそう。
で、あと思ったのは、これ、こうなってくると、
関数名の名付けとかが、ますます重要度増すような、
確かに。
思いました。
だから適当な、なんか、関数名が的外れだと、
そこから生成されるコードが、
ああ、違う違う、そうじゃないってなるから、
確かに。
まあ、そういう意味では、
あ、こういう関数名にしたら、
あの、AIはこう誤解しちゃうかっていうのは、
それはつまり、人間相手でも同じことは起きうるじゃないですか。
あ、この関数名にしたら、こういう、まあ、帰り地であったりとか、
こういうデータが書いてくることを想像しちゃうのかってなったら、
まあ、その場でなんか、素早いフィードバックにもなるから、
そのコードを書いてる人に対して、
そこからだんだん、こう、関数名と、こう、中身が、
15:03
どんどんどんどん、こう、揃って、
それが学習データにもなるし、
そこからコードが自動生成されるようになると、
なんか、あるところに、人類として収束してくんじゃないかっていう気持ちも
なるほどね。
しますよね。
これ見てると。
名前をつけるっていう、
その、プログラミングにおけるポイントが
すごく重要になる、
重要度がより増すっていう、いうことにもなりますね。
そうですね。
で、それがなんか、各々の、各個人の思うスタイルとか、
各、その、現場における規約よりも、
もっと大きなところで、こう、動機するようになるじゃないですか。
ウィットハブ上にある、そういうこと。
AIがわかる。
ウィットハブのコーパイロットがわかるような名前を
つけるっていうところに就職していくわけですよね。
そうすると、なんか、人類全体で、
地球上のプログラマーの間で、
この処理だったら、この名前っていうのが、
なんか、一個に収束してくイメージがあって、
これは、まあ、いい、なんだろうな、
複数人で何かを開発するっていう意味では、
良いメリットがすごく大きいように思うし、
なんか、正解が一個みたいになってくるのは、
なんか、それはそれでちょっとデメリットもあるのかな、
なんとなく、ぼんやりと不安になったりもしました。
なるほどね。
なんか、こう、ざっと見てた感じだと、
まあ、まだ現在では、
全て、このコーパイロットに任せるということは、もちろんできなくって、
まあ、やっぱり、この既存の、例えば、
IDEのようなソフトウェアが持っている保管機能の、
強化されたものという印象は受けます。
そうですね、確かに。
はい、あの、後でこれ、概要欄に貼っておくんですけれども、
あの、GitHubコパイロットを試した方が、
その、こういう感じで保管してくれますよっていうのを動画にしてね、
キャプチャして、Twitterに投稿してくれてるんですけれども、
このマッツンさんという方が投稿してくれてるんですけれども、
この中にですね、あの、GOのコード、
コーランのコードを書いていて、
で、まあ、その、ファイルをオープンするような処理を書いているわけなんですけれども、
まあ、その、
GOなのでファイルをオープンした後のエラー処理みたいなのを、
いつも見る、保管してくれたり、
あとはファイルをオープンした後、その関数がリターンする前に、
ちゃんとクローズしないといけないわけなんですけれども、
それを確実に行う、デファーっていうね、あの、
ものがあって、まあ、それをこう、サジェストしてくれたりしていて、
なんか、そこ単体で見るとやっぱりその、
僕が使っているGoLandっていうね、
GoLandのIDが持っている保管機能の、
え、その、延長線上にあるようにも見えたと。
確かにな、まあ、デファーでこう、
オープンしたものをクローズするみたいなのって、
もうなんていうか、
なんていうか、個人の考えとか入る余地あんまないですもんね。
もうあの、勝手にもう、手が動いて、
ああ、デファー、デファーみたいな感じで書くようなものなんで、
なんかそういう、その、
本当にコアのロジックじゃないような部分をAIが補助することで、
18:05
効率よくコードを書けるっていう意味では、
すごくいい機能なように思えます。
面白いですね。
もちろんこれまでもね、AIとか機械学習関係なく、
普通にその、保管するような、
あの、IDを使って保管するようなことをしてきているので、
なんかね、あんまり抵抗があるかと言われるとない、
ような気がしますね。
なるほどな、そっか、
IDをもりもり活用してたから、
人からすると、
スッとさらに一方、それを押し進めた場所に移行するっていうのは、
なんかやりやすいかもしれないですね。
なるほどな、面白いですね。
あとはなんかこうなってくると、
やっぱりその、今実現したい処理全体を、
どう関数であるとか、モジュールであるとか、
どの単位で分解していくかっていう、
なんかそこの比重が相対的に高くなって、
中身はもう、
だからなんか設計は人間がやって、
実装はAIがやるみたいな、
そういう積み分けになってくるのかもしれないですね。
AIが理解できる流度に、
自分自身のビジネスロジックを分割していくようなスキルが必要になってくる。
そしたらAIに発注したら、できてくるっていう、
なんかその大規模開発みたいな、
使用書を書くみたいな、だからそういう風になってくるのは、
確かにな。
なんか面白いな。
関数名と例を書くみたいな、まじなんか使用書を書くみたいな感じですよね。
すごいね。
特に型のある言語だと、
関数の定義のところに引数の数と型と、
戻り値がどういう型かって書くから、
これってなんていうか、
インターフェース設計書というか、
まさにもうそうじゃないですか。
で、それをやったら中身はポンっていって、
まあなんか、
ソースコード書いてても、
特に自分が慣れた言語とか慣れた処理であれば、
もう、
ああ、大体こういう関数とこういうクラスとモジュールとかとかやってやったら、
まあ、あとは頭の中で浮かんでるコードを、
ただ今この3行は、ただ、
なんか塗り絵だったなみたいなタイミングあるじゃないですか。
ありますね。
特にもう何も考えてなくて、
いつものあれを、
ダダダダダダダって書いてたり、
とりあえず、まあここまではとりあえず書くみたいな。
それがなんか省力化すると思えば、
まあやってることはそんな変わんない気もするし、
なんか大きくプログラミングのあり方が変わってく気もするし、
なんかどっちも思いますね。
うん、すごい面白い。
ちょっと気になるというか、
逆に大変になるような気がしているのは、
まあその1行だけ保管するんじゃなくて、
関数の中身全てが保管されるような場合だと、
どういうそのコードが保管されたのかっていうのは、
ちゃんと読まないといけない。
ああ、確かに。
ので、
なんか自分が書いているコードというか、
AIが挿入したコード自分がレビューするみたいな。
確かにね。
感じになるような気がしますね。
確かにな。
自分が書いたコードならね、
自分が書いたときにもうこういうコード書いてるってのわかってるんで。
確かに。
21:00
でもちょっと難しくなりますよね。
特にセキュリティのチェックとかって、
なんか自分が書いてる途中で、
こうなんて言うんですかね、
全部オンメモリの状態でコーディングに集中してる時って、
あ、こういうケースもあるから、
この場合は大丈夫だなとか考えてるんですけど、
他の人がある程度バンって書いたコードを見て、
それがセキュリティ上問題ないかとか、
HKSにも対応してるか満たしてるかって、
見て理解するのってすごい難しいというか、
見落としがちになるなとは思っていて。
確かに。
だから、
まあなんかHKSとか、
そういう話はテストで抑えればいいかもしれないですけど、
結構セキュリティ的に問題ないかどうかって、
自動テストで担保するのも難しいなと思ってるんで、
だからこれは別にこのGitHub Co-Pilotに限った話では全然ないですけど、
学習データが間違ってたら、
そこから出てくるものも間違うから、
なんかよくある危険なコードみたいなのが、
大量にGitHub上にあったら、
よくある危険なコードが挿入されるのかなとか、
なんか面白いですね、
考えてくることがたくさんあって。
確かに確かに。
あとはまあこのCo-Pilotを使って作られたコードの方が、
人が書いたコードよりも増えてしまった場合、
なんかこう、
モデルとなるデータっていうのが、
AIによって作られたデータになると思うんですけど、
それって大丈夫なのかなみたいなのはちょっと気になりますね。
だから面白いですよね。
まあこの機能そのものも面白いけど、
これが5年間動いた後の世界ってどうなるのかとか考えると、
そう単純な話ではなくて、
めっちゃ面白いし、
あるいはエンジニア採用かかってる人間として、
これCo-Pilotだなみたいなものばっかり出てくるようになったら、
何をどう見ていいか、
なんかちょっと難しい感じもするな、面白い。
コードテストとかね、やってるときに、
なんかCo-Pilotを使って書いたコードは、
どう評価するのかみたいなのは。
確かに。
悩ましいですよね。
確かに。
人間同士がPair Proをやってるときに、
AIがピピッとか出してきて、
人間何するのか、面白いな。
いろんな新しい課題みたいなのも生まれてきそうで、
ちょっと今後が楽しみですね。
ちょっとビジュアルスタジオコードなんで、
僕使ってないのでまだ試せない。
まあこれだけ試せばいいんですけど、
なので汎用的なものとして出てきて、
IDとかからも使えるようになると嬉しいなと思います。
APIが公開されたらいいんで。
僕もこれなんだ、
この今、希望者だけに開放されてると思うんですけど、
僕もサインアップはしたものの、
まだ来てないんで、
ちょっと試したらまた思うことがあるかもしれないんですが、
でも方向性としては、
人類の方向性としてはこっちだろうなと思うので、
24:01
別に抗ったりするつもりもないし、
これが良くないとか、やめさせようとかなくて、
どっちかというと自分の仕事にどう活用できるかっていう観点ですけど、
非常に興味があるんで、
楽しみだなと思います。
まだコパイロットにできないところに、
我々の食いぶちというのはあるだろうし、
逆にそれぞれ亡くなった世界には行ってみたいですよね。
なんとなく我々がやりたいことをコードとして出力してくれているけど、
どういうロジックなのかを挿入されたコードを見てもわからないみたいな、
機械学習だとそういう話は聞くじゃないですか。
ああいう世界が来るとちょっとどうなるのかっていうのは面白そうですね。
ね、それこそAIがバックドア仕掛けて人間が気付けなくて、
というSFでよくありそうな、誰でも思いつきそうな怖い話もありますけど、
いやでも楽しみ、
なんかそう論としてすごく今後は楽しみだなと感じています。
そう思います。
じゃあこのところは結構思ったより話せるかねって言ったんですけど、
考えてみると面白かったので。
じゃあ今回はこんぐらいにしときましょうかね。
とても面白かったです。
今回は最近買ったゲームの話と、
プレステ5欲しいなって本気で思い始めてきた話と、
GitHubコパイロットプログラミングのこれからみたいな話をお送りしました。
ご意見ご感想は#きまぐれFMか、
お便りフォームから是非是非よろしくお願いします。
今回もありがとうございました。
エピソード70でした。
バイバイ。
バイバイ。さようなら。
ご視聴ありがとうございました。
25:51

Comments

Scroll