AIがコードを書く時代、プログラミング言語は何を最適化すべきか

Evolving programming languages in the AI era

José Valim氏が、コーディングエージェントがコードの大半を書くようになったとき、言語コミュニティ、エコシステム、人間中心の人間工学、コンパイラはどう変わるかを考察。エージェントは退屈な定型文を気にしないため、型推論より強い保証を優先すべきだと主張し、LSPに代わるプログラムデータベースやデバッガに代わるランタイム可観測性を提案する。

エージェントにコードの大部分を書かせるなら、人間が書くことを前提とした最適化を見直し、より強い保証を提供する絶好の機会だ。
  1. jmull

    LLMの強みが我々の言語に合わせて動作することにあるなら、我々の言語をLLMの強みに適応させようとするのは無意味だ。

    LLMが扱うべきだと思う抽象化を、都合の良い任意の言語で実装し、その抽象化をLLMに使わせればよい。

  2. spankalee

    この部分:

    ---

    - 構築による正しさ: 言語が無効な状態やプログラムを表現しにくく、あるいは不可能にする。

    - 静的に確立: 型、証明、静的解析が実行前に性質を確立する。

    - 実行時強制: メモリ管理、分離、ケイパビリティ境界、その他の実行時に強制される性質。

    - 経験的に検証: テスト、プロパティベーステスト、ファジングによるプログラム検証。

    ---

    これらが親しみやすく、生成が容易であることと相まって、私がZenaを開発している大きな理由です: https://zena-lang.dev/

    AIファーストの根拠をまだ公開ドキュメントに十分に盛り込めていませんが、ここでその一部に触れています: https://zena-lang.dev/guide/why-zena/#familiar-to-humans-and...

    また、このトピックに関するリポジトリ内のドキュメントもあります: https://github.com/elematic/zena/blob/main/docs/design/ai-fi...

    要するに、決定的で自動化されたチェックが多ければ多いほど良いのです。AIは衒学的な言語にも対処できます。私は静的に検証された構造化並行性、単位系、契約、そして最終的にはさらに多くの形式手法を言語に追加するつもりです。そうすれば、親しみやすいTypeScriptライクな基盤に、できるだけ多くの静的保証を詰め込むことができます。

    また、ZenaがWeb Assemblyを通じて実現する細粒度の分離は、生成されたコードのケイパビリティと、バグ、脆弱性、非整合な動作の影響範囲を制限するために極めて重要だと考えています。

    人間向けにも最適化された言語、特に可読性と単純なセマンティクスが[…]

この日のほかの記事

2026-09-26