7

Я ищу хороший язык сценариев для ссылки на мою программу. Ищу для 2 важных атрибутов:Языки сценариев

  • языка сценариев должен быть жесткий связан в исполняемый файл (не требующие 3 участника установки). Это важно для меня, чтобы упростить распространение.
  • Сценарии должны позволить некоторое время выполнения опции отладки (При выполнении сценария в моей программе, я хотел бы легко запустить его в отладчике, когда он работает в контексте моей программы)

Может питон, lua или какой-то другой язык мне это дает?

+4

Вы должны предоставить дополнительную информацию о своей программе, то есть используемом языке и целевой ОС. – Anax

+0

Более важный вопрос - какие библиотеки вам нужны. – Lothar

ответ

2

Я бы поставил свои два цента на питон. Я не знаю много деталей, но блендер для компьютерной графики отлично справляется с реализацией сценариев python.

Насколько я могу сказать в блендере 2.5 интерпретатор запускается внутри исполняемого файла,

import sys 
sys.executable 

показывает /blender/blender.exe и есть хорошая поддержка отладки, он даже имеет полный интерактивный интерпретатор внутри.

Для получения дополнительной информации ознакомьтесь с: http://www.blender.org/

9

Lua является разработан для этого:

  • статические ссылки? проверить!
  • debugging? проверка!
13

И Lua, и Python могут предоставить функции, которые вы упомянули, поэтому выбор одного из них будет зависеть от других критериев.

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

Оба были встроены в основные приложения. Python можно найти в Blender, OpenOffice и Civilization 4. Lua можно найти в World of Warcraft и Adobe Lightroom. Я бы посоветовал посмотреть несколько учебных пособий для каждого и средства, которые можно встроить в ваше приложение, и просто выбрать тот, который лучше всего подходит вашему мозгу.

+1

К сожалению, у Python отсутствует реальная поддержка связывания «одного единственного исполняемого файла». Библиотеки DLL/so не могут легко статически компилироваться и связываться. LUA предотвращает проблему, не имея серьезной библиотеки вообще. – Lothar

+2

Civilization 5 переключился на Lua по соображениям производительности. – Jonas

7

Как правило, Lua - лучший выбор для встраивания в другой проект. Python лучше как автономная платформа, потому что поддержка библиотеки намного шире. См. Lua Versus Python для более подробной информации.

Лично я использую оба очень часто в зависимости от выполняемой работы. Я всегда использую Lua для встраивания в приложения C/C++ или функциональные возможности сценариев, которые импортируются из общих библиотек C/C++ (т. Е. DLL). Python всегда мой первый выбор для автономных задач, которые не требуют низкоуровневого кода C/C++.

1

Мне очень нравится Lua для встраивания, но в качестве другой альтернативы JavaScript легко встраивается в программы C, C++ (SpiderMonkey и V8) и Java (Rhino).

+0

+1 Правда, это еще один жизнеспособный вариант. Я бы рекомендовал это, если вы, или более правильно, ваши пользователи/сценаристы, скорее всего, уже это узнали. Одна вещь, о которой я забыл упомянуть в моем ответе выше, заключается в том, что, если вы не внедряете скриптовый движок для собственного использования, вы должны учитывать вероятные предпочтения и потребности тех, кто будет использовать интерфейс сценариев. –

+0

Саймон: Я не уверен, насколько я согласен с этим. Было время, когда все говорили, что хотят REXX в качестве языка расширения, и я не могу назвать одну программу, которую я видел с REXX за 10 лет. Я не знаю никого *, который попросил Lisp для своего редактора (даже программистов Lisp!), Но сейчас смотрите на Emacs. Javascript (грубо говоря «Схема с синтаксисом, подобным Java») изначально проносился над головами типичных людей, которые писали веб-страницы, но каким-то образом людям удалось настроить. Я думаю, если язык достаточно мощный, и пользователи хотят взломать вашу программу/платформу, тогда пользователи поймут это. – Ken

0

Я добавлю Tcl к смеси. Он разработан, чтобы легко встраиваться в другие программы.

1

В дополнение к Tcl, Lua и Javascript (все уже упомянутые), Guile - это другой язык, специально разработанный для этого.

Смежные вопросы