自動運転プログラムとその検査についての記事を読んだ感想

https://www.yomiuri.co.jp/science/20190204-OYT1T50108/

この記事を読んで思った事を書いておこう。

ひとまず、前後の文脈を気にせずに気になる所をあげるとしたらここになる。

情報技術(IT)の知識を持った職員がプログラムの中身を確認する。

プログラマを職業として生活している上での感想として、これはすごく難しい事なんじゃないかなぁ、と思ったのであった。プログラムの中身を確認する作業がどんなものか、具体的には分からないが、普段の仕事でソースコードレビューをしていても、新しいプロジェクトを引き継いで既存のソースコードを読むときでも、オープンソースのコードを読んでる時でも、ソースコードから全体の動作を完全に把握する事って結構難しいと思っている。まぁ8割方は理解できるんだけど、正常系を離れた途端に理解が難しくなる傾向があると思っていて、すべての動作に関して完璧に動作を把握するのは非常に難しいと日々感じている。特に自動運転のようなプログラムは難しいんじゃないかなぁとも思っていて、あまりこの業界のプログラムについて詳しくないのだけど、もし素朴に実装していたとしたら、ひたすら分岐が続くようなプログラムの連続になると思っていて、そのすべてのパターンを洗い出していくのはめっちゃくちゃ大変だと思う。もちろん、静的解析のツールなんか入れるんだろうけど、各社で使っている言語もフレームワークも違うだろうし、それ用の開発がまた必要になるんじゃないかな(あ、これってもしかして商売のチャンス?)。真面目にやるのであれば、国の職員に、実際の開発者をいれて(設計者もそうだけど、コードを書いた人もいたほうが良さそう)、みんなでレビュー会みたいなのをやる事になるのかな。それでまずは全体のコードのフローチャートが印刷されて、全体像とコードの一行一行とを行き来しながらプログラムをレビューしていく・・・あれ、これってもしかして品質良くなるかも?それやってくれるんならやってほしいかも、という気持ちになってきたぞ・・・ただそのコストって誰が払うんだろう、という問題はありそうか。それならいっそ、全部オープンソースにしてしまえば改ざんの余地もなくなるし、レビュー者も多くなるし、良いんじゃないか?いや、知的財産的な何かが絡むと難しい?うーん、考えるのをやめよう。その一方で、今は機械学習を使って、ロジックを書かないでもプロダクトを書ける土壌が出来てきてるっぽい何かを感じていて。学習させた結果、なんでそうなるかは分からないけど、そうやって出力されて、それが一定の割合で正しい事が分かっている、というような。こういうのってプログラムの中身を読むだけじゃなくて、そういうチューニングの中身とか、もっと言えば機械学習で使ってるアルゴリズムにまで精通してないと難しくて、この国の職員のレベル、めっちゃ高くね?そんな事できたら最近流行りのGAFAだっけ?で高額で雇ってもらえるんじゃね?うーん、やっぱりいろいろと難しいような。でもこのレビューが「不正を防ぐため」という名目だと、どうもまっとうなレビューがされる気がしなくて、「品質を高めるため」になれば明るいニュースなんじゃないかなぁという気がしてきた。自分でも何が言いたいのか分からなくなってきたのでこの辺にしておこう。

一国民として、自動運転技術は発展して欲しいものの、普段やってる Web アプリケーションの開発みたいに頻繁にバグが発生するような状況は嫌かなぁ、とは思ってるので、誰かがそれを保証する、という仕組みはあった方が良いとは思いつつ、それを国がやるのはどうなの?という気持ちもある。これ、国の職員がってレベルの話じゃなくて、一大プロジェクトとして、大きな認証機関を作って国の総力をあげて取り組む方が良さそうな気も?あれでもそうすると謎のお金やら人やらが送られて結局公平とは?みたいな話になるのか?うーん、やっぱり難しい。テスラもグーグルもちょいちょい事故ってるけど、事故は避けられないよなぁ。飛行機もちょいちょい事故ってるし。自動運転技術って、すごく高度な話だと思うし、各社が各々で研究するより、みんなで集まっていろいろやった方が良いんじゃないかなぁ。

なんかとりとめもない感想になってしまった。

簡単にまとめると、確かに各メーカーが独自に作ったものをガンガン、アップデートしてく、ってのは辞めた方が良さそうで、誰かがその安全性をそのメーカーの外から検査するのは賛成だけど、その検査・認証機関ってものを作るのも中々難しそうだなぁ、という感じでした。