Альтернативы встроенным скриптовым движкам
Каждый раз, когда я создаю программное обеспечение в какой-то момент, я хочу предоставить пользователям возможность управлять им программно.
До сих пор я исследовал следующие пути:
- Реализуйте его ядро в виде библиотеки (dll/so, jar, TCL package...)
- Встраивать скриптовый движок (пробовал TCL)
- Реализуйте его ядро как сервер, используя сокет программирования
Подход на основе библиотеки не требует больших дополнительных усилий для разработчика, но не совсем удобен для "маленьких" задач.
Подход скриптового движка удобен для пользователя, если вы выбрали его любимый язык. Это может быть довольно медленно и в любом случае иметь некоторое влияние на архитектуру программного обеспечения, поток сборки, распространение... в конце я думаю, что это тот, который требует больше всего усилий для разработчика.
Серверная опция имеет то преимущество, что позволяет пользователю выбирать свой любимый язык и имеет наибольшую связь с пользовательским кодом.
Первый вопрос: есть ли другие подходы?
Второй вопрос касается производительности: мне интересно, как серверный подход сравнивается с механизмами сценариев. Я понимаю, что это зависит от того, какой механизм сценариев рассматривается, а также от какой ОС, поэтому я спрашиваю SO, а не просто тестирование производительности на моем компьютере дома...