Помогите выбрать скриптовый движок/язык
От: Left2 Украина  
Дата: 26.01.07 14:01
Оценка:
Господа эксперты, прошу совета.

Не уверен что сообщение соответствует тематике форума, но более подходящий форум выбрать не смог.

Вкратце, суть проблемы.
Есть некая разновидность HTA (HTML Application). Само приложение написано на Visual C++/ATL/WTL. На главном окошке приложения лежит MSHTML control, весь интерфейс написан на HTML, вся бизнес-логика — на JavaScript. Основное назначение приложения — создание документов (сами документы хранятся в XML) на основе HTML-форм.
В целом, основные требования к приложению сейчас удовлетворены:
1. Небольшой размер дистрибутива (за счёт того что никаких дополнительных библиотек с собой не таскается).
2. Лёгкость модификации — за счёт того что всё логика лежит в JavaScript и приложение отлаживается даже без перезапуска приложения.
3. Скорость написания новых форм для ввода данных — за счёт того что интерфейс делается на HTML (редакторов — море) а логика на JavaScript (простой и уже привычный, но при этом довольно мощный скриптовый язык, удобный отладчик в лице MS VC).

Но вот на горизонте замаячила миграция на Windows CE. Насколько показало небольшое исследование, портирование HTA на WinCE представляется крайне проблематичным (поправьте если не прав). В таком случае, есть идея переехать на более другие технологии. Понравилась идея HTMLayout — легковесный HTML-парсер с возможностью билда под CE. Опять же, рядом с ним идёт TIScript — практически тот же JavaScript c расширениями. Но с ним возникают след. проблемы:
1. Версия TIScript под CE планируется к выпуску, но пока не вышла. Даже если она выйдет в ближайшее время — не очень хочется связываться с самой первой версией продукта, поскольку буду первопроходцем по граблям.
2. Отладчика для TIScript, насколько я понял, сейчас нет и пока даже не планируется. Ко всему прочему очень хотелось бы иметь возможность удалённой отладки, т.е. отлаживать скрипт который запускается на CE-шном девайсе.

В принципе, к HTMLayout можно будет прикрутить любой другой скриптовый язык который прикручивается к C++. Посему, был бы рад если бы кто посоветовал скриптовый движок/язык со следующими характеристиками:

1. Легко прикручивающийся к C++ (если он будет как JScript срощен с COM — вообще было бы замечательно)
2. Кросплатформенный (хотя бы в плане Win32/WinCE, *nix — опционально)
3. Выразительный, но несложный в изучении (JavaScript в этом плане очень приятно порадовал)
4. С хорошо развитыми средствами отладки, желательно с возможностью удалённой отладки
5. Ну и там всякие вкусности типа документации-готовых примеров приложений и т.п. (в принципе, не так и обязательно, поскольку круг задач как правило довольно узок, форматировать винчестер и инвертировать матрицы мне не нужно, джаваскрипта с его стандартной библиотекой хватало за глаза).

Вроде бы всё
Заранее спасибо за ответы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Помогите выбрать скриптовый движок/язык
От: LaPerouse  
Дата: 26.01.07 23:37
Оценка: 7 (2)
Здравствуйте, Left2, Вы писали:

L>1. Легко прикручивающийся к C++ (если он будет как JScript срощен с COM — вообще было бы замечательно)

L>2. Кросплатформенный (хотя бы в плане Win32/WinCE, *nix — опционально)
L>3. Выразительный, но несложный в изучении (JavaScript в этом плане очень приятно порадовал)
L>4. С хорошо развитыми средствами отладки, желательно с возможностью удалённой отладки
L>5. Ну и там всякие вкусности типа документации-готовых примеров приложений и т.п. (в принципе, не так и обязательно, поскольку круг задач как правило довольно узок, форматировать винчестер и инвертировать матрицы мне не нужно, джаваскрипта с его стандартной библиотекой хватало за глаза).

L>Вроде бы всё

L>Заранее спасибо за ответы.


Python?

1. Прикручивается к С++ — легче некуда, ибо создавался с учетом интеграции с различными платформами, в т чс нативными реализациями. В случае С++ boost::python рулит. Просто и элементарно, по сравнению с JavaScript с его интеграцией через ацкий COM — просто песня.
2. Есть и на Win32, есть порт и на WinCE. К слову, и на многих *nix-ах имеется.
3. Легче некуда. При этом это, в отличие от JavaScript, полноценный ЯП. По языковым возможностям опережает многие "нескриптовые" языки
4. Прекрасные средства, не только для отладки, но и для разработки приложения в целом. Есть плагин для Eclipse => скорее всего поддерживается удаленная отладка (посольку Eclipse предоставляет для этого API).Хотя, последнее надо проверить.
5. Имеется полноценная документация + куча ресурсов в сети.
Социализм — это власть трудящихся и централизованная плановая экономика.
Re: Помогите выбрать скриптовый движок/язык
От: Zigmar Израиль  
Дата: 28.01.07 14:30
Оценка: 11 (2)
Здравствуйте, Left2, Вы писали:
L>1. Легко прикручивающийся к C++ (если он будет как JScript срощен с COM — вообще было бы замечательно)
L>2. Кросплатформенный (хотя бы в плане Win32/WinCE, *nix — опционально)
L>3. Выразительный, но несложный в изучении (JavaScript в этом плане очень приятно порадовал)
L>4. С хорошо развитыми средствами отладки, желательно с возможностью удалённой отладки
L>5. Ну и там всякие вкусности типа документации-готовых примеров приложений и т.п. (в принципе, не так и обязательно, поскольку круг задач как правило довольно узок, форматировать винчестер и инвертировать матрицы мне не нужно, джаваскрипта с его стандартной библиотекой хватало за глаза).
Я бы посмотрел на Lua. Это язык специально создавался как язык для встраивания и потому отличается следующими свойствами:
1) Очень маленький (~300кб С кода). В урезанном виде для эмебдед системы, мне удавалось довести откомпилированный размер до 15кб.
2) Очень быстрый. Register-based VM (в отличии от стековых, в большинству других скриптовых языков) даёт отличный перфоманс. Из за этого его, например, очень любят в качестве скриптового языка в играх.
3) Простой. В язык намеренно встроено минимум наворотов и фич, но язык очень гибкий и на нём можно делать всё что угодно от ООП до функционального программирования. По сути, это скорее скелет языка, который можно подогнать под свои нужды. Я например, в одном проекте, использовал как язык описания данных, с некими примочками вроде навешивания скриптовых событий и триггеров.
4) Переносимой. Написан на ANSI C и компилируется на всём что шевелится.
"To protect people you must slay people. To let people live you must let people die. This is the true teaching of the sword."
-Seijuro Hiko, "Rurouni Kensin"
Re: Помогите выбрать скриптовый движок/язык
От: Сергей  
Дата: 29.01.07 06:28
Оценка: 6 (1)
Здравствуйте, Left2, Вы писали:

>...


Ну, Lua здесь уже советовали. Главный его недостаток — с моей точки зрения — своеобразный синтаксис. Сейчас я использую Squirrel. В плане интеграции и внутреннего устройства похож на Lua, тоже написан на C. Синтаксис С-подобный, местами напоминает JavaScript. Есть возможность удаленной отладки.
Re[2]: Помогите выбрать скриптовый движок/язык
От: Left2 Украина  
Дата: 29.01.07 09:22
Оценка: +1
LP>Python?

LP>1. Прикручивается к С++ — легче некуда, ибо создавался с учетом интеграции с различными платформами, в т чс нативными реализациями. В случае С++ boost::python рулит. Просто и элементарно, по сравнению с JavaScript с его интеграцией через ацкий COM — просто песня.

LP>2. Есть и на Win32, есть порт и на WinCE. К слову, и на многих *nix-ах имеется.
LP>3. Легче некуда. При этом это, в отличие от JavaScript, полноценный ЯП. По языковым возможностям опережает многие "нескриптовые" языки
LP>4. Прекрасные средства, не только для отладки, но и для разработки приложения в целом. Есть плагин для Eclipse => скорее всего поддерживается удаленная отладка (посольку Eclipse предоставляет для этого API).Хотя, последнее надо проверить.
LP>5. Имеется полноценная документация + куча ресурсов в сети.

Спасибо. В целом, во многом перекликается с моими мыслями по этому поводу. Единственно насчёт чего несогласен так это насчёт того что JavaScript неполноценный язык программирования Очень даже полноценный, несмотря на минималистический дизайн.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Помогите выбрать скриптовый движок/язык
От: Left2 Украина  
Дата: 30.01.07 16:59
Оценка:
С>Ну, Lua здесь уже советовали. Главный его недостаток — с моей точки зрения — своеобразный синтаксис. Сейчас я использую Squirrel. В плане интеграции и внутреннего устройства похож на Lua, тоже написан на C. Синтаксис С-подобный, местами напоминает JavaScript. Есть возможность удаленной отладки.

Спасибо, пока что заинтересовало больше всего. Был бы рад услышать субьективные впечатления об опыте использования
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Помогите выбрать скриптовый движок/язык
От: c-smile Канада http://terrainformatica.com
Дата: 30.01.07 20:46
Оценка:
Здравствуйте, Zigmar, Вы писали:

Z>2) Очень быстрый. Register-based VM (в отличии от стековых, в большинству других скриптовых языков) даёт отличный перфоманс. Из за этого его, например, очень любят в качестве скриптового языка в играх.


Ну в общем-то никто толком не доказал что лучше stack-based VM или register-based VM.

Вот например:

We believe that the high cost of dispatches makes register machines attractive even
at the cost of increased loads.

здесь

для typeless машин может привести к противоположным результатам.

Кстати tiscript это mixed model: stack-VM с одним регисром (аккумулятор).

Ertl found that keeping the topmost stack item in a register reduced memory traffic for
stack items by about 50%.

здесь
Re[3]: Помогите выбрать скриптовый движок/язык
От: Left2 Украина  
Дата: 31.01.07 08:33
Оценка:
Рад видеть в этой теме Впрочем, инициатива наказуема TIScript мне тоже прекрасно подходит по всем параметрам (особенно по синтаксису) — кроме одного — отсутствие отладчика
Если не секрет — планируется ли в будущем поддержка отладки, особенно интересует отладка удалённая?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Помогите выбрать скриптовый движок/язык
От: c-smile Канада http://terrainformatica.com
Дата: 01.02.07 07:27
Оценка:
Здравствуйте, Left2, Вы писали:

L>Рад видеть в этой теме Впрочем, инициатива наказуема TIScript мне тоже прекрасно подходит по всем параметрам (особенно по синтаксису) — кроме одного — отсутствие отладчика

L>Если не секрет — планируется ли в будущем поддержка отладки, особенно интересует отладка удалённая?

Что подразумевается под "отладчиком"? Возможность поставить breakpoint и от него ходить?
Или что-то другое?
Re[3]: Помогите выбрать скриптовый движок/язык
От: Сергей  
Дата: 01.02.07 08:53
Оценка: 6 (1)
Здравствуйте, Left2, Вы писали:

L>Спасибо, пока что заинтересовало больше всего. Был бы рад услышать субьективные впечатления об опыте использования


Субъективные впечатления — сугубо положительные. Радует возможность управления всеми объектами движка из нативного кода. На баги не натыкался, разве что в его небольшой стандартной библиотеке есть недочеты в функциях работы со строками — они считают нулевой символ концом строки, в то время как в squirrel это совсем необязательно.
Недостатки его исходят из того, что он достаточно молодой и пока не очень-то популярен, поэтому нет редактора кода, более-менее готового отладчика, автоматических биндеров типа SWIG, биндингов существующих библиотек, и т.п., в то время как для Lua все это есть.
Re[5]: Помогите выбрать скриптовый движок/язык
От: Left2 Украина  
Дата: 02.02.07 09:01
Оценка:
L>>Рад видеть в этой теме Впрочем, инициатива наказуема TIScript мне тоже прекрасно подходит по всем параметрам (особенно по синтаксису) — кроме одного — отсутствие отладчика
L>>Если не секрет — планируется ли в будущем поддержка отладки, особенно интересует отладка удалённая?

CS>Что подразумевается под "отладчиком"? Возможность поставить breakpoint и от него ходить?

CS>Или что-то другое?

breakpoint, watches, немедленное исполнение кода и т.п. Вообщем, чем больше вкусностей, тем лучше
Очень нравится, к примеру, как Visual Studio отлаживает JavaScript/VBScript — единственное чего не хватает так это remote debugging.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Помогите выбрать скриптовый движок/язык
От: np9mi7 Россия  
Дата: 02.02.07 12:27
Оценка:
Здравствуйте, LaPerouse, Вы писали:

LP>Python?


LP>1. Прикручивается к С++ — легче некуда, ибо создавался с учетом интеграции с различными платформами, в т чс нативными реализациями. В случае С++ boost::python рулит. Просто и элементарно, по сравнению с JavaScript с его интеграцией через ацкий COM — просто песня.

LP>2. Есть и на Win32, есть порт и на WinCE. К слову, и на многих *nix-ах имеется.
LP>3. Легче некуда. При этом это, в отличие от JavaScript, полноценный ЯП. По языковым возможностям опережает многие "нескриптовые" языки
LP>4. Прекрасные средства, не только для отладки, но и для разработки приложения в целом. Есть плагин для Eclipse => скорее всего поддерживается удаленная отладка (посольку Eclipse предоставляет для этого API).Хотя, последнее надо проверить.
LP>5. Имеется полноценная документация + куча ресурсов в сети.

И ещё, на оффициальном сайте http://python.org/ большими буквами написано NASA uses Python...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Re: Помогите выбрать скриптовый движок/язык
От: Left2 Украина  
Дата: 20.01.08 18:45
Оценка: 5 (4)
Сорри что подымаю старую тему, но вдруг кому-то будет интересно чем всё закончилось

А закончилось всё тем что язык остался тем же — JScript. Выяснилось что Win Mobile 2003 (а на более старые версии можно смело забить, ибо их доля на рынке очень небольшая) поддерживает ActiveScripting версии 5.6, что соответсвует IE 5.5 и для моих целей его хватает выше крыши. К сожалению, отлаживать скрипты под WinMobile нельзя, но зато можно иметь два билда программы — под PC и под WinMobile, и отлаживаться по максимуму на PC. Скрипты при этом вообще не знают под какой системой работают.

Немного жаль что не удалось малой кровью поддержать Linux-платформы, ибо всё, похоже, идёт к тому что на рынке дешёвых ноутбуков и смартфонов у Linux-а есть хорошие шансы стать доминирующей платформой. Но в крайнем случае попробую переехать на SpiderMonkey, вроде бы при этом даже не прийдётся менять скрипты. А к тому времени, глядишь, и Linux-версия HTMLayout созреет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.