До моего приезда наша группа (ученые PhD, с небольшим опытом программирования) пыталась включать и выключать приложение LabVIEW в течение почти года. Код был неопрятным, слишком сложным (передний и задний) и, самое главное, не работал. Я увлеченный программист, но никогда не использовал LabVIEW. С небольшой помощью гуру LabVIEW, который мог помочь мне перевести текстовые парадигмы программирования, которые я знал, в концепции LabVIEW, можно было кодировать приложение за неделю. Дело в том, что базовые концепции кодирования еще нужно выучить, язык, даже такой, как LabVIEW, это просто другой способ их выражения .
LabVIEW отлично подходит для того, для чего он изначально был разработан. то есть брать данные с карт DAQ и отображать их на экране, возможно, с небольшими манипуляциями между ними. Однако программирование алгоритмов не легче, и я бы даже предположил, что это сложнее. Например, в большинстве процедурных языков порядок выполнения обычно следует построчно, используя псевдоматематическую нотацию (т. Е. y = x*x + x + 1
), тогда как LabVIEW реализует это с использованием ряда ВП, которые не обязательно следуют друг от друга (т. Е. Слева направо). правильно) на холсте.
Более того, программирование как карьера - это больше, чем знание технических особенностей кодирования. Возможность эффективно запрашивать помощь / искать ответы, писать читаемый код и работать с унаследованным кодом - все это ключевые навыки, которые, несомненно, сложнее в графическом языке, таком как LabVIEW.
Я полагаю, что некоторые аспекты графического программирования могут стать мейнстримом - использование sub-VI прекрасно воплощает принцип «черного ящика» программирования, а также используется в других языковых абстракциях, таких как Yahoo Pipes и Apple Automator - и, возможно, какой-то будущий графический язык произведет революцию в том, как мы программируем, но сам LabVIEW не является огромным изменением парадигмы в дизайне языка, у нас все еще есть while, for, if
управление потоком, типизация, программирование на основе событий, даже объекты. Если будущее действительно будет написано в LabVIEW, программисту на C ++ не составит труда перейти на другую страницу.
В качестве постскриптума я бы сказал, что C / C ++ больше подходит для робототехники, поскольку студентам, несомненно, придется в какой-то момент иметь дело со встроенными системами и ПЛИС. Знания о низком уровне программирования (биты, регистры и т. Д.) Были бы неоценимы для такого рода вещей.
@ mendicant На самом деле LabVIEW широко используется в промышленности, особенно для систем управления. Предоставленный NASA вряд ли будет использовать его для бортовых спутниковых систем, но тогда разработка программного обеспечения для космических систем - это совершенно другая игра с мячом ...