Что лучше выбрать для небольших задач — скрипты или скомпилированный код?

StackOverflow https://stackoverflow.com/questions/54703

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

Другие шляпы я ношу не слишком часто, при каких обстоятельствах мне следует предпочесть написание сценариев написанию скомпилированного кода?

Это было полезно?

Решение

Все, что вы думаете, будет для вас наиболее эффективным!

У меня был коллега, который, казалось, использовал разные языки для каждой задачи;Perl для быстрой обработки текста, PHP для небольших внутренних веб-приложений, .NET для нашего основного продукта, cygwin для файловой системы.Он предпочитал использовать технологию, которая наиболее соответствовала поставленной задаче.

Лично я считаю, что переключение контекста между технологиями болезненно.Моя повседневная работа связана с .NET, так что я примерно так и думаю.Я считаю, что для большинства задач более эффективно создать что-то на C# с помощью SnippetCompiler, чем хакать в PowerShell или среде сценариев.

Другие советы

Если вы хорошо разбираетесь в Java и JRE повсюду, где вы работаете, я бы посоветовал продолжать ее использовать.Однако существуют языки, такие как Perl и Python, которые особенно подходят для быстрого решения проблем.Я бы предложил изучить Perl или Python, а затем решить, когда его использовать, на свое усмотрение.

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

Я бы сказал, где это имеет смысл.Если вам понадобится больше времени, чтобы открыть вашу IDE, скомпилировать скрипт и т. д.чем редактировать файл сценария и покончить с ним, чем использовать файл сценария.Если вы не собираетесь часто что-то менять и быстрее кодируете на Java, тогда идите по этому пути :)

Обычно писать сценарии быстрее, чем скомпилированные программы.Вам не нужно так сильно беспокоиться о переносимости между различными платформами и средами.Сценарий оболочки будет работать практически везде на большинстве платформ.Поскольку вы разработчик Java и упоминаете, что у вас есть Java везде, где вы можете посмотреть groovy (http://groovy.codehaus.org/).Это язык сценариев, написанный на Java, с возможностью использования Java-библиотек.

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

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

Если вы можете написать это на Java быстрее, дерзайте.

Просто попытайтесь понять, на что способны различные языки сценариев.

напримерНе создавайте полноценное Java-приложение, если вы можете сделать то же самое с помощью однострочника bash.

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

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

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

В конце концов, это вопрос, на который только вы можете ответить себе.Учитывая тот факт, что вы сказали: «Я не вижу причины, по которой я бы когда-либо решил использовать сценарии оболочки, ...», то, вероятно, вам никогда не следует выбирать это прямо сейчас.

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

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

Поскольку вы уже знаете Java, вы можете попробовать языки JVM, такие как Groovy, JRuby, BeanShell и т. д.Scala имеет гораздо более простой синтаксис, чем Java, имеет REPL, статически типизирован и работает на JVM — вы тоже можете попробовать это сделать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top