В чем разница между «сценарием» и «приложением»? - PullRequest
33 голосов
/ 19 сентября 2008

Я имею в виду различия, такие как этот ответ :

... bash не для написания приложений, а для сценариев. Так что в вашем приложении могут быть некоторые служебные сценарии, но не пишите critical-business-logic.sh, потому что для таких вещей лучше использовать другой язык.

Как программист, работавший на многих языках, это похоже на C, Java и другие снобизированные языки. Я не ищу подкрепления своего мнения или волнообразных ответов. Скорее, я действительно хочу знать, на какие технические различия идет речь.

(И я использую С в своей повседневной работе, поэтому я не просто защищаюсь.)

Ответы [ 20 ]

2 голосов
/ 22 июля 2010

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

Программа:

Набор инструкций, которые будут скомпилированы, называется Программой.

Сценарий:

Набор инструкций, которые будут интерпретироваться, называется Script.

1 голос
/ 01 марта 2012

А как же:

Сценарий:

A script - это текстовый файл (или набор текстовых файлов) программных операторов, написанных на языке, который позволяет интерпретировать отдельные операторы, написанные на нем, в машинный исполняемый файл code непосредственно перед каждый выполняется и с целью этого происходит .

Применение:

Приложение - это любая компьютерная программа, основная функциональность которой заключается в предоставлении услуг человеку-актеру.

Программа на основе сценария, написанная на языке сценариев, следовательно, теоретически может изменять свои текстовые утверждения во время выполнения сценария (конечно, с большим риском). Аналогичная ситуация для скомпилированных программ - переворачивание битов в памяти.

Кто-нибудь принимает? :)

1 голос
/ 16 января 2009

Приложение большое и будет многократно использоваться людьми и, возможно, продано клиенту.

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

1 голос
/ 19 сентября 2008

Взяв в качестве примера perl, вы можете писать сценарии perl или приложения perl.

Под сценарием подразумевается один файл или одно пространство имен. (например, updateFile.pl).

Приложение должно быть чем-то, состоящим из набора файлов или пространств / классов имен (например, разработанное OO приложение perl со многими файлами модулей .pm).

1 голос
/ 19 сентября 2008

Лично я думаю, что разделение - это шаг назад от фактической реализации.

По моей оценке, планируется заявка . У этого есть многократные цели, у этого есть многократные результаты. Существуют задачи, отложенные во время разработки, до написания кода, которому должно соответствовать приложение.

Сценарий, однако, просто составлен в виде костюмов, и в нем мало планирования.

Отсутствие надлежащего планирования, однако, не понижает вас до сценария. Возможно, это делает ваше приложение плохо организованной коллекцией плохо спланированных скриптов.

Более того, приложение может содержать сценарии, которые объединяются в единое целое. Но скрипт может ссылаться только на приложение.

0 голосов
/ 27 октября 2016

Я думаю, что совершенно неважно, скомпилирован или интерпретирован код.

Истинная разница в основной логике кода:

  • Если код создает новые функциональные возможности, которые не реализованы в других программах системы - это программа. Это даже можно манипулировать с помощью сценария.

  • Если код ОСНОВНО манипулирует действиями других программ, а суммарный результат в основном является результатом работы манипулируемых программ - это скрипт Буквально скрипт действий для некоторых программ.

0 голосов
/ 24 февраля 2015

@ Джефф ответил хорошо. Мое любимое объяснение

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

Большая проблема здесь заключается в том, что "сценарии" довольно расплывчаты обозначение - это язык, на котором удобно писать в сценарии, в отличие от написания "полномасштабных программ" (или Приложения). Но как отличить сложный сценарий от простое приложение? Это принципиально неопровержимый вопрос. Как правило, сценарий представляет собой серию команд, применяемых к некоторому набору данные, возможно, в определенном пользователем порядке ... но тогда можно растянуть это описание, чтобы применить к Photoshop, который явно является основным приложение. Скрипты, как правило, меньше, чем приложения, делают некоторые четко определенные вещи и «проще» в использовании, и, как правило, могут разложить на четкую серию подопераций, но все они все субъективно.

Ссылка от здесь .

0 голосов
/ 19 сентября 2008

Язык сценариев не имеет стандартной библиотеки или платформы (или не очень много). Это маленький и легкий, предназначенный для встраивания в более крупное приложение. Bash и Javascript - отличные примеры языков сценариев, потому что они полностью полагаются на другие программы в своей функциональности.

Используя это определение, скрипт представляет собой код, предназначенный для управления большим приложением (набором). Javascript может вызывать Firefox, чтобы открывать окна или манипулировать DOM. Сценарий Bash выполняет существующие программы или другие сценарии и связывает их вместе с каналами.


Вы также спрашиваете, почему не языки сценариев, поэтому:

Существуют ли какие-либо инструменты модульного тестирования для языков сценариев? Это кажется очень важным инструментом для «настоящих» приложений, который полностью отсутствует. И редко бывают настоящие библиотечные привязки для языков сценариев.

В большинстве случаев скрипты можно было бы заменить на настоящий, легкий язык, такой как Python или Ruby.

0 голосов
/ 19 сентября 2008

Я бы сказал, что сценарий - это обычно набор команд или инструкций, написанных простым текстом , которые выполняются приложением хоста (браузер, интерпретатор команд или оболочка, ... ).

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

0 голосов
/ 19 сентября 2008

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

...