Подтвердить что ты не робот

Когда использовать скриптовый язык?

Когда нужно использовать язык сценариев над более подробным, скомпилированным языком, например С++. С# или Java?

И чтобы задать вопрос немного интереснее, ответьте на следующие вопросы:

Вы должны использовать язык сценариев, когда... BLANK...

Когда вам нужен язык сценариев использования X.

Когда вам нужно использовать язык сценариев Y.

Когда вам нужно C использовать язык сценариев Z.

4b9b3361

Ответ 1

Вы должны использовать язык сценариев, когда скорость разработки важнее скорости выполнения.

Ответ 2

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

Этот шаблон можно использовать, если вы хотите легко настроить часть вашего приложения.

Ответ 3

Это немного религиозный вопрос. Я использую язык сценариев для специальных задач, например:

  • поиск определенного элемента в журнале из десяти тысяч строк
  • Создание графика производительности
  • Сокращение данных - преобразование текстового файла в необходимый формат
  • Получение определенного подмножества данных из базы данных и упаковка его в виде текстового файла

Все это также можно выполнить на скомпилированном языке, но для меня быстрее и проще выполнять их на языке сценариев (я использую ruby, но PERL и python - все в порядке).

Ответ 4

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

Однако в эти дни линия между "scripting" и "compiled" становится размытой, с такими языками, как groovy и ruby. Для задачи, упомянутой выше, я буду использовать ruby, но затем я также буду использовать ее для создания веб-приложения с рельсами. Я напишу настольные приложения в java, но groovy позволяет мне смешивать скрипты. Даже при написании на C/С++ я нашел полезную модель для внедрения языка сценариев, специфичных для домена (например, tcl, хотя мне не очень нравится этот язык).

Фактический выбор языка - это, я думаю, религиозный выбор, хотя есть некоторые компромиссы, которые очевидны (читаемость, например, perl полезна, но слишком легко писать криптографические скрипты. В некотором смысле это "писать" "только" язык:-). Раньше я использовал bash + awk + sed, некоторые perl, ruby ​​и т.д. И т.д.... Для одних задач это в основном зависит от того, с чем вам и остальной команде нравится. Я делаю сознательный выбор, чтобы использовать Ruby в эти дни, даже если бы я немного быстрее сделал то же самое в bash/awk/sed, но это только для того, чтобы улучшить мои рубиновые навыки, выполняя как можно больше задач.

Ответ 5

Здесь моя иерархия:

Попробуйте использовать grep.

Если вы не можете сделать это с помощью grep, используйте sed.

Если sed недостаточно мощный, используйте awk.

Если awk недостаточно мощный (или начинает выглядеть очень неприятно), используйте C, С++ или другой полномасштабный язык программирования общего назначения по вашему выбору.

Обратите внимание, что между awk и C. нет "языка сценариев". Это специально.

Ответ 6

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

Есть случаи, когда вы смешиваете скомпилированные языки со скриптовыми языками - например, в некоторых играх. Это полезно сделать, когда вы можете выразить меньшее количество действий быстрее, чище и проще на языке сценариев, чем на скомпилированном языке. С++, например, является очень выразительным языком, но стоимость его разработки выше, чем, скажем, lua.

Ответ 7

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

Конечно, языки сценариев:

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

Контракты:

  • Это с открытым исходным кодом - каждый может видеть ваш код и может использовать ваши знания в своих конкурирующих продуктах...
  • Это медленно во время выполнения...

Ответ 8

Я использую язык сценариев для обработки данных и отправлю их в базу данных как задание cron. Это проще, потому что я могу легко установить их с помощью планировщика окон или crontab в unix, и мне легче писать из-за некоторых ключевых функций, таких как regex в perl.

Плюс миллионы модулей, которые доступны для меня из CPAN...

Ответ 9

Используйте язык сценариев, когда важна интерактивная операция, например. командной строки, или вы экспортируете функциональность для других пользователей для использования в простых операциях. (Им не нужно компилировать, скриптов достаточно)

Ответ 10

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