Возможно / правдоподобно построить программу с несколькими языками?

Является ли правдоподобным (и / или практическим) создание большого программного обеспечения, например Altera Quartus II, с использованием нескольких языков программирования? Это означает, что меню для программного обеспечения написаны на c ++, и, возможно, основной функциональный интерфейс, с которым пользователь взаимодействует больше всего, построен с использованием Java. Это вообще возможно? Если это так, каковы недостатки / преимущества этого с большими кусками программного обеспечения?

1

Решение

Это возможно и практикуется, однако желательно, чтобы ядро ​​вашего приложения было построено на языке программирования среднего уровня, таком как C ++ для производительности, в то время как интерфейсная часть и любые утилиты и интерфейсы к ядру могут быть построены с использованием другого языка, такого как Javascript.

Взгляните на браузер Mozilla, который является примером C ++ ядро с Javascript UI.

Ваш вопрос о том, возможно ли это: ответ таков. Однако я постараюсь немного расширить, сказав, что ваша задача при создании приложения с C ++ а также Джава будет связь между двумя частями вашего приложения. Вам понадобится какой-то промежуточный, как XML для того, чтобы сделать это.

2

Другие решения

Можно создавать приложения из нескольких языков, например, вы могли бы написать свой код на C ++, а сервер на Java и использовать JNI для связи.

Хотя такое приложение позволяет вам использовать возможности каждого языка, оно требует от разработчиков опыта в нескольких областях или нескольких разработчиков, каждый из которых может увеличить стоимость поставляемого решения.

Кроме того, в настоящее время большинство компиляторов стремятся оптимизировать код во время компиляции, поэтому разработчики не пытаются найти микрооптимизации, которые позволяют им настраивать каждый аспект своего кода, если они не пишут что-то вроде AutoCad или Photoshop, каждый из которых требует относительно большое количество системных ресурсов.

Другая проблема, связанная с решениями с несколькими языками, заключается в том, как заставить их взаимодействовать друг с другом (сокеты, сегменты разделяемой памяти, каналы и т. Д.), Чтобы это стало еще одним уровнем сложности.

2

По вопросам рекламы [email protected]