Каковы плюсы и минусы RemObjects PascalScript по сравнению со сценарием DWS?

Я планирую включить паскаль-скрипт в свое приложение. Для этого не требуется никакого веб-доступа, просто доступ к классам в моем приложении. Он должен быть быстрым (скомпилированным). Я вижу, что есть ряд доступных скриптов, некоторые из которых являются интерпретаторами, но среди компиляторов RemObjects скрипт Pascal и Delphi Web Script (DWS) кажутся мощными и активно используются.

Может ли кто-нибудь предложить преимущества одного над другим, пожалуйста? Спасибо


person Brian Frost    schedule 03.02.2011    source источник


Ответы (7)


Сводится к этому, имхо:

  • Delphi Web Script активно развивается.

  • PascalScript в значительной степени бездействует с точки зрения разработки и усовершенствований.

Тем не менее, DWS — это проект сообщества, который по сути разрабатывается одним (очень талантливым и компетентным) парнем. PascalScript поддерживается RemObjects.

Но: количество людей/размер организации, участвующих в разработке/поддержке продукта, не так важны, как эффективность и энтузиазм разработки и поддержки, которую они на самом деле оказывают.

В обоих случаях предоставляется исходный код, так что даже если «официальная поддержка» иссякнет, вы не потеряетесь полностью.

Насколько я понимаю, механизм DWS является более понятной реализацией, чем PascalScript, что может упростить «самоподдержку», хотя в таких случаях важно то, к чему вы привыкли (ранее я работал над совершенно другим механизмом сценариев, который я понимаю больше похож на DWS, чем на PascalScript).

Наконец, в настоящее время я работаю над проектом, в котором используется PascalScript, и на данном этапе намереваюсь как можно скорее перейти на DWS.

person Deltics    schedule 03.02.2011
comment
+1 Я бы склонялся к DWS из-за его активного и быстрого развития. - person David Heffernan; 04.02.2011
comment
Вы толкнули открытую дверь, спасибо. Я уже пробовал DWS и был очень впечатлен. Брайан. - person Brian Frost; 04.02.2011

Три основные причины, по которым я изначально выбрал DWS, заключались в следующем:

  1. в DWS вы можете/могли объявить в сценарии целые новые классы с наследованием, метаклассами и т. д. и не были ограничены теми классами, которые вы открыли/импортировали.
  2. более ограничительная модель раскрытия (скрипты могут получить доступ только к тому, что вы предоставляете), это позволяет использовать песочницу и безопасно завершать сценарии в любое время.
  3. более простая, более удобочитаемая структура исходного кода с простой моделью выполнения без байт-кода, которую сравнительно легче расширять, отлаживать и поддерживать.

Обратите внимание, что я практически вообще не использовал «веб»-сторону DWS.

person Eric Grange    schedule 21.03.2011
comment
+1 В настоящее время я использую DWS на нескольких веб-сервисах (: спасибо за вашу работу, Эрик!! - person ; 16.08.2011

Я использую Pascal Script от Rem Objects уже несколько лет и считаю его лучшим. Что касается документации, посмотрите руководства по программированию на Паскале. В сценарии нет странного синтаксиса или вызовов функций. Отвечая на приведенный выше ответ 0, нет необходимости в общедоступной документации, если вы знаете Delphi. Я не столкнулся ни с одним случаем, когда это было бы необходимо. Написано 2 статьи о том, как реализовать скриптинг в приложении. Как импортировать классы, методы и функции, а также несколько примеров. Для всего остального достаточно обычной документации Delphi. Однако для DWS необходимо иметь явную документацию, поскольку синтаксис полностью отличается. Необходимость использовать TProgramInfo и IInfo делает написание сценариев странным и утомительным.

Я использую Rem Objects Pascal Script для управления функциями IVR телефонных звонков, аналогично реализации порта Asterisk AGI. Где каждый входящий вызов Asterisk порождает сокет для моего сокета сервера. Обычно я запускаю до 2000 сценариев одновременно. Каждый скрипт загружается, компилируется и выполняется и может легко обрабатывать до 45 входящих вызовов в секунду. Каждый сценарий управляет ответом, воспроизведением файлов, сбором DTMf, записью и т. д. для всех вызовов. Извините за длинный ответ, но я не могу сказать достаточно о том, как хорошо работает Pascal Script. Спасибо Rem Objects и Карло Коку. Какой отличный продукт. Они могут не делать обновления активно, может быть, потому что в этом нет необходимости. Отлично работает!!! PS. Еще одна замечательная особенность заключается в том, что сценарии, скомпилированные в байт-код, не могут быть легко реконструированы. Поэтому ваш код в безопасности. Кроме того, при необходимости вы можете предварительно скомпилировать сценарии и выполнять их во время выполнения без последующей компиляции. Однако мне это было не нужно, потому что я могу справиться со многим. Может быть, когда-нибудь, надеюсь, мне нужно будет предварительно скомпилировать. Это означало бы, что мы обрабатываем гораздо больше, чем 45 в секунду.

person Ken Davis    schedule 28.05.2014

Возможно, рассмотрим третий вариант. Я знаю, что ОП специально спрашивал о PascalScript и DWS, но я бы рекомендовал посмотреть TMS Scripter Studio или TMS Scripter Studio Pro в качестве возможных решений. Вы получаете интерпретаторы как Pascal, так и BASIC, которые я смог использовать, когда конечный пользователь не заинтересован в изучении Pascal, но имеет опыт работы с VB.

person Cesar Marrero    schedule 03.02.2011
comment
Да, спасибо, у меня есть продукт TMS, и я его оценил. Как я уже сказал в своем посте, я не могу терпеть лень переводчика, но спасибо. - person Brian Frost; 04.02.2011
comment
@Brian: Вы тестировали интерпретаторы на скомпилированных скриптах? Все эти сценарии компилируются в байт-код и выполняются виртуальными машинами; в любом случае они не так быстры, как реальный скомпилированный скомпилированный код. - person Mason Wheeler; 04.02.2011
comment
+1 за каменщика. Измерьте и хорошо измерьте (с соответствующим кодом из вашего проекта, а не с холостыми циклами for) - person Marco van de Voort; 04.02.2011
comment
@Mason: Да, Мейсон, у меня есть, и ты прав, они быстрые. Просто недостаточно быстро для аппаратного приложения в реальном времени :-) - person Brian Frost; 04.02.2011
comment
@Brian: Ну, если вам нужно быстро, то DWS - явный победитель. - person Mason Wheeler; 05.02.2011

Вы говорите, что это должно быть быстро, а когда скорость имеет значение, вы не можете превзойти PaxCompiler. Это не бесплатно, но стоит задуматься. Набор функций уникален, и он активно развивается уже много лет.

person Daniel Maurić    schedule 04.02.2011

Самая большая проблема с Pascal Script заключается в том, что для самого языка отсутствует документация. И я имею в виду ноль. Существуют различные общие сайты Pascal, которые вроде как применимы, но, конечно, не совсем, и есть другие неполные специальные учебные пособия, созданные разными людьми. Но когда дело доходит до реальной исчерпывающей документации, это почти шутка. Чтобы написать несколько "продвинутых" скриптов для InnoSetup, мне пришлось просмотреть исходники и выяснить, что на самом деле делает компилятор.

Я думаю, что любой, кто рассматривает возможность использования Pascal Script, должен немедленно передумать. Без общедоступной документации это практически бесполезно. InnoSetup не должен использовать его, ИМХО, это такая боль, когда вы хотите делать простые вещи, для которых никто не удосужился написать учебник (пока).

person Kuba hasn't forgotten Monica    schedule 14.03.2013

Я использую tms scripter в течение 3 лет, и он отлично работает, хорошая документация, хорошая поддержка, постоянное развитие производителя, быстрый парсер, пользовательский интерфейс в сочетании - вот причины, по которым я выбираю это для нашего программного обеспечения bpms.

person dawood karimy    schedule 18.05.2015