Большие успехи, из-за которых вокруг AI и machine learning сейчас наблюдается самый настоящий хайп, дело совсем недавнее. Например, вот эта картинка из известного среди гиков комикса xkcd нарисована в сентябре 2014 года, а всё ещё упоминает задачу "распознать, что на фото есть птица" как нечто невероятно сложное, потребующее команды исследователей и пяти лет разработки. С тех пор эта задача стала доступна практически любому упорному студенту. Соответственно, в последние годы под словами "искусственный интеллект" подразумевают в основном машинное обучение.
Это не всегда было так: в разное время к "искусственному интеллекту" могли причислять экспертные системы, написанные на языках Лисп и Пролог, алгоритмы планирования, написанные на Java или С++, или вообще какие-то модные в разные годы технологии, для создания которых могли использоваться почти какие угодно языки программирования и их смеси. Когда вы слышите, например, что такая-то российская система вооружений "снабжена искусственным интеллектом", вполне возможно, что речь идёт о какой-то довольно простой по современным меркам логике, написаной, может быть, на языке Паскаль, а может быть, даже и прямо на ассемблере.
В создании систем, основанных на машинном обучении, есть два больших ответвления: нейронные сети (часто также используется более размытый, но круто звучащий термин deep learning) и статистические методы, например, градиентный бустинг. Для некоторой части статистических методов иногда используется коммерциализированный термин data mining.
Использование нейронных сетей состоит примерно из трёх частей. Во-первых, нужно спроектировать и описать её структуру (часто также говорят "архитектуру", но это нужно не путать с использованием слова "архитектура" в других областях программирования). Во-вторых, нужно её обучить. В-третьих, нужно написать код, который будет применять обученную нейронную сеть и дальше что-то делать с результатами её работы. Обучение и применение нейронной сети очень вычислительно тяжелый процесс, ещё несколько лет назад подразумевалось, что это делается на С или С++, и код, который это делает, нужно специально для этого каждый раз отдельно писать. В последние годы для этих этапов появились стандартные, хорошо спроектированные и работающие инструменты, например, TensorFlow, Theano или Torch. Внутри они по-прежнему написаны на каком-то языке, близком к железу, вроде С, но для всех, кроме их создателей, это уже не очень важно. Ну а первый этап -- описание структуры сети -- в них для удобства уже выполняется на каком-то более удобном и приятном, хоть и сильно менее эффективном, языке. Чаще всего это Python, иногда Lua. Вот что скрывается за словами "разработчики искусственного интеллекта работают на питоне".
В статистическом машинном обучении экспериментируют обычно на Питоне, а в production работают монструозные системы, разрабатываемые сотнями человек. Пишут этот код на C++ с "вкраплениями" Питона или, реже, Java. Примеры таких систем - поисковые машины Яндекса или Гугла; рекламные сети, которые пытаются подсунуть вам именно ту рекламу, на которую вы кликнете; и даже та штука, которая в ленте Facebook старается показать вам те обновления, которые вы с большей вероятностью "лайкнете".
Питон не подходит для больших проектов. Его аля "прозрачность" его же и губит.
Для больших проектов Java и тому подобные...