Новость про новый автопилот Тесла:
“FSD Beta v12 upgrades the city-streets driving stack to a single end-to-end neural network trained on millions of video clips, replacing over 300k lines of explicit C++ code.”
В чём там суть. Классическая задача автопилота решается целым пайплайном Perception, Planning, Control. Взяли информацию с кучи датчиков, сфьюзили, создали окружение; спланировали кто, куда и как поедет, в том числе и мы сами; подали управляющий сигнал. И так по кругу.
Ранее нейросети заменили самый первый элемент — perception. Он и один из самых простых оказался. Далее написали кучу правил для планирования, команды управления и т.д. и т.п. В конечном счёте практически вся имплементация в продакшене оказывалась на C/C++, чтобы работало быстро и удовлетворяло многочисленным отраслевым стандартам.
Но чем дальше, тем больше кода и логики получалось перекладывать внутрь нейросетей, они стали не только детектировать объекты, но и фьюзить сигналы с датчиков, заменили собой 3D реконструкцию (что-то типа Nerf). Далее их учили предсказывать, куда кто двинется и что делать с управлением.
А потом... А потом начали развивать нейросети, которые в принципе не нуждаются в ручной логике: им на вход подаются сигналы с датчиков, а на выходе получают сигналы управления. И вся ручная логика на С++ в размере 300к кода оказалась не нужна. Селяви.
Ушёл ли оттуда С++? Нет, конечно, он там есть и никуда не денется. Но он ушёл из ниши прикладной логики и математики, но остался в виде кода нейросетевых фреймворков и взаимодействия с железом (хотя там наверняка только MISRA C). Это не значит, что С++ уступил место какому-то другому языку, нет. Его нишу языка логики заменила нейросеть, которая обучившись на миллионах видеороликов смогла превзойти правила, написанные человеком.