最近ソフトウェア開発に関わるAIや関連サービスが発展してきて、価値観が入れ替わることが増えた。

主語がデカい話をする気はなく、以下の話はソフトウェアサービス(およびソフトウェアサービスを伴う周辺業界)の話だ。

子どもの習い事待ってる1時間ちょっとで思ってることざーっと書いてみた。書ききれなかったので残りはまた次回。

Rustのような高速で堅牢な言語に全部集約されるのか、それともRubyのようなより自然言語に近いプログラミング言語のほうが良いのか

DHHがシステム(の一部)をRustに置き換えてRust最高!みたいに言ってるのが話題になっていた。 ただRustはビルドが遅くてローカルストレージも食いすぎなのでスピード感が大事な現場で使う言語としてはあまり向いてないと思う。が、これもRustがどうとかは議論の本質じゃなくて、人間が読み書きするには適さないがAIは難なく扱える言語がいいのか、AIにとっても自然言語に近い抽象度の高いプログラミング言語のほうが生産性が高いケースがあるのかというのはまだ答えが出てない問題だと思う。

私の意見としては、最近のAIの議論をみている限りは、短いトークン長のなかで抽象度の高い指示やロジックを表現できることには大きなメリットがあるという点で、PythonとかRubyのような短く書けてかつ自然言語に近いプログラミング言語にはメリットがあると思っている。ただし動的型付け言語だと型情報の不足によりバグがやや出やすい傾向はあると思っていて、そこはシステムに要求される堅牢性で判断すべき問題と思う。

一般論としては短〜中期のスピード・生産性重視なら動的言語でよい、長期の堅牢性や安全性を重視するなら静的言語が優れている側面はある、くらいの意見である。

また、RustとかGoと比較しての話であって、今後両方のメリットを備えた新しいプログラミング言語がでてきたら状況が変わると思っている。

個人で質の高いシステムを作るのは容易だからSaaSはもう不要なのか

最近、IT企業の経営者などが、自社で使うITサービスを自前で開発し、これで十分となったからSaaSは解約した、みたいな話を複数目にした。

そういう文脈でいくと、SaaSのいくつかは実際に不要だろう。というかシンプルな機能としての「ソフトウェアサービス」だけを提供するSaaSは不要になる、それはそうだと思う、

一方で、それはシステムの内容をすべて把握できる場合に限られると思う。例えばシフト管理システムとかオンラインホワイトボードとかそういった類のSaaSは自前で作れちゃう可能性が高いと思う。もともと専門性が低くて現場の人が紙でやっていたことをデジタルで便利にしただけみたいな類のものだ。

では一方で今後も必要とされるSaaSはなんだろうか。私が思うのは(1)専門性の高い業務ロジックをそなえたサービス (2)コンサルティングとセットのサービス、の2系統だ。

技術専門職としてのソフトウェアエンジニアはもう不要なのか。すべてのソフトウェアエンジニアは事業(または顧客との接点)に向かうべきか

「AIはコードは書ける。でもデプロイするのは苦手」と言ってる人がいた。実際そういう感じだったと思う。でもいまはそうではない。最初からこうこうこういうふうにデプロイしたいんだけどとAIに言えば、そのとおりほぼ完璧にやってくれる。 障害調査やエラー修正もAIで全部できる。テストもできる。

けど抽象的な設計判断だったり、中長期の運用の判断をするときにはまだ人間が必要というのが現場感覚だ。だけどそれは最初に作ったのが人間だったからだという見方もできる。真に最初からAIネイティブですべてをAIに任せたシステムがうまく動いて中長期の運用も成り立てば、全部AIでいい、下手に人間が介入しないほうがよいとなると思う。

私が最近リアルで会った人と議論している話は以下のようなものだ。「近い将来、人間がシステムに触れるのが脆弱性だといわれるようになる。人間はミスするし悪意もあるから。インフラやデータベースに人間のオペレータが直接さわれないようにできれば、セキュリティは大きく向上する」

オープンモデルかつオープンウェイト(open-weight)で作業者として第三者からみても信頼できるAIというのがこれから流行ってくると思う。そうしたAIには人間に代わる作業をやってもらっても信頼できるとなれば、人間が直接システムにさわるよりも安全なので、人間は外から監督するだけになり、内部でのやり取りに介入しない、というよりできないようになると思う。

そうすると人間が持っている何らかの権限が侵害されたとしても悪意あるハッカーは直接システムにさわれないので、(完璧ではないにせよ)セキュリティが向上する。

いまもすでにダークファクトリーという言葉があって、リアルの工場でも無人・無菌状態のものはあるが、それと同じアナロジーだ。

けどそういう状況が当たり前になったときに、シニアエンジニアが不要かどうかでいうと、多くの現場ではゼロにはならないが、限りなく少ない人数だけが必要とされるようになると思う。一方で、ゼロで回る現場が増えてくるはずだ。そうしたゼロで回る成功例が十分な数でてきて、ビジネスとしても優れていると証明されたときには、状況は変わると思う。

AIはあくまで道具なのか

技術の進化を語るときに、鉄道だったり、電話だったり、電卓だったりといったようにこれまでも破壊的な進化はあったけど、どれも人間の能力を拡張するためのツールでしかなかったし、いまのAIもそうだから今のAIブームがなんら特別なものじゃない、っていう言説を目にする。

私はそうではないと思う。

今現在進行系で進化しているAIは、人間の代替だ。これまでのいろいろな技術とは決定的にそこが違う。AIはコミュニケーションするし、意思決定もできるし、実際の作業もできる。自己改善もできる。そういう意味で仕事をする人間そのものを代替できる存在であり、1人の人間にひもづくツールではなく、少ない(多くの場合一人の)人間+多数のAIでチームを組むのがほとんどの仕事において普通になると思う。

今後数年は既存企業においては人員削減・コスト削減・生産性改善という文脈で、新興企業においてはAI主導・全自動によって競合に勝っていけるだけの優位性を持ち得るかってところがポイントだと思う。

では直近どうしたらいいのか

よくわからない。とにかく変化に対応していくスタンスを大事にしたい。

※ 時間ぎれになったので書ききれなかったトピック。また次回書きたい。

  • 人間はソースコードを見なくてよいのか。コードレビューも不要なのか
  • UI/UXは重要なのか、それともサービスを使うUIはユーザー側が選ぶようになるのか
  • AIエージェントを動かすのはローカルかクラウドか
  • MCPは不要なのか