Как Вы используете язык сценариев (PHP, Python, и т.д.) для улучшения производительности?

Я - разработчик Delphi на платформе Windows, недавно читаю учебное руководство PHP в W3CSchools, это выглядит интересным.

Все мы знаем, что языки сценариев очень хороши в разработке веб-сайта, но я также хочу использовать ее, чтобы улучшить мою производительность или получить некоторые утомительные задачи, сделанные быстро, возможно, некоторая быстрая-и-грязная обработка строки/файла?

Что Вы обычно делаете с языками сценариев кроме разработки программного обеспечения? И нам нужен быстро реагирующий, достойный IDE/редактор для получения производительности при записи сценариев с этой целью?

14
задан DVK 10 April 2010 в 00:31
поделиться

9 ответов

Я расскажу вам, как я повысил свою продуктивность с помощью Python в Windows. Я просто пытаюсь писать все на Python - каждое приложение, которое мне нужно, если только я не знаю, что оно не масштабируется, и мне понадобятся более эффективные инструменты (в этом случае я лично использую C ++, но вы также можете использовать C # / Delphi).

Оказывается, что для большинства (> 95%) инструментов и утилит достаточно Python (в сочетании с PyQt для графического интерфейса пользователя), и для меня это гораздо более производительный язык, чем C ++. Главное - перестать думать о Python как о «языке сценариев». Это не в меньшей степени язык программирования, чем C ++ / Java / C # / Delphi / что вы скажете. У него есть свои сильные стороны и свои ограничения. Если вы знаете о них и знаете, как выбрать подходящий инструмент для работы, у вас все будет хорошо.

Вам не нужна специальная IDE. Я использую Scite для всего кода на Python (кстати, в Windows и Linux), и он отлично работает.

17
ответ дан 1 December 2019 в 07:06
поделиться

Итак, у меня есть часто использовал 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.

1
ответ дан 1 December 2019 в 07:06
поделиться

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

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

И, как кто-то упомянул, вы будете тренировать мускулы и познавать новый мир возможностей.

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

1
ответ дан 1 December 2019 в 07:06
поделиться
  1. Вы ОПРЕДЕЛЕННО можете помочь себе, автоматизируя множество задач с помощью языков сценариев.

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

    Лично я использую Perl как для быстрой автоматизации сценариев (использование 2%), так и для веб-разработки (использование 8%) и разработки корпоративного финансового программного обеспечения (оставшиеся 90%).

  2. Что касается примеров того, что вы можете сделать - ответ - «почти все» и во многом зависит от вашей типичной работы, которую нужно автоматизировать. Я использую Perl для вещей, связанных с файловой системой (организация файлов / очистка / переименование), для манипулирования содержимым файлов (Perl origin и один из самых сильных пакетов, все еще обрабатывающий текст) и различных отчетов («R» в Perl означает «Reporting») и для обработки различных данных, что слишком сложно сделать быстро в Excel.

    Обратите внимание, что Perl имеет чрезвычайно широкий набор библиотек (называемых модулями), доступных через CPAN, которые можно использовать для чего угодно, кроме поджаривания хлеба или путешествий во времени; а также многочисленные фреймворки для серьезной разработки программного обеспечения.

    Чтобы отразить ответ Python, Perl также можно использовать для графического интерфейса в Windows - я не буду здесь вдаваться в подробности, поскольку SO ведет очень обстоятельные обсуждения по этой теме, если вы решите использовать Perl.

  3. В качестве очень конкретного примера , иллюстрирующего вышеизложенное, последние 2 проекта, которые я сделал для себя, были системами индексации, которые индексировали имена файлов, метаданные и содержимое и обеспечивали способ поиска по индексу. Первым был локальный поиск кода (версия Google Code Search для бедняков), вторым - система управления коллекцией файлов для моих mp3 (я боюсь, что любое существующее программное обеспечение позволяет мне выполнять случайный поиск регулярных выражений по тегам. ключевые слова). Оба использовали серверную часть SQLite и Perl для индексирования и интерфейса. Второй конкретный пример - это двухстрочный подсчет количества голосов, которые я получил за определенный тег в StackOverflow:)

  4. Вы получите большую выгоду от хорошей IDE или просто редактора программирования для ЛЮБОГО программирования, включая сценарии. В Windows вы можете использовать Notepad ++ или UltraEdit или многие другие - у SO должен быть где-то список. Любой редактор с "intellisense" (интеллектуальное завершение работы) получает преимущество.

11
ответ дан 1 December 2019 в 07:06
поделиться

Языки сценариев могут быть очень мощными. Вот как, на мой взгляд, 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 .

3
ответ дан 1 December 2019 в 07:06
поделиться

Короткий ответ: вы можете делать много вещей с помощью скриптовых языков - но вы все еще можете называть это программированием или разработкой программного обеспечения.

Но, отвечая на ваш вопрос, то, что я нахожу наиболее полезным в моей работе, для повышения производительности, это множество сценариев shell/perl/python.

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

Некоторые ключевые слова для подсказки: shell scripting, регулярные выражения, форматирование вывода.

Спасибо

2
ответ дан 1 December 2019 в 07:06
поделиться

Итак, вы, вероятно, уже поняли, что с помощью скриптового языка вы будете выполнять определенные задачи гораздо быстрее (а что касается слова скриптинг: Я просто больше не считаю его уничижительным, скорее наоборот). Черт возьми, у меня есть несколько друзей (случайно ставших программистами только на Delphi), которые все еще используют Delphi для выполнения некоторых разовых задач, поиска в текстовых файлах и т.д., тратя часы на написание классов и форм Delphi, компиляцию снова и снова, вместо того, чтобы за пару минут написать однострочные фразы на Python/Ruby/Perl.

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

BTW, когда я говорю "при правильном выборе", я настоятельно рекомендую выбрать правильно разработанный язык с мощными концепциями функционального программирования. Так что я бы действительно пропустил PHP и выбрал Python или Ruby.

2
ответ дан 1 December 2019 в 07:06
поделиться

я пользователь TextMate и активно разрабатываю расширения ("bundles") для него для собственного использования на php, ruby и javascript.

1
ответ дан 1 December 2019 в 07:06
поделиться

Как пользователь Windows / Linux 50/50 на работе, python особенно полезен, поскольку почти все, что я пишу, является кроссплатформенным, а также потому, что Windows не поддерживает У меня действительно нет очень полезного языка оболочки. С pyqt я могу создать довольно впечатляющий графический интерфейс всего за несколько часов. Я почти уверен, что в ближайшие несколько лет питон захватит мир.

1
ответ дан 1 December 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: