Похоже, что языковые навыки программного обеспечения, наиболее востребованные для встроенных устройств и роботов, это C, C ++ и LISP. Почему более поздние языки не проникли в эти приложения?
Я предполагаю, что речь идет о требованиях к пространству, производительности и надежности.
Например, Erlang может показаться особенно подходящим для роботизированных приложений, поскольку он облегчает параллельное программирование и позволяет выполнять горячую замену кода. Python может показаться полезным, если только по какой-либо другой причине, кроме поддержки нескольких парадигм программирования. Я даже удивлен, что Java не сделала набег в общее роботизированное программирование.
Вероятно, на этих платформах можно было бы использовать гораздо больше языков, если бы разработчики предприняли усилия по устранению ограничений времени выполнения. Что не часто бывает. Всегда есть тенденция поглощать ресурсы, которые есть у вас под рукой, если вы сознательно не стремитесь к меньшему.
Я уверен, что одним из аргументов было бы: «Некоторые новые языки интерпретируются, а не компилируются», подразумевая, что скомпилированные языки работают быстрее и используют меньше вычислительных ресурсов.
Forth имеет репутацию интерпретируемого, но небольшого и быстрого и поэтому часто используется на встроенных устройствах. Последующие меры, такие как «Фактор», вероятно, также были бы хорошими кандидатами, но я не слышал о каких-либо усилиях в этом направлении - см. Выше.
Это все еще тот случай, когда мы можем разместить виртуальную машину Java на сотовом телефоне или SunSpot?
Я не зацикленный человек, но сотовый телефон - довольно роскошная платформа, по сравнению с контроллерами в автомобилях, speklets asf. Но Java всегда имела в виду встроенные устройства, поэтому их встроенная реализация может даже достигать более низкого уровня мощности.
(и разве LISP не интерпретируется в любом случае?)
Нет, компиляция профессиональных реализаций, AFAIKT.