僕は高品質なソフトウェアを作っているのだが、というのはプログラミングが好きなので自然と高品質を追求してしまう、しかし、高品質のほうが低品質よりも良いとも限らないと思っている。
高品質のソフトウェアの悪いところは、それを開発できる人が少ないというところ。僕の経験からすると百人に一人くらいしかいない。これからますます人手不足になる日本で高品質ソフトウェアを維持できる人がますます少なくなる。
低品質のソフトウェアの良いところは、それを開発できる人がいくらでもいるということだ。低品質なので悪いところがいっぱいあり、失敗も多く、お金も無駄になる、それでも開発できる人がいるなら、多くを求めない、単純で簡単なことしかやらないソフトウェアにすることでどうにかなると思う。
人がいなければ何も始まらないわけで、高品質のソフトウェアを維持するのが不可能に近くなる、そうなれば低品質のソフトウェアを使って悪いところが多くてもそれで満足するのが正解という世の中になるしかないだろうと思う。
そういう世の中になるなら、高品質ソフトウェアに慣れてしまうのは却って良くないことだ。早くから低品質ソフトウェアに慣れておかないと、あとで受けるショックが大きくなり、大失敗をしてしまうだろう。例えていうなら、清潔な日本に体が慣れていて、インドに行ったら下痢が止まらずに死にそうになるようなものだ。
だから、高品質ソフトウェアを今提供するのはあまり人のためにならない気がしている。却って迷惑。僕自身はせいぜいあと20年くらいしか頑張れないだろうから、僕が作る高品質に20年慣れさせたあとに僕がいなくなり低品質しか選択肢がなくなったら僕のソフトウェアのユーザーは大変だろう。
AIがプログラムを書くようになるからプログラマーの仕事は変わるという話題があるけど、どうなんだろう。
僕は人間の下手糞プログラマーが書く酷いコードにずっとうんざりしてきているので、もしもAIがいいプログラムを書けるようになったらうれしいけど、どうなんだろうねえ。AIが僕よりも上手にプログラムを書けるようになったらうれしいけど、いまのところそういう日が来るような気がしない。
僕が興味があるのは、物事を正しく抽象化できるのかということなんだよな。AIがそれができるようになったらたいしたもんだ。
プログラムはコードを書く前の段階がとても大事で、それはコードには直接書いていないけれども、でもコード全体をよく読めば見えてくるもの。人間でもAIでもどっちでもいいけど、それができるようになるといい。
業務アプリケーションについていえば、コードを書きはじめる前に対象業務や対象製品をよく観察しその本質を理解する必要があって、それに基づいてプログラムを書くことになるので、コードだけの話じゃないし、下手糞な業務アプリケーションを作る人はそれができていなくていきなりコードを書きはじめるからあっという間に現実に追い付けなくなって失敗する。
だから、AIにしろ人間にしろ、良いソフトウェアを作れるようになるなら大歓迎だが、それにはコード以前のところができるようにならないといけない。