Является ли Perl полезным и жизнеспособным языком? [закрыто]


77

Я знаю, что, возможно, спросили раньше, но здесь ничего не идет ...

Является ли Perl чем-то полезным? Если бы кто-то был новым программистом (или совершенно новым для программирования, или всего лишь несколько месяцев / лет опыта), стоит ли считать Perl чем-то, что стоит изучить?

Perl все еще используется с частотой? Это все еще популярно?

Или Perl вымирает по сравнению с такими языками, как Python, Ruby, PHP, ASP.NET и т. Д.?

В основном это сводится к этому:

  • Это все еще используется / это все еще часто используется? Если да, это умирает? Если нет, он вернется?
  • Это то, что стоит изучить?
  • Как он соотносится по спросу с такими языками, как Python, по популярности и удобству использования / жизнеспособности? Могут ли такие языки, как Python или Ruby, быть заменой Perl?

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

РЕДАКТИРОВАТЬ:

Хорошо, я полагаю, вот лучший, перефразированный вопрос:

Perl все еще растет или умирает? Стоит ли изучать и использовать этот язык? Какие проекты действительно «сияют» по сравнению с другими языками? Что делает Perl языком для выбора? По сути: устарел ли Perl по сравнению с другими языками, и если да, ожидаете ли вы, что это изменится или продолжится?

И спасибо всем, кто до сих пор ответил, обсуждение было действительно интересным!


12
Давайте не будем терять перспективу, согласно TIOBE, она все еще в первой десятке, опережая Ruby и даже JavaScript.
Даниил

Ответы:


60

Прежде всего, всегда лучше избавиться от неоднозначности .

Компании говорят о Perl 5, когда говорят о Perl, но на далекой земле, за пределами острова с глубоким мышлением , племя дизайнеров за комитетом все еще готовит здоровенную плиту Perl 6 (и она почти готова, с двигателем, написанным на Хаскелл и приведенный в действие слезами богов )

Хорошо, это говорит о том, для чего сегодня используется Perl 5 ?

  • устаревшие веб-системы / интраветы - некоторые просто не умрут

  • интеллектуальный анализ данных / статистический анализ - механизм регулярных выражений Perl, даже если он немного устарел ( PCREвыделенная библиотека, пополняет ее любым возможным способом и является PHPмеханизмом по умолчанию ), по-прежнему хорош для простого анализа

  • Системное администрирование UNIX - Perl всегда должен быть установлен в UNIX.
    Вы можете рассчитывать на его доступность даже в Mac OS X.

  • прототипирование сети - многие эксперты по основной сети изучали Perl, когда он был в моде; и они все еще делают свои доказательства концепции с этим.

  • безопасность - многим экспертам по безопасности тоже требуется быстрое создание прототипов . (и быстрые автоматические исправления) Perl может и делает это для покрытия.

Обширная коллекция CPAN очень удобна при работе с прототипами.
(Батареи не могут быть включены, но они все еще там, на полке )

Помните недостатки , хотя:

  • Поддержка объектов в Perl - отстой , вы благословляете ссылки и делаете нечестивые вещи во имя объектов, а потом удивляетесь, почему вы взяли на себя все трудности.
  • Чтение Perl других людей - это больше, чем ремесло, это наука , и это тоже болезненно .
  • Perl изящен, он заставляет вас думать изящно, он заставляет вас чувствовать себя изящно, вы становитесь рок-звездой программирования . Теперь подумайте о том, чтобы встать и пойти работать в офис, полный рок-звезд : это «лодка, которая качается» . Ожидайте диких колебаний.

19
@WorldEngineer согласился, но хуже всего то, что, исходя из perl, Ruby совсем не чувствует себя изящным : он просто чувствует себя как ошарашенная, неэффективная версия perl.
ZJR

12
Я вижу только один недостаток там. Лично я получаю удовольствие от благословения моих ссылок, но для тех, кто этого не делает, есть Moose (на CPAN), который является достаточно хорошей объектной системой, которую копируют другие языки. И, хотя я люблю няньки, я не встречал так много одержимых рок-звезд в мире Perl. В сообществе Perl есть гораздо более серьезные, дисциплинированные разработчики (которым, похоже, нравится качаться в свободное время), чем рок-звезды. (Я категорически отрицаю, что работаю рок-звездой до тех пор, пока женщины не начнут бросать в меня свои трусики, пока я пишу код.)
Дейв Шерохман,

3
@johannes должен еще иметь дело с Россум закона Ван: "Whenever you find a python executable preinstalled, it's the wrong version"Следствие:"sometimes the right version is available, but it has the wrong name"
Zjr

2
Perl также все еще довольно большой в области биоинформатики.
dietbuddha

3
+1 за системное администрирование. Я никогда не видел ОС на основе Unix без Perl. Я даже видел это в некоторых встроенных ОС Linux, которые использовали Busybox для своих пользовательских
областей

23

На мой взгляд, после работы с Perl после нескольких лет, когда он почти не использовался, он стал лучше, чем когда-либо. Perl 5 имеет много возможностей в CPAN, даже OO можно сделать прямо сейчас. (Посмотрите на Modern Perl )

Perl 5 далеко не мертв. Просто взгляните на некоторые сайты Perl и CPAN, и на горизонте появился совершенно новый язык - Perl 6.

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


7
На мой взгляд, CPAN отлично подходит, если вам нужно колесо любой формы, но менее хорош, если вам нужен автомобильный завод.

@ ThorbjørnRavnAndersen CPAN отлично подходит, если вам нужно колесо любой формы. Проблема в том, что shape($wheel) == 'round' ? available_in_cpan($wheel) : false;это недопустимый фильтр.
Джейсон Льюис

То, что ОО существует в Perl, не означает, что это действительно хорошо.
kirbyfan64sos

22

Главное, что Perl до сих пор делает для этого, - это CPAN - существует так много предварительно написанных модулей, что очень легко найти что-то необходимое.

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


И вы думаете, что это дает преимущество над другими языками? Или это просто делает его равным другим языкам. Например, .NET Framework, кажется, также упакован различными полезными методами и классами.
Боб

6
@ Пол Томблин - Это довольно грубый способ выразить это. «Главное, что у Perl все еще есть стремление ...» <- Главное, что у C / C ++ есть для них, - это то, что в них все еще написано много программного обеспечения. Кроме того, они мусор.
Ладья

Согласился с Idigas, так как вы могли бы сказать то же самое о том, что у Java много пакетов ...
Izkata

1
Вопрос был не в том, является ли C ++ или Java хорошим языком. Вопрос был в том, является ли Perl все еще жизнеспособным. И есть две причины, почему я все еще пишу свои веб-приложения на Perl: CPAN, и у меня есть тонна кода, которую я уже написал.
Пол Томблин

7
Если бы я начинал сейчас, я бы, вероятно, использовал Python. Но я использую Perl, потому что я хорош в Perl.
Пол Томблин

19

Когда несколько лет назад я решил выучить Perl как свой родной язык, я принял решение по ряду факторов:

  • много ли хороших справочных материалов по языку?
  • могу ли я легко найти помощь по моим вопросам?
  • язык активно используется большим разнообразным населением?
  • Есть ли активные проекты, которые помогут мне с моими целями?

Для меня ответ был да. Я графический дизайнер. Я изучил HTML и CSS несколько лет назад, но мне нужно было повышать свои навыки после того, как клиенты хотели получить больше от своих сайтов. Я использовал различные php-фреймворки, которые дали мне ошибку, чтобы действительно научиться программировать. Я провел много исследований и нашел хорошо поддерживаемые проекты, такие как Template Toolkit, а также новые, такие как Perl Dancer и Mojolicious. Документация, которая поставляется с Perl, очень полезна, а также библиотека публикаций.

Я нашел списки рассылки Perl довольно дружелюбными для новичков и активными. На PerlMonks люди со всего мира приходят с вопросами и ответами для широкого спектра приложений. Есть несколько активных новостных сайтов Perl, блогов и потоков. Эти ресурсы научили меня многому о Perl и программировании.

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


Я изучил Perl как мой первый язык в 1996 году, потому что я только что перешел на Linux с Windows для своей основной ОС. Perl никогда не был отличным веб-языком (хотя PHP - это чистая дистрибуция всего зла, которое может предложить Perl), но он фантастичен в качестве замены скриптов bash. Проблема возникает, когда люди пытаются притвориться, что есть такая вещь, как серебряная пуля.
Джейсон Льюис

16

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


5
Так не является ли утверждение «единственная причина, по которой я его больше не использую, состоит в том, что никто из моих знакомых больше его не использует», свидетельствует о том, что популярность, возможно, имеет какое-то отношение как к ее жизнеспособности, так и к удобству использования? В любом случае, это не главное в моем вопросе, что я действительно хочу знать, полезен ли Perl? Когда вы выбираете его среди других языков (например, когда он действительно сияет)?
Боб

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

4
Это основано на среде ... Если вы системный администратор * nix, ваш выбор для выполнения общих задач сводится к Perl против sed + awk + grep + bash ... и Perl обычно проще, чем запоминать 4 синтаксиса для одноразовый скрипт.
Джейсон Льюис

12

Кстати, я программирую на Perl 5 около 15 лет, поэтому я немного предвзят. Сказав это, мне очень нравится Perl. Не слушайте скептиков и не думайте, что его возраст является каким-то показателем его срока годности. Лучший способ взглянуть на Perl - это увидеть его по сравнению с другими языками:

  • PHP - PHP - довольно хороший язык веб-программирования; не пойми меня неправильно. Но это только язык веб-программирования. Даже веб-приложения нуждаются в своих cronjobs для очистки процессов, и вы должны сделать что-то странное, чтобы это произошло. Не берите в голову быстрый сценарий для администратора UNIX или анализ текстового файла. Кроме того, в PHP нет CPAN.

  • Ruby - язык слишком новый и "детективный сценарий" для моих вкусов. Единственное, что я слышу о Ruby - это Ruby on Rails. В Perl есть Catalyst и Dancer (как фреймворки MVC), которые являются чертовски хорошими MVC, но это не краеугольный камень языка. Вы не найдете «Рубин» как требование в предложениях о работе в ближайшее время (если вообще когда-либо). Плюс, у Руби нет CPAN.

  • Python - По словам Ларри Уолла, Python - это просто змеиное масло. Python заботится о пробелах, и последний используемый мной язык, который заботился о пробелах, был BASIC. Кроме того, как и BASIC, он был разработан, чтобы быть простым в использовании языком для начинающих. Наконец, нет CPAN здесь.

  • Java - Java является проблемным дочерним языком. Идея заключалась в том, чтобы иметь эту виртуальную машину, работающую на любой платформе, но из-за огромной популярности языка в курсах колледжа вы видите Java-приложения везде, где их не должно быть. Например, внутренние серверные веб-приложения не должны существовать. Это один сервер со спецификациями, которые они определяют, и он упакован в отдельную виртуальную машину с ограниченным объемом памяти. Ява раздутая, и у них нет CPAN.

  • C # - На самом деле я уже довольно редко использую этот язык, и, похоже, у меня сложились отношения любовь / ненависть. Возможность перегружать методы разными параметрами - это круто и весело. Но если вам нужен язык, который будет смущать каждую строчку кода о приведении типов , то C # для вас. Боже мой, он хочет, чтобы вы ставили явный кастинг ВЕЗДЕ! Создание классов - это весело, но вы вдруг понимаете, что тратите больше времени на создание классов, чтобы сделать этот чертов язык просто РАБОТАЮЩИМ, чем на самом деле написание реального кода.

    Кроме того, C # не имеет ... хорошо, у него есть .NET, который действительно хорош и обширен. Тем не менее, мне все еще нравится CPAN, потому что вы все еще можете написать свои собственные модули и пожаловаться автору на ошибку или недостаток дизайна. И все они бесплатны. Кроме того, в будущем Perl работает над Perl.NET, поэтому мы можем разрабатывать приложения для Windows в ближайшее время.

Perl - отличный язык, который имеет:

  • Регулярные выражения - если Perl хорошо справляется с одной задачей, это манипулирование текстом. Да, у многих языков есть регулярные выражения, но Perl чертовски близко их изобрел, и есть причина, по которой у grep есть режим "Perl Regular Expression" или у Oracle есть раздел "Расширения под влиянием Perl в Oracle Regular Expressions". Он встроен и не требует никаких модулей.

  • Гибкость. У вас есть три основных типа переменных: скаляры, массивы и хэши. Вот и все. Это все, что вам нужно. У вас нет int, байта, строки или чего-то подобного. Perl понимает это просто отлично. И вы можете использовать все ссылки, которые вы хотите, не опасаясь утечек памяти или вызвать сбой всего ПК. Язык просто работает.

  • Переносимость - Perl прекрасно работает в сети. Отлично работает в UNIX. Это даже хорошо работает в Windows. Это не дырочка для одной функции. Это мастер на все руки, но и мастер (в основном) всего.

  • С небольшим кодом легко многое сделать - дайте мне 1 КБ пустого файла, и я смогу написать все что угодно с этим пространством. Даже Perl с одним вкладышем замечательно добавить в канал командной строки.

  • CPAN - Я не могу подчеркнуть, как это хорошо, найти что-то, что вам нужно для чего-либо. Что такое "что-нибудь"? Ну, а как насчет модулей БД для каждой базы данных или вещи, которую вы можете себе представить, от Oracle до iPod, CSV, Adabas и Yaswi? Как насчет нескольких полнофункциональных веб-серверов? Как насчет программы чтения файлов Excel, или модуля SNMP, или модуля, который читает комментарии для строк отладки, или модулей, которые помогают вам быстрее программировать? Проект, которым я сейчас занимаюсь, - это создание динамического генератора карт Terraria, дополненного существующим модулем под названием Games :: RolePlay :: MapGen. У .NET никогда не было бы чего-то подобного.

    Плюс, это легко установить любой модуль через CPAN. Получите это от Debian. Установите его из CPAN напрямую. Это делает такую ​​же хорошую работу, как apt-get для разрешения зависимостей. У меня нет проблем с указанием системному администратору установить модуль X из CPAN, поскольку это всего лишь простая однострочная команда.

Да, у него есть свои недостатки, и да, я склонен к этому, но вы, вероятно, уже слышали негативы слишком много раз. Они не перевешивают позитивы, ни в коем случае.


14
-1 главным образом за то, что не признают, что другие языки имеют такие же хорошие инструменты, если не лучше, чем CPAN. Maven Central для Java, например? В нем больше артефактов, чем в CPAN, и он предназначен для установки артефактов Maven, поскольку они автоматически идентифицируются посредством анализа зависимостей объектной модели проекта. Также я менее опытен с Ruby Gems, но я считаю, что они примерно эквивалентны CPAN.
Микера

8
PHP имеет грушу. И это не только язык веб-программирования.
MattBianco

25
Я бы не сказал, что вы немного предвзяты. Вы явно предвзяты. Я не могу поверить, что вы можете использовать Python в основном потому, что он имеет значительные пробелы и потому что Ларри (конечно, не объективный источник здесь) использовал выражение «змеиное масло». А для Руби вообще нет предложений о работе? Когда вы в последний раз видели рынок труда? По крайней мере, приложите некоторые усилия, чтобы установить учетные данные Perl.
Мухаммед Алкарури

6
-1 для явно предвзятого и неисследованного взгляда на другие языки. Я согласен, что Python - это змеиное масло, но Ruby == "script kiddie" - абсурд. Я никогда не видел попытки вторжения на основе Ruby ни на одном из поддерживаемых мной серверов. В основном это Python. PHP является приемлемым языком программирования в любом смысле? Shenanigans. Ваши комментарии на C # демонстрируют поразительную наивность в отношении набора текста и / или объектной ориентации. Придерживайся Perl, приятель. Серьезно, я всегда буду любить Perl, потому что это был мой первый «настоящий» язык программирования, и он великолепен для задач системного администратора, но этот ответ хуже, чем плох.
Джейсон Льюис

8
+1 За скрытие всех языков, которые я когда-либо любил (или ненавидел) - за исключением Perl, конечно. :-)
jpaugh

12

Производительность - одна из главных причин выбрать Perl. По сравнению с Python, Ruby или любым из языков сценариев, основанных на JVM, это молниеносно.

Вот почему его никогда не заменяли в области интеллектуального анализа данных, все другие (халявные) языки работают медленнее, когда дело доходит до обработки больших объемов данных.


6
Можете ли вы предоставить поддержку / тесты для этого утверждения? Это кажется мне последними тестами, которые я видел для Perl против Ruby / Python, предпочтение последним, особенно. при включении альтернативных реализаций последнего.
Джейсон Льюис

2
Любые замечания о производительности должны быть обобщением, если не указаны конкретные версии и среды. Существует множество тестов - hentenaar.com/serendipity/index.php?/archives/… onlyjob.blogspot.com/2011/03/… довольно типичны. Вы правы, последние версии ruby ​​довольно быстрые, но perl регулярно выпускает выпуски с "улучшением производительности", поэтому не должно возникнуть никаких проблем. LUA бьет все.
Джеймс Андерсон

Луа довольно пылает.
Джейсон Льюис

12

Perl имеет свое место Его «плохая репутация», как правило, обусловлена ​​тем, что он дает вам большую гибкость, чтобы делать вещи, которые действительно должны быть выполнены с помощью другого инструмента.

Если вы зададите себе вопрос: «Чего я пытаюсь достичь? И есть ли подходящие инструменты для этого?» тогда вы - часть пути туда.

Если вы пишете быстрый сценарий, то использование языка сценариев имеет смысл. Если вы хотите создать сложное приложение, вы можете написать его на Perl, но, вероятно, не стоит.

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


3
Хорошо, но Python - это вполне жизнеспособный вариант для создания быстрого скрипта, но вы также можете растянуть его для создания более крупных программ. Разве то же самое не относится к Perl? Это делает Python лучше, чем Perl?
Боб

@ Боб: Я думаю, что это в основном то, что вы привыкли писать и на ваш вкус. Иногда, есть также несколько удобных библиотек Perl, которых нет в Python, и наоборот.
dagnelies

1
@Bob: я бы посоветовал ему сначала попробовать python, он более дружественный к новичкам. Затем я бы посоветовал ему выбрать совершенно другой язык в качестве второго, например, Scheme.
dagnelies

1
@Bob: вся платформа .NET доступна только в Windows. В пространстве Unix / Linux Perl является отличным языком для замены сценариев оболочки, системного администрирования и всего, что связано с большой обработкой текста, а не с чем-то еще. Он делает вещи напрямую, для которых (последний раз я смотрел) Python нужна была небольшая структура. Это обычно делает Perl худшим общим языком программирования, но лучше для его более специализированных приложений.
Дэвид Торнли

1
@Bob На самом деле, это интересный момент. Perl очень удобен, если у вас есть сценарий оболочки, который ограничивает возможности bash. Perl приспосабливает это довольно легко, так как вы можете просто поставить галочки вокруг большинства команд, и это все равно будет работать.
Стивен Гросс

12

Я был привлечен к Python его макетом - структура блока «то, что вы видите, то, что вы получаете» - и не понимаю, почему есть люди, которые откладывают это. Я думаю, что это была и есть хорошая идея.

Я вернулся в Perl, хотя. Это кажется лучше продуманным как практический инструмент. В теории информатики Python и Ruby "лучше". Но я работаю в реальном мире.

Рубин и Питон более модны среди детей, только что окончивших колледж. Большинство программистов, которые находятся на Facebook, будут следовать текущей моде и использовать Ruby или Python. Оригинальный пост иллюстрирует это: он объединяет «Стоит ли это» с «Это все еще популярно?»

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


5
Значительный пробел - ужасная идея. Всегда был, всегда будет. При этом, хотя я использую Ruby везде, где это имеет смысл, у меня все еще есть несколько сценариев Perl для задач sysadmin, которые у меня не было причин переписывать в Ruby. Почему? Они работают просто отлично, и они в сладком месте Перла. Зачем создавать больше работы?
Джейсон Льюис

1
Заставлять людей правильно делать отступы - хорошая идея, независимо от языка. Лучшие языки (такие как Python) просто применяют больше силы.
Брендан

10

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

Скорее всего, написать то же самое в Shell было бы возможно, но из-за странных оговорок синтаксиса оболочки это займет больше времени и может быть намного сложнее. Написание этого на любом «профессиональном» языке, таком как C ++, C #, Java и т. Д., Для сравнения займет около часа. Написание этого на конкурирующем языке сценариев, таком как Python, Ruby или PHP, является жизнеспособной альтернативой и, вероятно, займет на 20% больше времени.

Да, программы на других языках будут более понятными и удобными для чтения. Но если вам нужно решение СЕЙЧАС, Perl - это путь.


8

Проверьте "последние загрузки на CPAN" - страница . Ежедневно загружается> 20 новых модулей или обновленных модулей. Я думаю, что среднее количество ежедневных загрузок медленно, но неуклонно растет. Является ли эта деятельность признаком умирающего языка? Нет!

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

Чтобы получить модуль в CPAN, авторам рекомендуется пройти очень долгий путь для обеспечения обратной совместимости (со старыми версиями Perl 5), а также независимости от платформы. Смотрите, например, http://matrix.cpantesters.org/?dist=DBI (DBI = интерфейс базы данных, уровень абстракции)

Также сам язык: я немного озадачен всеми новыми функциями, которые были включены в язык с 5.10, 5,12., 5.14. Я не научился пользоваться новыми возможностями. Perl развивается слишком быстро для меня!


7

Я изучил Perl 4 и 5, занимаясь системным администрированием еще в 90-х годах. Сегодня я занимаюсь программированием на Java (где вызов Perl обычно нежелателен), и время от времени я использую Perl на своем компьютере для разработки. Обычно это делается исключительно для обработки данных в файлах журналов, где регулярные выражения в Perl и скаффолдинг для разбора текста в Perl делают его очень простым в командной строке.

По сути, я использую его сегодня как awk на стероидах. Для этого это блестяще.

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

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


Так вы бы сказали, что это в основном полезно для быстрых скриптов для обработки текста?
Боб

На мой взгляд, да, тогда это действительно очень хорошо. Он может делать и другие вещи, но они не так хорошо выпекаются.

1
Хотя Perl очень хорошо справляется с обработкой текста с помощью его регулярных выражений, нет необходимости проходить через него, если вы знаете Python или Ruby (или, может быть, PHP), я бы сказал, поскольку они также очень хороши с регулярными выражениями. Хотя Python немного более многословен, но он, безусловно, чище.
Эрик О Лебиго

@EOL, но ни Python, ни Ruby, ни PHP не могут превзойти леса для разбора текста. Смотрите, например, опцию "-i".

@ ThorbjørnRavnAndersen: Согласен, для одних вкладышей: вкладки Python (опция -c) действительно длиннее. :)
Eric O Lebigot

7

Некоторое время разработка Perl5 застаивалась из-за сосредоточенности на Perl6, что вызвало долгую задержку между выпуском 5.8 и 5.10. С тех пор сообщество действительно начало осознавать, что Perl5 и Perl6 - это разные языки, и в последнее время были очень регулярные новые выпуски.

Perl недавно выиграл конкурс веб-приложений с использованием Catalyst (хотя я предпочитаю Mojolicious ), и некоторые из новых методов Modern Perl привносят в Perl множество более чистых ОО-идей с такими вещами, как Moose.

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


3

Я не опытный программист. Но я обнаружил, что Perl довольно легко выучить (я использовал книгу о верблюдах), всегда доставляло удовольствие, а PerlMonks - самое дружелюбное сообщество помощи программистам. Perl, похоже, утратил свою сексуальную привлекательность с точки зрения найма на Ruby и Python, но только в определенных отраслях (особенно в Интернете).


3

Если вы знаете Perl, вам будет легче изучить Powershell от Microsoft. Что касается синтаксиса powershell, то у него нет корней perl , но Powershell взял много функций и концепций из языка Perl, например, из головы: переменная $ _, префикс массива с @ и строковые / скалярные значения с $, соглашения о файлах для именования и хранения модулей и, в некотором роде, автозагрузка, чтобы назвать несколько.

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

Конечно, язык Powershell добавил новые вещи, в частности, его дружественность к .NET, и не продолжил выполнение каких-либо функций / операторов perl, обеспечивающих «обратную совместимость» с инструментами командной строки unix.


2

Грант Маклин только что загрузил короткометражный фильм, основанный на эволюции mapofcpan.org , показывающий, как CPAN эволюционирует вместе со временем в визуальном стиле. Это довольно очевидно для живого сообщества. Не умирая

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

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

Например, мой друг (которому нравятся более модные языки) сказал мне, что нынешний логотип Perl6 ужасен и будет проблемой привлечь молодую плоть в Perl. Гораздо больше проблем, чем с ярким камнем или любым другим хорошо разработанным логотипом .

Я считаю, что это очень печальная причина непопулярности, но это то, что правит миром.


Если вы не собираетесь уделять внимание деталям на своем логотипе, почему я должен предполагать, что вы собираетесь уделять внимание деталям в более глубоких деталях вашего языка? Не только логотип выглядит плохо, но и потому, что плохой логотип является симптомом культуры, которая не ценит то, как вещи представлены, и которая укрепляет стереотип, лежащий в основе всех анекдотов «только для записи»
Racheet

Я слышал о людях, работающих над плохой репутацией. Эти люди являются сторонниками современного Perl и тестируемого развития. Такие сайты, как builtinperl.com и questub.io , меняют подход к рассмотрению Perl. Duck Duck Go также имеет огромный успех, никто не может сказать, что им все равно, как все представлено. Даже metacpan.org был способом дать пользователю CPAN (основной сильной стороне Perl) новый опыт посредством отображения кода, документации и поисковых модулей с приятным пользовательским интерфейсом. Я не верю в логотипы языков: есть ли у C логотип? Язык - это не бренд.
smonff

1

Perl определенно не умирает. Просто он никогда не был так раскручен, как некоторые другие языки.

Хотя это правда, что сам Perl является старым языком, у него есть живое и очень продуктивное сообщество, ценность которого находится в библиотеке CPAN. Я не думаю, что у какого-либо языка есть такая обширная библиотека, как CPAN. Ничто даже близко не подходит. В CPAN вы найдете тысячи модулей и платформ, которые делают практически все, что вы можете себе представить. Нужен веб-сервер? Там HTTP :: Сервер. Нужна автономная база данных? Есть Muldis :: DB. Какими бы ни были ваши потребности, вы обычно найдете несколько модулей, которые отвечают вашим потребностям, вам просто нужно выбрать тот, который лучше всего подходит для вашего приложения.

Что касается Ruby, Python и других конкурентов, я думаю, что здоровая конкуренция была огромным преимуществом для Perl. Все, что получили другие языки, сообщество Perl переписало на Perl. Например, когда Ruby летал на успехе Rails, Perl получил Dancer, который во многих отношениях лучше, чем Rails.

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

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


0

Я использую Perl для разработки веб-игр с 90-х годов, и после 3-летнего перерыва я согласен с предыдущим постером. Я возвращаюсь и обнаруживаю, что оно эволюционировало намного дальше, чем я оставил.

Это умирает? Нет шансов.

Это полезно? Я был бы потерян без этого. Может быть, это только я, но из других ответов я бы сказал, что это очень активное живое существо.


-6

Я получил большую часть своего профессионального веб-опыта с PHP, но по мере того, как я становился разработчиком, дела становились все более сложными, многие задачи, которые PHP просто не мог выполнить или делают крайне неэффективно. Я мог бы поднять руки вверх, но вместо этого (благодаря google) я оказался в сессиях ssh, используя libreoffice, ffmpeg, imagemagick для написания функций постпроцессирования для PHP. Никогда не использовал его, прежде чем я пошел на PERL .. в основном потому, что Perl идеально сидит под стеком LAMP.

(1) он предустановлен на всех серверах LAMP или, по крайней мере, имеет новую частоту вращения. (2) имеет отличное репо CPAN, чтобы сэкономить много времени. (3) быстрее / безопаснее выполнять задачи, когда PHP не работает на Apache. (4) очень похож на PHP и прост в освоении.

Смешайте идеи с PHP, выпекайте с PERL, используя BASH по желанию, переворачивайте в соответствии с MySQL, затем добавляйте HTML5 и черту jQuery. Это отличный рецепт.


1
Что-нибудь, чтобы поддержать эти заявления?
Остин Хенли
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.