GitHub Copilot
どうすか?

ちょこちょこ助けてもらってる

え、それ教えてくれるの!?というのがたまにある
割と使える

脳内ではすぐに分かってるけど語句をちゃんと打つのがダルい時、だいたいちゃんと予測する
関数名ちゃんと書くと、テストすべきコードを割とちゃんと予測する
ちょっと高度な数学の問題は解けなかった
2つの円を与えて、両者に外接する接線を得る関数を書かせようとした
型はあっていたので直線は返したのだが、実際に描画してみるとずれてた
AIならこれが補完できるだろう、という予測をしながらコードを書くと生産性が上がりそう
めっちゃ良い、もう手放したくない

ただし間違ってることもあるので、今後は「コードを書く能力」よりも「コードを読んで間違いに気づく能力」が重要になってくるのかもしれない。
難しいアルゴリズムは出来ないけど、その「できるできないライン」に関して「Numpyで3次元ベクトルを使って視線方向の並行投影をする」は「できる」側に入っててビックリ
プログラミングという日常的な行為のフローにいつ使えなくなるかもわからない物を置きたくないので使ってない

プログラミング言語の衰退を何度か経験したので「今使ってるプログラミング言語もいつ使えなくなるかわからんでしょ」という気持ちになった

まあプレーンなJavaScriptとかは長生きしそうだよね、Webの世界におけるC言語みたいな立ち位置だし。
プログラミング言語から作りましょう

難しそう
ソフトウェア開発はレイヤリングがかなりうまくいっている気がしていて、逆にいうと越境の学習コストが高い

使えなくなるリスクの大小によりそう

1年後に言語Aが衰退する確率より、1年後にCopilotが使えなくなる確率のほうが大きいと判断するなら、使わない方がいい?
お試し環境を別途作ってそっちを使えばいいかな
環境作るの面倒そうだけど
Copilotが使えなくなっても使って書いたプログラムは生きてるけど、プログラミング言語(は極端なのでまあ依存しているライブラリとか)が使えなくなるとプログラムは死ぬような…

node-gyazzが動かせなかったのを思い出した

資産の話ではなく、それに依存した習慣が付くと困るなあと考えてました

営利企業がやっていることなので突然使えなくなるということはありえない話ではない

の感覚では、Copilotはそこまで大きく依存している感じでもない
たまーに、「この補完ええやん」となる感じ
Scrapboxに例えるならリンクタイトルのサジェスト的なフィーリングだよね


ほー、これ聞いてちょっと「使ってみたいな」に傾いた

アルゴリズムの実装とかはほとんど頼ってない
繰り返し系の処理を補完してくれて、書く量減らせて嬉しいね、ぐらい
使えなくなったら自分自身がAIの変わりになるしかないんだよな

人間にできなさそうなことを補完してるんじゃなくて、人間ならできそうなことを1秒未満で返してくる
なので、無くなってもそんな怖くはない
TabNineもそうだけど、たまに型を無視して補完することがあるのは困る


の実装は「型は仕様」を割と徹底しているので、型が効くものは第一候補してほしい
簡単なものを作ると、思考を盗聴されているレベルでsuggestされる

書こうとしたレポートの文章を盗聴された

まあ実験結果の羅列とかはパターン決まってるしね
事例
正しい

型はimplicit anyになってるな
足場としては悪くないね、正解は node.type === "plain"
条件式は正しい、処理内容は流石に違う
正しい
僕が書いた前半にバグがあるw
ニュアンスはあってるけど今回はそうじゃないw
今やりたいのはそっちじゃない
あってる
あってる
正しい

json.load
以降、タブとエンターだけでできた
cardというリストから直接添字で読んでいたコードを、まともな名前の変数にアンパックするように変えた
それとは別にこのコードの上で、いままで4項目のタプルだったものを3項目に変えている
その修正を踏まえた正しい修正案を提案して来ている、すごい
2022/6/22有料になったらしい
利用料金は以下のいずれか
月額10ドル
年額100ドル
課金して1年様子を見よう

学生なので無料で使える


最高〜〜!!
"同じ
ファイルの別のところから
コピペしてちょっと書き換える"をかなりの高精度でやってくれて嬉しい
単純作業な部分を自動でやってくれる
わかる~

ちょっと頭使わないと書けない
コードは出してくれない印象
メソッド名とかをちゃんと書けば意外と出してくれるんだろうか……?
まだ使ってない自作
関数を使ってほしいときに出してくれないことは多い
既にプログラミングできる人の助けにはなるが、プログラミングできない人ができるようになる魔法の道具ではなさそう
出してくるコードは「典型的なコード」「周辺のコードからのコピペ(&調整)」のどっちかな場合がほとんど
めちゃくちゃありふれた作例では例外
一定以上の規模のコードを書ける人が増えたわけではなさそう
そういう技術はもうちょっと未来まで待たないといけないかな……
Copilotは実装はできるけど
設計はできないという印象

どうやってコードを組み立てるかは10割人の頭で考える必要がある
開発始めたばかりの時はそんなに精度良くない
開発を進めて関連するソースコードが増えてきたらわりと精度が良くなる
ソースコードが出揃っていても、グローバル変数とか自動importとか使うとそんなに良くない気がする
それっぽいメソッド名を書くと中身を勝手に補完してくれるのも魅力的