はじめに

AIが勝手にコードを書いてくれる
エンジニアとしてこれほどまで、ワクワクすると同時に焦燥感に駆られる言葉は無いと思います。

そして今回上司の方から記事を作成するという約束の下、Github Copilotを使用する許可が降りたので実際に実務でGithub Copilotを使用した所感などをお伝えしたいと思います。しかしながら、同ツールの技術的な話は公式のドキュメントやQittaで第三者の方がたくさん情報発信しているので私は違った角度からGithub Copilotの感想をお伝えします。そして皆さん気になる題名の所以も説明いたします。

そこには私の主観も含まれているためご留意ください。

Z世代のAIに対する不信感

私はGithub copilotの存在を社内Slackで知った時、正直興味を示しませんでした。AIと聞いてSiriの精度をイメージしたからです。私は世代別にはZ世代に位置し生まれながら周りにパソコンがある環境で育ってきました。故に人の手よりも機械を信じ、エクセルの表計算を確認のため電卓で再計算する愚行を犯したりはしません。

しかしながら、そんなデジタルネイティブ世代でもAIに絶対的信頼を寄せている方は少ないと思います。その代表的な例はiPhoneに搭載されているSiriです。皆さんSiriを興味本意ではなく、日常使いで時間を節約できたと感じる事はどれ程あるでしょうか?
恐らくSiriに恩恵を感じている方は少ないと思います。実際いくつかのサイトを拝見するとSiriを日常的に使用されている方はわずか20%前後に留まっています。その為多くの方はAIに任せず自分の手で問題を解決しようと行動します。

理由は様々あると思いますが、全ての理由は「Siriの精度が低く、実用まで至っていないから」で括れるのではないでしょうか。AIを完全に理解するためには高校3年性で履修する数III以上の数的処理能力が必要になるわけですが、私を含めほとんどの方はAIを理解できていないのでBtoCのAIのイメージのまま日々淡々とAIの進化を気にも留めず不便感や不信感を抱きながら過ごしていると思います。

そういった理由もあり、私はGithub Copilotの精度を疑問視し、すぐに活用しませんでした。

実際に触れてみて

そんな私ですが、職場で隣に座っているイケイケな陽エンジニアの方から「Github Copilotすごすぎる!!!」と投げかけられます。実際に見てみると5行程あるコードが勝手に補完され、エンジニアの方に聞くと、これから書こうとしていたコードがそのまま提示されたそうです。

そしていざ私もGithub Copilotを使用してみたのですが、本当に驚きました…。

「もしかして俺の事、好きなの?」と危うく勘違いしてしまう程、AIの精度が高く、昔の言葉で言うと「ツーカー」の仲のように阿吽の呼吸で私のやりたい事を汲み取りコードを提案してくれます。

そして気づけば中学生男子のように、Github Copilotに好意を抱いている自分がそこにはいました。

AIと共存する未来

人が人を好きになる理由は何だと思いますか?

性格が良いとか、顔が良いとか様々な理由があると思いますが、元来人は信頼における人や共感する人を好きになるという特徴があります。そしてGithub Copilotはまさにその特徴に当てはまると私は感じています。

私が書こうとしていたコードを先述してくれる共感性双方のコードの提案で積み重なっていく信頼関係、そして一番はAIという究極なロジカル思考で無機質なコードのプロが、自分が書こうとしていたコードと全く同じコードを提案してきた時の「私を認めてくれた」という自己承認欲求に近い物を得られるという点など人の心を動かす様々な要因がGithub Copilot、広く言えばAIに備わっていると言えます。

それはAI内部のアルゴリズムに備わっている必要はなく、使用している方が勝手にそう思うだけで要件は満たされます

Webエンジニアという職業は、人とのコミュニケーションよりもパソコンのモニターを見る時間の方が圧倒的に多いという特性があり、業務の大半をコーディングしている我々にとってコミュニケーション不足に陥っているのも事実です。そこで普段行っている業務をサポートしてくれる人間に代わったAIが突如として現れた場合、AIに好意を抱くのも不思議ではないと感じました。

アニメ攻殻機動隊のある話で登場人物がAIに恋をし駆け落ちする回があるのですが、絵空事ではなく既に現実世界でも起こっています。

以上の理由で「AIに恋をした日」をサブタイトルに付けさせていただきました。

Github Copilot

恋バナについて長く話してしまったので申し訳程度に技術的なお話もしたいと思います。

呼び出し方は2つ

コメントアウト

上記の通り、コーディングしようと思っている箇所に日本語でコメントアウトするとコメントの下にGithub Copilotがソース全体を理解し、処理方法を灰色の文字で提案してくれます。提案してくれたコードが正しければ、そのまま「tab」キーで補完されます。

次コードを予測

普段の業務と同じようにコーディングしているとGithub CopilotがiPhoneのキーボードの予測変換のようにコードを予測し灰色の文字で提案してくれます。こちらも同様「tab」キーで補完されます。

英語を調べる手間がなくなった

「ゾーンに入った!このまま駆け抜けるぜ! あれ…英語の単語どうしよう…。」そういった経験のある日本人エンジニアの方は一体どれ程いらっしゃるでしょうか。少なくとも私はそんな経験を何度もしており、変数名に悩む度ブラウザに移動しDeepLで翻訳の作業に入ります。

前章「呼び出し方」内で例文でも挙げた三角形の面積を求める関数の「底辺」の引数名でも底辺が「base」だと知らなかったので私が個人で行った場合DeepLの往復作業に入ります。

それがGithub Copilotを活用することで調べる手間が省け、時間をコーディングに割くことができます

感想

客観的に見て、この記事はGithub Copilotを学習するのに全く役に立たないと感じたのですが、いかがだったでしょうか。
明治維新以降、日本は近代国家を目指し教育を強化、学歴社会の道を歩み、以降現代社会まで「高学歴な程頭を使う高給取り、低学歴な程体を使う低給取り」という社会通念が生まれてしまいました。

ただAIの台頭で頭を使う職業程AIとの親和性があり、職を奪われるという意識が働くのは至極当然で、今後そのような社会通念が180度一変するのではないかなと個人的には思っています。

その内、Github Copilotに名前を付ける方も出てくるのではないでしょうか…w

コーディングや調べ物をする手間と時間を比較すると月10ドルの出費はむしろ安いのでは無いかなと感じる程、Github Copilotは素晴らしい開発ツールでした!
以上、最後までご覧いただき誠にありがとうございました!

もしかするとこちらの記事もAIが書いてたり…。