ディスカッション (11件)
最近はAIがプログラムを生成してくれるのが当たり前になってきましたが、そこでふと疑問に思いませんか?「AIにコードを書かせるなら、そもそもなぜ今さらPythonを使う必要があるのか?」と。このトピックについて皆さんの意見を聞かせてください。
話が少し逸れるけど、なんで今さらMediumに投稿する人がいるの?読書体験が最悪すぎる。この記事だって、読んでいる文の上に全画面のポップアップが出てきて、最後まで読み切ることすらできなかったよ。
何か自分が見落としているメリットでもあるのかな?
PythonはRustよりエコシステムがかなり成熟してるよね。特にAIやML関係では顕著。ある機械学習アルゴリズムを実装してるっていうRustのcrateを見つけたんだけど、正しく動作しなくてさ。結局Claudeを使って書き直す羽目になったよ。
型システムで正しさを強制するっていうのはAI開発において良い考えだと思うし、だからこそPythonよりC#やRustを選ぶことも多い。でも、用途によってはPythonが間違いなく適任だよね。
もちろん好きな言語を使っていいんだけど、アドバイスとしては「自分が一番よく知っている言語」を使うのが一番だよ。LLMが生成したコードの内容を理解する時、自分の知識にある言語なら余計な苦労をしなくて済むから。
コードが適切かどうかを判断するのは自分自身だっていうことを忘れちゃダメ。アセンブラを使えば最高にパフォーマンスの高いコードが書けるかもしれないけど、それを本当に信頼できる?
もちろん、RustやGoを学ぶいい動機付けにはなるだろうね。あるいはLISP、COBOL、FORTRAN、APL、Jみたいな面白い言語に挑戦するのもアリかな(冗談だけど…)。
個人的な意見まで。
AIが記事を書いてくれるなら、なんで自分の頭を使う必要があるの?
最初のいくつかのコメントを読んだけど、誰も触れていなくて驚いた。やっぱり学習データだよ。学習データに含まれるPythonの圧倒的な量が理由だね。
AIを使ってBrainfuckで書くこともできるだろうけど、Pythonでやるのと同じ結果が得られるとは思えないし。
それに対する質問なんだけど、今はAIがあるんだから、必要になるまで言語のことなんて気にする必要あるの?
ソフトウェアアーキテクチャについて考えたり、内部の仕組みを確認したりしているなら、以前よりも多くのコードを読むことになるはず。Pythonは視認性が高くて、何をしているのか理解しやすいよね。それに、動的だけど強い型付けがされているから、コードに書かれていることがそのまま反映されることが多いし。
結局のところ、目的に合ったツールを使うこと、そして出力内容を理解できるツールを選ぶのが鉄則だと思うよ。
これについては前にメタ論文を書いたんだ。学習データの中に非常に豊富に含まれていて、一貫性が高い言語としてGolangを例に挙げてるよ。
https://jry.io/writing/use-boring-languages-with-llms/ (https://jry.io/writing/use-boring-languages-with-llms/)
みんなが言ってる通り、PythonがRustより優れている主な点は、特にML機能におけるライブラリの充実ぶりだよね。あとRustの弱点として、ネイティブで柔軟なUIサポートが欠けている点があると思う。でもRustのいいところは、アプリの高速で安定したコアとして機能させて、特定の処理をPythonやTSの得意な部分に任せられるところ。こうすれば、いいとこ取りができる。
最近のデスクトップアプリ開発の定番はTauriで、RustのバックエンドとTSのフロントエンド(Reactが一般的)を組み合わせるスタイルかな。ローカルのML機能は、Pythonのサイドカーとして簡単に組み込めるし。本番環境へのバンドルは少し手間がかかるけど、今のところうまく動いているよ。
余談だけど、GolangもLLMを使う上では素晴らしい言語だよ。インフラ周りはRustよりGolangで書くことの方が多いけど、どちらでも大抵の場合はうまくいくね。
結局、開発者がコードを保守し続けなきゃいけないんだよ。PythonのエンジニアがLLMを使って「何らかの」Rustコードを書かせることはできるだろうけど、うまくいかなくなってLLMの限界にぶつかったら、彼らはRustを学び直さなきゃいけなくなる。それってプロジェクトのリスクだと思うな。
エージェント時代にどんなプログラミング言語が必要か、っていうのは面白い問いだよね。人間向けに設計された言語が、必ずしもAI主導のソフトウェア開発に最適とは限らないわけだし。必要な資質としては、形式的な正しさの保証や高いパフォーマンスだろうね。問題は、それがRustでいいのか、あるいはより優れた新しい言語を設計する余地があるのかどうかだね。