Для многих задач, которые я должен выполнить, мне приходится выбирать между созданием программы с использованием Shell Script в Linux или языком программирования, таким как Java или Groovy. Кто-нибудь знает, как я должен выбирать один за другим и почему?Сценарий оболочки и язык программирования
ответ
Сценарии оболочки отлично подходят для сжатых операций с файловой системой и создают комбинацию существующей функциональности в фильтрах и инструментах командной строки через каналы.
Когда ваши потребности больше - будь то функциональность, надежность, производительность, эффективность и т. Д. - тогда вы можете перейти на более полнофункциональный язык. Они, как правило, предлагают некоторую комбинацию:
- безопасность типа
- более продвинутых контейнеры
- лучшего контроля над переменной жизнью и использованием памятью
- многопоточной
- передового IPC как разделяемая память и TCP/IP
- полные возможности двоичного ввода-вывода, доступ к файлам с памятью и т. Д.
- Доступ к API-интерфейсам ОС и множеству мощных библиотек
- лучше читаемость и ремонтопригодность по мере увеличения размера проекта
- поддержки более продвинутых парадигмы программирования: объектно-ориентированный подход, функциональное программирование, порождающее программирование и т.д.
- лучше проверки ошибок перед вашей программой начинают работать, следовательно, в меньшей степени зависит от теста case
Сценарий оболочки - это самый интуитивный способ иметь «клей» в вашей системе. Тем не менее, у него нет некоторых полезных понятий, таких как наследование и модуляция, что языки, такие как Python (которые тоже очень привыкли к «клеить») тоже.
Правда, использование языка зависит в основном от задачи, которую вы пытаетесь сделать. В большинстве случаев я работал, сценарий оболочки работал хорошо, хотя я использую много Python для выполнения связанных с системой задач. Я не думаю, что Java будет альтернативой в этом случае. Вероятно, Groovy был бы, но не Java (я имею в виду Java как язык, а не Java как платформу).
В представлении sysadmin, я думаю, Python и Ruby - это удивительные языки. Не только из-за динамической типизации и отсутствие необходимости компилировать, а потому, что такие инструменты, как Fabric, Capistrano, Puppet, и много других, что делает жизнь сисадмина намного проще :-)
@Tony обеспечивает отличный список плюсов и минусов. Я бы добавил еще один общий сценарий - shell-скрипты, потому что он настолько удобен, что может показаться, что «нет ничего более продолжительного, чем временное решение», характерного для всех сопутствующих проблем обслуживания, когда кому-то еще нужно его использовать.
- 1. Язык программирования оболочки
- 2. Windows API против оболочки UNIX (equiv?) - Или - Когда язык программирования - это язык, а не сценарий?
- 3. Первый язык программирования для интерактивной оболочки?
- 4. Преобразование сценария оболочки в язык программирования C#
- 5. Язык программирования и компилятор
- 6. Язык программирования веб-программирования
- 7. Язык программирования программирования RISC
- 8. Язык GAMMA, язык химического программирования
- 9. Моделирование и моделирование Язык программирования
- 10. C++ язык программирования и школа
- 11. Язык программирования MCTS и обман
- 12. Быстрый и простой язык программирования
- 13. Sql Язык программирования
- 14. Какой язык программирования?
- 15. Сценарий программирования C# и определение
- 16. Тестовый сценарий оболочки оболочки
- 17. Сценарий оболочки, который пишет сценарий оболочки
- 18. Какой язык программирования он есть?
- 19. Язык программирования vs javascript?
- 20. Язык программирования для сети
- 21. Последовательный язык программирования?
- 22. Язык программирования NesC
- 23. E язык программирования - обзор
- 24. Схема Язык программирования
- 25. Язык программирования Automata
- 26. java язык программирования
- 27. Какой язык программирования выбрать?
- 28. Необходим правильный язык программирования
- 29. Язык программирования Med-PC
- 30. Создайте язык программирования JVM
Главным преимуществом программирования по сценарию IMHO является скорость выполнения. Если у меня есть небольшая задача для выполнения, я склонен использовать сценарии, тогда как я не буду писать веб-сервер в сценарии Bash ... – eckes
Мой опыт в том, что арифметика (кроме i + 1) и работа с структурами данных действительно больно в сценарии оболочки. Поэтому всякий раз, когда вы должны использовать их, я бы пошел на «настоящий» язык. –
Написание сценария оболочки * это * программирование. sh * - это язык программирования. –