Есть ли веская причина для тех, кто знает, что Python изучает Perl? [закрыто]

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

Я «знаю» C, Python, Java и Scheme и играю с несколькими другими языками. Теперь, есть ли веская причина для изучения Perl? Что такое Perl «лучше», чем Python?

Я занимаюсь разработкой приложений и изучаю некоторые разработки систем (в основном, для ядра Linux).

Я почти уверен, что Perl существенно не отличается от того, что я знаю так далеко, чтобы слишком сильно расширить мой ум (я бы, вероятно, сделал бы это лучше, сосредоточившись на Haskell, Scala, Forth или что-то в этом роде для этой цели).

6 голосов | спросил Anto 5 AMpTue, 05 Apr 2011 00:47:53 +040047Tuesday 2011, 00:47:53

8 ответов


22

Через десять лет по переулку будет аналогичный вопрос: «Есть ли веская причина для тех, кто знает язык X, чтобы узнать Python» или «Что такое Python» лучше, чем язык X »? Другими словами, внутри цикла рекламы это похоже на то, что определенная технология может оставаться в течение длительного времени. Я остановлюсь на этом.

Поскольку вы специально спросили, что лучше Perl, чем Python, я дам вам следующий список.

  1. Обработка текста.
  2. Расширенная обработка текста различных типов. Граммары и т. Д.
  3. Больше сильных синтаксических конструкций. Интеллектуальное сопоставление заданных циклов, Devel :: Declare, TIMTOWDI, фильтры и т. Д.
  4. Очень мощная объектная система, такая как Moose (Moosex-Declare с сахаром).
  5. CPAN.
  6. Сообщество и ресурсы, такие как PerlMonks.
  7. Свобода, сила и гибкость.
  8. Быстрые темпы развития. Ничто не становится быстрее, чем Perl, если вы его знаете правильно.
  9. Конфигурация по Конвенции.
  10. Мощные функции функционального программирования.
  11. Быстрый, грязный скриптинг и прототипирование.
  12. Тяжелая работа.
  13. Perl получает видимость лучше, чем Python.
  14. Не нарушает совместимость.
  15. Хорошие веб-рамки для классных детей.
  16. лаконичности.
  17. Быстрее.
  18. С лучшими практиками его ад намного лучше, чем Python из-за вышеупомянутых функций.
  19. Психология Perl.
  20. Ссылки.
  21. Последние достижения, такие как сменные ключевые слова синтаксиса и ключевые слова «статические».

и т. д. и т. д. список будет продолжаться и далее ...

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

Я программист Python и Perl. Я до сих пор не нашел, как Python лучше, чем Perl. Выглядит аккуратно, не означает его аккуратный

Как сказал Лео Тостой.

Удивительно, насколько полно иллюзия, что красота - это доброта.

http://en.wikiquote.org/wiki/Beauty

ответил kamaal 5 AMpTue, 05 Apr 2011 07:12:37 +040012Tuesday 2011, 07:12:37
9

Как что-то вроде поклонника Perl, изучите его, если вам действительно нужно что-то сделать на Perl (ваша работа работает с Perl или вам нужно работать с системой с Perl, и вы не можете установить Python по какой-либо причине ).

Кроме этого, да, изучите Haskell, Scala, Forth или что-то еще. В Perl недостаточно нового, чтобы сделать его полезным.

ответил David Thornley 5 AMpTue, 05 Apr 2011 00:59:02 +040059Tuesday 2011, 00:59:02
6

Я знаю 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

ответил vartec 5 AMpTue, 05 Apr 2011 01:08:36 +040008Tuesday 2011, 01:08:36
3
  

Что такое Perl «лучше», чем Python?

«Лучше» - очень субъективный термин. Отложив в сторону весь диалог о «лучшем», возможно, было бы более полезно детализировать некоторые различия.

Несколько вещей, которые Perl не имеет в Python:

  • local может делать динамически измененные переменные
  • анонимные подпрограммы (код lambda Python - это жалкая, убогая вещь, ограниченная выражениями)
  • hash slicing (возможно, не настолько убедительный, если вы не использовали его)

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

Вне языка сообщество Perl очень активно. Есть еще много рабочих мест для программистов на Perl, и он по-прежнему широко используется в пространстве биоинформатики. В нем много тоннелей библиотек. Тем не менее, я не уверен, что любые из этих причин являются вескими причинами, если вы уже пробовали и нашли это не по своему вкусу.

Раскрытие информации: я являюсь поклонником Perl и Python.

ответил dietbuddha 5 AMpTue, 05 Apr 2011 04:53:28 +040053Tuesday 2011, 04:53:28
2

Я думаю, что Perl, вероятно, немного быстрее записывает быстрые и простые скрипты, чем Python, только потому, что меньше накладных расходов и более полезных значений по умолчанию, например, он автоматически читает из stdin или из файлов в командной строке, и вы можете использовать регулярные выражения гораздо проще. Лично я не нахожу, что есть достаточная причина для использования обоих - я склоняюсь к тому, что синтаксис двух языков запутался, поэтому мне пришлось выбрать один и отказаться от другого. Для кого-то, у кого нет этой проблемы, средство для быстрого написания сценариев может сделать это полезным. Или может не быть.

Изменить: О, и, конечно, вам, возможно, придется некоторое время использовать какой-то старый код. Много кода Perl там.

ответил Tom Zych 5 AMpTue, 05 Apr 2011 01:10:36 +040010Tuesday 2011, 01:10:36
2

Чтобы ответить на главный заголовок вопроса: да, если вы знаете python, есть причины изучить Perl .

Забудьте о том, что может сделать Perl лучше, основной причиной является изучение другого языка, другого способа взглянуть на вещи.

  • Вне Perl, какую другую среду вы использовали, которая очень сильно пыталась запустить вашу программу, независимо от того, насколько сильно вы испортили синтаксис?
  • Где у вас есть такие вещи, как автоматические переменные? ($ _)
  • Где вы можете иметь переменную, которая в зависимости от вызывающего может быть полностью различной в одной программе? (Мой /местный /глобальный)
  • Где вы можете использовать язык, синтаксический анализ эквивалентен решению проблемы остановки ?

У экосистемы Perl есть другой взгляд на код и его запись. Это очень важно, чтобы он работал как можно быстрее.

Я бы сказал: изучить Perl для возможностей сценариев и узнать все, что делает Perl, чего вы никогда не должны делать на других языках.

ответил earlNameless 5 AMpTue, 05 Apr 2011 08:10:14 +040010Tuesday 2011, 08:10:14
1

Как давний скрипт 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
ответил Josh Kelley 5 AMpTue, 05 Apr 2011 01:51:10 +040051Tuesday 2011, 01:51:10
-2

Я бы сказал, что -

  

perl многоцелевой язык , тогда как python - это язык OO

ответил GC 13 28 32012vEurope/Moscow11bEurope/MoscowWed, 28 Nov 2012 09:12:51 +0400 2012, 09:12:51

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132