Даже 2 десятилетия назад можно было назвать код, написанный на одном языке, для вызова кода, написанного на другом; в школе мы называли ассемблерные графические процедуры из кода Ada для одного задания класса. Заметные исключения: запуск скомпилированного кода из сценариев или выполнение системной команды из скомпилированного кода; но редко мы пишем библиотеку на C ++ для использования в нашем приложении Java. Когда впервые появилась Java, и она все еще работала медленно, была возможность написать основное приложение на Java и переместить код узкого места в некоторую библиотеку C / C ++, которая будет вызываться с использованием JNI.
Итак, после всех этих лет, что мешает нам писать многоязычные приложения? Основной сценарий, который я имею в виду, - это когда язык считается хорошим выбором, если бы он не был узким местом для производительности (как в первые дни Java), поэтому он полностью написан на C, а не использует смесь двух языков.
Меня интересует это с точки зрения архитектуры, а также языкового дизайна. У вас есть хорошие примеры, истории успеха или цитаты?
[Изменить]
Одним из лучших примеров этого была обратная реакция на Java из-за ее низкой производительности на ранних этапах. Несмотря на то, что JIT-компиляторы решили эту проблему, мой вопрос всегда был о написании программного обеспечения на языке, который облегчает написание, чтение и обслуживание. Если есть узкое место, напишите процедуру в сборке или C только для узкого места. Таким образом, вы должны получить лучшее из обоих миров, по крайней мере, теоретически.