Есть ли веская причина для тех, кто знает, что Python изучает Perl? [закрыто]
Чтение ответов на Python против Perl через десять лет здесь, на SE, большинство людей, похоже, говорят, что идут с Python. Я согласен (извините поклонников Perl ;-)). Я уже знаю Python, и я думаю, что это очень хороший язык, конечно, поскольку любой язык программирования, который он делает , имеет свои недостатки, но когда я пробовал Perl, мне просто не понравилось почти столько же как мне понравился Python.
Я «знаю» C, Python, Java и Scheme и играю с несколькими другими языками. Теперь, есть ли веская причина для изучения Perl? Что такое Perl «лучше», чем Python?
Я занимаюсь разработкой приложений и изучаю некоторые разработки систем (в основном, для ядра Linux).
Я почти уверен, что Perl существенно не отличается от того, что я знаю так далеко, чтобы слишком сильно расширить мой ум (я бы, вероятно, сделал бы это лучше, сосредоточившись на Haskell, Scala, Forth или что-то в этом роде для этой цели).
8 ответов
Через десять лет по переулку будет аналогичный вопрос: «Есть ли веская причина для тех, кто знает язык X, чтобы узнать Python» или «Что такое Python» лучше, чем язык X »? Другими словами, внутри цикла рекламы это похоже на то, что определенная технология может оставаться в течение длительного времени. Я остановлюсь на этом.
Поскольку вы специально спросили, что лучше Perl, чем Python, я дам вам следующий список.
- Обработка текста.
- Расширенная обработка текста различных типов. Граммары и т. Д.
- Больше сильных синтаксических конструкций. Интеллектуальное сопоставление заданных циклов, Devel :: Declare, TIMTOWDI, фильтры и т. Д.
- Очень мощная объектная система, такая как Moose (Moosex-Declare с сахаром).
- CPAN.
- Сообщество и ресурсы, такие как PerlMonks.
- Свобода, сила и гибкость.
- Быстрые темпы развития. Ничто не становится быстрее, чем Perl, если вы его знаете правильно.
- Конфигурация по Конвенции.
- Мощные функции функционального программирования.
- Быстрый, грязный скриптинг и прототипирование.
- Тяжелая работа.
- Perl получает видимость лучше, чем Python.
- Не нарушает совместимость.
- Хорошие веб-рамки для классных детей.
- лаконичности.
- Быстрее.
- С лучшими практиками его ад намного лучше, чем Python из-за вышеупомянутых функций.
- Психология Perl.
- Ссылки.
- Последние достижения, такие как сменные ключевые слова синтаксиса и ключевые слова «статические».
и т. д. и т. д. список будет продолжаться и далее ...
Python полностью заставляет вас думать одним способом, Perl дает вам свободу быть тем, кем вы являетесь. Подумав разными способами, вы в конечном итоге начинаете думать о лучших способах решения проблемы. Это помогает в развитии хорошей проницательности программирования.
Я программист Python и Perl. Я до сих пор не нашел, как Python лучше, чем Perl. Выглядит аккуратно, не означает его аккуратный
Как сказал Лео Тостой.
Удивительно, насколько полно иллюзия, что красота - это доброта.
Как что-то вроде поклонника Perl, изучите его, если вам действительно нужно что-то сделать на Perl (ваша работа работает с Perl или вам нужно работать с системой с Perl, и вы не можете установить Python по какой-либо причине ).
Кроме этого, да, изучите Haskell, Scala, Forth или что-то еще. В Perl недостаточно нового, чтобы сделать его полезным.
Я знаю Perl, но мне не нужно было использовать какое-либо из своих знаний Perl уже почти десять лет. В течение очень долгого времени ниша Perl была общедоступной системой /инструментами языка сценариев. Но вы можете ясно видеть, что медленно, но неуклонно он заменяется Python в этой роли.
Если бы я был вами, я бы предпочел пойти на Scala, Ruby, Lua ...
Изменить: , так как мое мнение о том, что Perl потеряло свою долю, является спорным для некоторых из вас, я включаю фактические данные. Я знаю, что TIOBE, возможно, не лучший источник для абсолютных значений, но определенно показывает правильные тенденции. Вы также должны понимать, что это не показатель количества программного обеспечения, который существует, а скорее измеряет интерес к данному языку.
http://www.tiobe.com/content/paperinfo /tpci/images/history_Perl.png http://www.tiobe.com/index.php/paperinfo/tpci /Perl.html
Что такое Perl «лучше», чем Python?
«Лучше» - очень субъективный термин. Отложив в сторону весь диалог о «лучшем», возможно, было бы более полезно детализировать некоторые различия.
Несколько вещей, которые Perl не имеет в Python:
-
local
может делать динамически измененные переменные - анонимные подпрограммы (код
lambda
Python - это жалкая, убогая вещь, ограниченная выражениями) - hash slicing (возможно, не настолько убедительный, если вы не использовали его)
Это не обязательно делает Perl «лучше». Это всего лишь некоторые дополнительные инструменты, которых у Python нет, что я заметил. В некоторых случаях их едва упускают, в других случаях вам приходится выполнять некоторые работы по работе над отсутствующей функцией. Следует отметить, что есть вещи, которые у Python есть у Perl. Опять же, это в основном просто разные, а не лучше (хотя разукрашение Perl является синтаксическим зверством и не так случайно, выглядит как иллюзорное) .
Вне языка сообщество Perl очень активно. Есть еще много рабочих мест для программистов на Perl, и он по-прежнему широко используется в пространстве биоинформатики. В нем много тоннелей библиотек. Тем не менее, я не уверен, что любые из этих причин являются вескими причинами, если вы уже пробовали и нашли это не по своему вкусу.
Раскрытие информации: я являюсь поклонником Perl и Python.
Я думаю, что Perl, вероятно, немного быстрее записывает быстрые и простые скрипты, чем Python, только потому, что меньше накладных расходов и более полезных значений по умолчанию, например, он автоматически читает из stdin
или из файлов в командной строке, и вы можете использовать регулярные выражения гораздо проще. Лично я не нахожу, что есть достаточная причина для использования обоих - я склоняюсь к тому, что синтаксис двух языков запутался, поэтому мне пришлось выбрать один и отказаться от другого. Для кого-то, у кого нет этой проблемы, средство для быстрого написания сценариев может сделать это полезным. Или может не быть.
Изменить: О, и, конечно, вам, возможно, придется некоторое время использовать какой-то старый код. Много кода Perl там.
Чтобы ответить на главный заголовок вопроса: да, если вы знаете python, есть причины изучить Perl .
Забудьте о том, что может сделать Perl лучше, основной причиной является изучение другого языка, другого способа взглянуть на вещи.
- Вне Perl, какую другую среду вы использовали, которая очень сильно пыталась запустить вашу программу, независимо от того, насколько сильно вы испортили синтаксис?
- Где у вас есть такие вещи, как автоматические переменные? ($ _)
- Где вы можете иметь переменную, которая в зависимости от вызывающего может быть полностью различной в одной программе? (Мой /местный /глобальный)
- Где вы можете использовать язык, синтаксический анализ эквивалентен решению проблемы остановки ?
У экосистемы Perl есть другой взгляд на код и его запись. Это очень важно, чтобы он работал как можно быстрее.
Я бы сказал: изучить Perl для возможностей сценариев и узнать все, что делает Perl, чего вы никогда не должны делать на других языках.
Как давний скрипт Perl, который переключается на Python, я считаю, что Perl все еще намного полезнее для использования в командной строке (для работы, которая слишком сложна для оболочки, но не стоит писать полный скрипт Python или Perl для ).
Например, вот один-один слой bash + Perl для прописных имен файлов в каталоге:
for file in *; do mv $file $(echo $file | perl -pe 'tr/a-z/A-Z/;'); done
Или запустите некоторый XML из командной строки (используя регулярные выражения Perl, которые определенно являются одной из сильных сторон языка) вместо написания сценария:
perl -pi -e 's/^(<\/?testsuite)\b/$$1s/' testing/data/actual/report.xml
Я бы сказал, что -
perl многоцелевой язык , тогда как python - это язык OO