Я - разработчик Delphi на платформе Windows, недавно читаю учебное руководство PHP в W3CSchools, это выглядит интересным.
Все мы знаем, что языки сценариев очень хороши в разработке веб-сайта, но я также хочу использовать ее, чтобы улучшить мою производительность или получить некоторые утомительные задачи, сделанные быстро, возможно, некоторая быстрая-и-грязная обработка строки/файла?
Что Вы обычно делаете с языками сценариев кроме разработки программного обеспечения? И нам нужен быстро реагирующий, достойный IDE/редактор для получения производительности при записи сценариев с этой целью?
Я расскажу вам, как я повысил свою продуктивность с помощью Python в Windows. Я просто пытаюсь писать все на Python - каждое приложение, которое мне нужно, если только я не знаю, что оно не масштабируется, и мне понадобятся более эффективные инструменты (в этом случае я лично использую C ++, но вы также можете использовать C # / Delphi).
Оказывается, что для большинства (> 95%) инструментов и утилит достаточно Python (в сочетании с PyQt для графического интерфейса пользователя), и для меня это гораздо более производительный язык, чем C ++. Главное - перестать думать о Python как о «языке сценариев». Это не в меньшей степени язык программирования, чем C ++ / Java / C # / Delphi / что вы скажете. У него есть свои сильные стороны и свои ограничения. Если вы знаете о них и знаете, как выбрать подходящий инструмент для работы, у вас все будет хорошо.
Вам не нужна специальная IDE. Я использую Scite для всего кода на Python (кстати, в Windows и Linux), и он отлично работает.
Итак, у меня есть часто использовал Python для создания прототипов решений для различных задач программирования (хорошо получить алгоритм прямо перед реализацией со всеми прибамбасами на каком-то другом языке программирования), и я использовал сценарии оболочки BASH для автоматизации множества задач (например, запуск программы на нескольких разных наборах входных данных, сохранение результатов, подключение к grep и другим утилитам и т. д.).
Когда дело доходит до скуки, я настоятельно рекомендую BASH. Вы можете получить его в Windows, установив Cygwin. Например, на различных курсах я часто делаю что-то вроде следующего:
for i in {1..10} ; do ./process_data input-$i.txt | tee result-$i.transcript done
Вам не нужен хороший редактор ... любой текстовый редактор подойдет. Тем не менее, если вы ищете хороший редактор Python, Eclipse с PyDev вполне подойдет. Лично я просто использую Xcode в качестве редактора кода общего назначения для всего ... даже если он на самом деле ничего не дает для сценариев оболочки Python или BASH ... конечно, у вас нет Xcode в Windows. Однако вы можете использовать Notepad ++, Notepad или Wordpad.
Я использую языки сценариев, чтобы делать много pre / post обработка данных. Маленький или большой.
Почти все языки сценариев имеют превосходную / быструю обработку файлов, текста, графики и т.д. И очень, очень просто, без массы кода котла и этапа компиляции.
И, как кто-то упомянул, вы будете тренировать мускулы и познавать новый мир возможностей.
Я перескакиваю с одного языка сценариев на другой, иногда смешиваю их, просто чтобы сделать то, что я хочу, быстрее. Я бесстрашен, зная, что ты можешь делать все, что только можешь думать. Если вы не можете, то всегда есть stackoverflow, и чем больше языков (тег, не зависящий от языка) вы можете принять в качестве решения, тем быстрее (и обычно лучше) вы его получите.
Вы ОПРЕДЕЛЕННО можете помочь себе, автоматизируя множество задач с помощью языков сценариев.
Обратите внимание: некоторые из этих «скриптовых» языков - например, Perl - на самом деле являются очень мощными языками разработки программного обеспечения общего назначения, которые случайно были названы «скриптовыми» , потому что их первоначальная ниша и / или происхождение были сценарии (и потому, что с ними легко создавать простые сценарии).
Лично я использую Perl как для быстрой автоматизации сценариев (использование 2%), так и для веб-разработки (использование 8%) и разработки корпоративного финансового программного обеспечения (оставшиеся 90%).
Что касается примеров того, что вы можете сделать - ответ - «почти все» и во многом зависит от вашей типичной работы, которую нужно автоматизировать. Я использую Perl для вещей, связанных с файловой системой (организация файлов / очистка / переименование), для манипулирования содержимым файлов (Perl origin и один из самых сильных пакетов, все еще обрабатывающий текст) и различных отчетов («R» в Perl означает «Reporting») и для обработки различных данных, что слишком сложно сделать быстро в Excel.
Обратите внимание, что Perl имеет чрезвычайно широкий набор библиотек (называемых модулями), доступных через CPAN, которые можно использовать для чего угодно, кроме поджаривания хлеба или путешествий во времени; а также многочисленные фреймворки для серьезной разработки программного обеспечения.
Чтобы отразить ответ Python, Perl также можно использовать для графического интерфейса в Windows - я не буду здесь вдаваться в подробности, поскольку SO ведет очень обстоятельные обсуждения по этой теме, если вы решите использовать Perl.
В качестве очень конкретного примера , иллюстрирующего вышеизложенное, последние 2 проекта, которые я сделал для себя, были системами индексации, которые индексировали имена файлов, метаданные и содержимое и обеспечивали способ поиска по индексу. Первым был локальный поиск кода (версия Google Code Search для бедняков), вторым - система управления коллекцией файлов для моих mp3 (я боюсь, что любое существующее программное обеспечение позволяет мне выполнять случайный поиск регулярных выражений по тегам. ключевые слова). Оба использовали серверную часть SQLite и Perl для индексирования и интерфейса. Второй конкретный пример - это двухстрочный подсчет количества голосов, которые я получил за определенный тег в StackOverflow:)
Вы получите большую выгоду от хорошей IDE или просто редактора программирования для ЛЮБОГО программирования, включая сценарии. В Windows вы можете использовать Notepad ++ или UltraEdit или многие другие - у SO должен быть где-то список. Любой редактор с "intellisense" (интеллектуальное завершение работы) получает преимущество.
Языки сценариев могут быть очень мощными. Вот как, на мой взгляд, Lua повышает мою продуктивность:
Центральными данными является ассоциативный массив (изменяемая хеш-таблица). Реализация Lua чрезвычайно эффективна и хорошо обслуживает хэш, таблицу, набор и список.
Обработка строк находится в отличном месте: она почти такая же мощная, как регулярные выражения, и намного более читаема. Экранирующий символ шаблона %
отличается от строкового escape-символа \
. «Шаблон с захватом» Lua проще, чем регулярные выражения POSIX, и намного проще, чем регулярные выражения Perl, и он удовлетворяет 90% моих потребностей в сканировании строк. Великолепный образец инженерного дизайна.
Эти две функции охватывают основные данные. Вдобавок к этому,
Таблица - единственный изменяемый тип, упрощающий анализ программ.
В Lua есть первоклассные вложенные функции, поэтому вся мощь функциональной парадигмы доступна, если она вам нужна, но если вы ее не используете, вы не платите.
Lua имеет встроенную конструкцию итерации, родную для языка, которая подходит для итерации по коллекциям, файловым системам и т. Д. Намного лучше, чем иметь какой-нибудь «объект-итератор» с «методами итератора». Итерация достаточно важна, чтобы я получил большую пользу от посвященной ей языковой конструкции (общий цикл for
).
Язык настолько прост, что после скромного изучения я понимаю все его.
Существует молниеносная интерактивная реализация.
При необходимости я могу импортировать любую существующую библиотеку C в Lua.
Стандартные библиотеки Lua удовлетворяют большинство моих потребностей, оставаясь при этом достаточно маленькими, чтобы быть понятными. Если мне нужна специальная библиотека (XML, HTTP, синтаксический анализ), она, как правило, уже доступна и достаточно проста для понимания.
Опять же, при необходимости, я могу легко расширить свои собственные типы данных.
Я обнаружил, что использую Lua для всех задач, которые раньше выполнял с sh, awk, sed, perl и другими. Я также считаю, что в 90% случаев я могу написать простую и полезную программу на Lua намного быстрее, чем простую и полезную программу на C. (Остальные 10% - это когда я в основном выполняю системные вызовы.)
Хотя я сбился со счета количества языков, которые я хорошо знаю (написано более 10 000 строк кода), в наши дни почти все мои потребности удовлетворяются всего тремя:
Lua почти для всех легких программ, включая быструю и грязную обработку строк / файлов, о которой вы упоминаете
C для обучения (потому что я должен обучать C)
Haskell для создания прототипов (и иногда реализации) сложных или больших систем, особенно компиляторов
I ' Мы также использовали смесь Lua и C для некоторых довольно важных приложений, таких как nbibtex и noweb 3 .
Короткий ответ: вы можете делать много вещей с помощью скриптовых языков - но вы все еще можете называть это программированием или разработкой программного обеспечения.
Но, отвечая на ваш вопрос, то, что я нахожу наиболее полезным в моей работе, для повышения производительности, это множество сценариев shell/perl/python.
Я думаю, что наиболее распространенное использование скриптов - это различные виды отчетов (в широком смысле), Скажем, если у вас есть лог-файл и вы хотите получить определенную информацию (или какую-то статистику), скрипт может помочь вам достичь этого за очень короткое время.
Некоторые ключевые слова для подсказки: shell scripting, регулярные выражения, форматирование вывода.
Спасибо
Итак, вы, вероятно, уже поняли, что с помощью скриптового языка вы будете выполнять определенные задачи гораздо быстрее (а что касается слова скриптинг: Я просто больше не считаю его уничижительным, скорее наоборот). Черт возьми, у меня есть несколько друзей (случайно ставших программистами только на Delphi), которые все еще используют Delphi для выполнения некоторых разовых задач, поиска в текстовых файлах и т.д., тратя часы на написание классов и форм Delphi, компиляцию снова и снова, вместо того, чтобы за пару минут написать однострочные фразы на Python/Ruby/Perl.
Но я думаю, что есть еще более важная вещь (при правильном выборе): вы узнаете новые концепции программирования. Вы будете расти как программист. Вы перерастете эту старую точку зрения "у вас есть молоток, поэтому все выглядит как гвоздь". Вы снова научитесь дышать.
BTW, когда я говорю "при правильном выборе", я настоятельно рекомендую выбрать правильно разработанный язык с мощными концепциями функционального программирования. Так что я бы действительно пропустил PHP и выбрал Python или Ruby.
я пользователь TextMate и активно разрабатываю расширения ("bundles") для него для собственного использования на php, ruby и javascript.
Как пользователь Windows / Linux 50/50 на работе, python особенно полезен, поскольку почти все, что я пишу, является кроссплатформенным, а также потому, что Windows не поддерживает У меня действительно нет очень полезного языка оболочки. С pyqt я могу создать довольно впечатляющий графический интерфейс всего за несколько часов. Я почти уверен, что в ближайшие несколько лет питон захватит мир.