見出し画像

PyCharm Pro版の1行丸ごと補完機能に驚いた(Python学習)

PyCharm Professional版の30日体験版をインストールし、教材に従ってPythonを学習していた。教材では無料版のcommunity版で解説していたのだが、色々と思うところがあっていきなりPro版の体験版からスタートすることにした。そして驚きの体験をしたので、普段はnote禁止の時間帯だが特別にメモしておくことにした。

(約 4,500文字の記事です。)



PyCharmのPro版 vs Community版

これもGoogleで調べればたくさん出てくる。だが上位10記事ほど見ても「特にWeb開発やDB開発しないなら無料のCommunity版でも十分」という意見のほうが多い

だが私はこの情報収集中に「コード補完機能はPro版のほうが優秀」という情報を見つけた。コード補完の性能はコーディングの効率化に直結する。なのでどうせならということで体験版でProを入れてみたのだ。

もう一つの理由は、Pro版とCommunity版はソフトウェアとしての互換性がないため、あとからアップグレードできない。ソフトの削除&新規インストールになる。だったら最初からProで行けばそんな面倒な事もないな、という視点。


衝撃のファーストブリット! 1行丸ごと補完

さて、インストールも終わって教材の動画チュートリアルに従って1行ずつコードをなぞるようにタイピング、と思ったのだが。

数文字タイピングしたら、な、なんと!1行丸ごと補完の候補が出てきたのだ!

!?え?え?えええぇぇぇっっっ!?どういうこと?なんで?
なんでその先が分かるの?なんで予測変換できちゃうわけ?
どういう仕組み?

目が点になった。

動画教材で指定されたrepelit.comのオンライン版Python練習サイトでも補完機能は効いていたが、せいぜい引数単位、関数単位だ。ところがPyCharm Proでは1行丸ごと提案してきた。そしてその精度も結構高い。引数を時々直す程度で、メッセージに関してはほぼ丸ごとOKだ。

仕組みがよく分からないが、教材のサンプルコードのmain.pyの他にReadme.mdの指示内容、どうやらこの内容を読み込んで引数やメッセージの文言に取り込んでいるらしい。


PyCharmだからか?Pro版だからか?調べてみた

PyCharmだからみんなこんなに高性能なのか、それともPro版だからこその能力なのか?分からないので調べてみたが、これ、2024年4月になって実装された新機能らしい。4月6日付けのブログ記事。わずか2ヶ月前。

記事によればこの補完機能はネット接続不要の「完全PC内動作」とのこと。そんなに高性能ならばさすがにCommunity版に無料で実装してくるはずがない。Pro版のみの機能だと思って間違いなさそう。

そして6日前に2024.1.2がリリースされたようだ。

あとこちらの記事にも書いてあるが、このコード補完機能はCommunity版では基本機能のみに制限されているようなので、やはり1行補完はPro版のみっぽい。(今さらCommunity版で試そうという気にならない。)


もしReadme.mdの内容をPyCharmが解釈してソースコードの補完に利用しているならば、次のようなことになる。


人は仕様を自然言語で書き上げればコードが半分完成するようなもの

そう、仕様書を自然言語、特に英語で完成さればあとはソースコードで実装する際にPyCharmがそれをサポートしてくれる。

そして日本語から英語には既にGoogle翻訳ほかChatGPT先生に日本語を自然な英文に翻訳してもらうことが無料でできる時代ですし、えぇ。それを仕様書にしてしまえばPyCharm先生の補完技術で、えぇ。

なので自然言語で思いつく限り、変数名や関数名、アイディアなどを英語で文章にしておけばあとはそれをソースコードという形式的な文に整えるだけでソースコードが完成することになる。

そしてこれは今日情報収集して知ったのだが、他社サービスになるがGitHub CopilotなるAI支援型コーディングシステムも有料で登場しているらしい。学生は無料だとか。恐らくは1行補完ではなくて複数行補完が実現されているということだろう(精度の問題はあるにせよ)。

ということはますます「人がフルスクラッチでコーディングする時代ではなくなっている、現在進行形で」という現実が見え隠れする。つまり、

  1. 人が大筋を作り

  2. AIがそのアイディアをPython言語で補完し

  3. 人がその実装を目視確認し

  4. 論理エラーがないことを確認すれば

コーディング終了な気がする。あとはそれを使って旨味を他人や自分に提供するだけだ。自分専用ツールならばかなり敷居が低い気がする。


想像以上にソフトウェア開発の敷居が低くなっていた

高度な事を挙げればきりがないだろうが、自分専用ツールで、Web接続やDB接続などが不要な自分専用ツールならば、AI支援を使ってかなり簡単にソフトが作れる時代になっちゃったんではないか?と思った。私はまだ学習中だが、徐々にPythonでWindowsのファイル操作・フォルダ操作ができるようになる予定。そして次はGUIアプリ開発。UIとしてWindowsライクなボタンや選択肢リストやチェックボタンやユーザーファイルの指定ボックスを通じて、Windowsアプリの開発。主に自分用に開発し、次に一般化して販売や公開を検討している。

その過程が、自分の想像以上にコーディング周りは負担が少ないと感じた。一番の負担はPython言語学習そのものだと思う。実装のほうは前述したように、仕様が自然言語でキッチリ固まったらコーディングは実はAI支援でかなり定型的・形式的処理で終わる=AI補完による高速化がかなり期待できる&バグ修正も早そうだと感じる。なにせリアルタイムでコーディングしながらAIが「ここ、バグですよ。」と教えてくれるわけだから、実行時に「バグがバグを呼んで一体何が原因で不調なのか不明」がなくなるわけで。コーディングしながらバグ潰しができているわけで。

今日現在でAIの恩恵が一番大きい分野が実はプログラミング分野だったりするのかも知れない。絵や動画やアートという主観の世界じゃなくて、論理とアルファベットのみで決まる、ブレのない世界だからこそ、AIの効果が思い切りいい方向に影響を与えている分野だと思う。

プログラミングにおいてはAI活用はもはやとっくの昔にシンギュラリティを超えていたのかも知れない。私が遅れて「今さらながらようやく気付いた」だけかも知れない。


プログラミング言語学習は自然言語学習よりも重要になったのかも知れない

プログラミングやソフト開発はもはや特別な人のスキルではなくなったと感じる。当然ながら高度なソフトや信頼性などの点について言えば職業人としての「責任の対価として賃金を得るプロフェッショナル人材」はまだまだ必要だろう。だが個人レベルで個人が楽するためのツール作りとしてのプログラミングは、かなり敷居が下がった。もちろんPython学習の学習コスト(学習時間とエネルギー)はそれなりに必要だが、将来性がある。

言語なのでなじめばなじむほど旨味がある。しかも将来的にもまだまだ需要がある言語なので、自分用のPC自動化ツールであったり、もしかしたら他人の役に立つツールをサッと作れるかも知れないし、それを拡張すればお金を稼げるかも知れない。10年20年付き合うプログラミング言語だと直感している。

私にとっては今から英語がペラペラになっても「何ができるの?」と言われれば多分何にもできない気がするのだが、せいぜい「英会話ができます」で終わる気がするが、その頃には翻訳コンニャクができているだろう。

だからこれを書きながら思ったのだが、英語を学ぶにしても「何のために?何がしたくて?英語を学ぶのか?」を決めた方がいいと感じた。英会話したいだけなら、遠くない将来翻訳コンニャクができる。その数秒のディレイを惜しむため、生の肉声で会話したいから、などというモチベがないままだと、何百時間の学習に耐えられない気がする。
逆にそのモチベがないならば、試験対策などスコアを追うための手段でしかないならば、英語の本質を求めるのではなくて「試験対策」を求めるべきだろう。果たしてそれは言語学習と言えるのだろうか、という気もするが、その価値は各自で決めればいいことなので割愛。

少なくともPython学習における私にとっての英語学習は「講師である英語話者の説明内容を英語で理解するための手段」なので、別に英会話(Output)したいわけじゃない。なのでヒアリングに全振りしてOKだ。声によるアウトプット練習など無駄。Python学習には不要で、アウトプットするならソースコードだろうw 音声じゃない。

だがPython言語がペラペラなら、自分のためや他人のために、主にPC操作や情報処理に関して実務や実生活で役に立つ事はほぼ間違いない。その恩恵を自分自身で受けたり人の役に立たせられるならば、教養や趣味の言語学習としては自然言語よりも実益がある気がする。

実際ここまでPyCharmのAI補完機能が優秀ならば、あとはPySide6でGUIを実装すればWindowsアプリはあっという間にできる気がする。またMacやLinux環境があればマルチプラットフォームとしてのアプリも開発できる余地がある。PythonはそもそもOS依存しない。実行ファイルのバイナリにコンパイルする際に各OS環境が必要になるだけだ。応用範囲の広さ、その点でもメリットがある。


というわけで軽い気持ちでPyCharm Professional版を試してみたが、有料分の価値があると感じた。多分無料のCommunity版には戻らない気がする。それだけ1行丸ごとの補完機能は魅力的だ。生涯のコーディング総量を考えればその恩恵はかなり大きいだろう。

酒をやめて時間の多さに逆浦島太郎になっていたが、今度は時の流れの結果のAI支援によるPyCharmの進化に、順向き浦島太郎になって帰ってきてしまった。AIの力がここまで強力だとは恐れ入った。

キーボードキーをタイプするのがコーディング=「打鍵が作業」という時代から「AI補完は内容が正しいか否かをチェックして、補正するためのキーボード」に時代が変わったのか?とすら思えた。


そんな衝撃的な1日でした。


今回の創作活動は約1時間30分(累積 約3,823時間)
(1,082回目のnote更新)

筆者はAmazonアソシエイト・プログラムに参加しています。(AmazonアソシエイトとはAmazon.co.jpの商品を宣伝し所定の条件を満たすことで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下のリンクを経由してAmazonでお買物をするとその購入額の1~3%ほどのお小遣いが私に寄付されます。誰が何を買ったという情報は私には通知されませんのでご安心下さい😊 以下のリンクを経由して頂ければ紹介商品以外のご購入でもOKですよ~。


読んでくれてありがとう。気長にマイペースに書いてます。この出会いに感謝😊