Выбор языка низкого уровня, такого как C или C++, вероятно, означает, что вы входите в производительность за счет времени разработки.
Если это ваш первый низкоуровневый язык, изучите C. Простой, надежный и проверенный язык, и он позволяет писать быстрый код. Он имеет десятилетнюю историю переносимости. Гораздо проще интегрировать код C с кодом, написанным на других языках. С C++ слишком сложно сделать что-то неправильно. C++ требует гораздо большей степени владения языком и гораздо большего внимания программиста, чтобы все было в порядке. Хотя можно писать быстрый код на C++, это скорее искусство, чем то же самое в C.
Если у вас есть только несколько месяцев, чтобы узнать, то в конце вы сможете написать OK C, но на этот раз просто недостаточно, чтобы получить достаточный опыт работы с C++, поэтому ваш код на C++, написанный в первый год или два, будет ужасным.
См., Например, серьезную критику C++ от Линуса Торвальдса: C++ is a horrible language и C++ productivity. В основном, это сводится к тому, что C++ слишком усложняется даже для профессиональных программистов, а код C++ неоднозначен с зависящим от контекста поведением (это можно рассматривать как функцию языка более высокого уровня, но затруднять рассуждение о производительности).
Одна из основных библиотек с открытым исходным кодом для компьютерного зрения, OpenCV, доступна как для C, так и для C++, но также доступна для Python, что намного проще в том, чтобы быстро выполнить все действия (а также изучить как первый язык). BTW, я предполагаю, что если вам удастся выгрузить большую часть работы в библиотеку, которая сама написана на C/C++, производительность Python не будет огромной (но, как правило, Python в 10 раз медленнее C).
Если у вас есть ограниченное время, то выучите C. Он будет служить вам хорошо и может быть использован в качестве ступеньки для обучения C++ позже, если вы захотите. –
Почему вы не ответили на этот вопрос? –
@Paul: верно и обратное, и я утверждаю, что учебный маршрут C++ => C лучше (проще, эффективнее), чем наоборот. –