Я знаю, что, возможно, спросили раньше, но здесь ничего не идет ...
Является ли Perl чем-то полезным? Если бы кто-то был новым программистом (или совершенно новым для программирования, или всего лишь несколько месяцев / лет опыта), стоит ли считать Perl чем-то, что стоит изучить?
Perl все еще используется с частотой? Это все еще популярно?
Или Perl вымирает по сравнению с такими языками, как Python, Ruby, PHP, ASP.NET и т. Д.?
В основном это сводится к этому:
- Это все еще используется / это все еще часто используется? Если да, это умирает? Если нет, он вернется?
- Это то, что стоит изучить?
- Как он соотносится по спросу с такими языками, как Python, по популярности и удобству использования / жизнеспособности? Могут ли такие языки, как Python или Ruby, быть заменой Perl?
Кроме того, новые версии Perl действительно принесут значительное улучшение сообществу Perl и, возможно, вернут Perl в центр внимания по сравнению с другими языками?
РЕДАКТИРОВАТЬ:
Хорошо, я полагаю, вот лучший, перефразированный вопрос:
Perl все еще растет или умирает? Стоит ли изучать и использовать этот язык? Какие проекты действительно «сияют» по сравнению с другими языками? Что делает Perl языком для выбора? По сути: устарел ли Perl по сравнению с другими языками, и если да, ожидаете ли вы, что это изменится или продолжится?
И спасибо всем, кто до сих пор ответил, обсуждение было действительно интересным!
Ответы:
Прежде всего, всегда лучше избавиться от неоднозначности .
Хорошо, это говорит о том, для чего сегодня используется Perl 5 ?
устаревшие веб-системы / интраветы - некоторые просто не умрут
интеллектуальный анализ данных / статистический анализ - механизм регулярных выражений Perl, даже если он немного устарел (
PCRE
выделенная библиотека, пополняет ее любым возможным способом и являетсяPHP
механизмом по умолчанию ), по-прежнему хорош для простого анализаСистемное администрирование UNIX - Perl всегда должен быть установлен в UNIX.
Вы можете рассчитывать на его доступность даже в Mac OS X.
прототипирование сети - многие эксперты по основной сети изучали Perl, когда он был в моде; и они все еще делают свои доказательства концепции с этим.
безопасность - многим экспертам по безопасности тоже требуется быстрое создание прототипов . (и быстрые автоматические исправления) Perl может и делает это для покрытия.
Обширная коллекция CPAN очень удобна при работе с прототипами.
(Батареи не могут быть включены, но они все еще там, на полке )
Помните недостатки , хотя:
источник
"Whenever you find a python executable preinstalled, it's the wrong version"
Следствие:"sometimes the right version is available, but it has the wrong name"
На мой взгляд, после работы с Perl после нескольких лет, когда он почти не использовался, он стал лучше, чем когда-либо. Perl 5 имеет много возможностей в CPAN, даже OO можно сделать прямо сейчас. (Посмотрите на Modern Perl )
Perl 5 далеко не мертв. Просто взгляните на некоторые сайты Perl и CPAN, и на горизонте появился совершенно новый язык - Perl 6.
В Интернете, блогах и презентациях есть много ресурсов о том, почему он не плохой и почему у него плохая репутация, которой он не заслуживает - просто посмотрите на них, чтобы понять.
источник
shape($wheel) == 'round' ? available_in_cpan($wheel) : false;
это недопустимый фильтр.Главное, что Perl до сих пор делает для этого, - это CPAN - существует так много предварительно написанных модулей, что очень легко найти что-то необходимое.
Тем не менее, я не буду изучать Perl. Perl - отличный язык для людей, которые его уже знают (например, я), но Python кажется (с точки зрения моего постороннего) лучшим языком для выполнения таких быстрых и грязных операций разбора файлов и текста, которые Perl раньше использовал как " перейти на "язык для.
источник
Когда несколько лет назад я решил выучить Perl как свой родной язык, я принял решение по ряду факторов:
Для меня ответ был да. Я графический дизайнер. Я изучил HTML и CSS несколько лет назад, но мне нужно было повышать свои навыки после того, как клиенты хотели получить больше от своих сайтов. Я использовал различные php-фреймворки, которые дали мне ошибку, чтобы действительно научиться программировать. Я провел много исследований и нашел хорошо поддерживаемые проекты, такие как Template Toolkit, а также новые, такие как Perl Dancer и Mojolicious. Документация, которая поставляется с Perl, очень полезна, а также библиотека публикаций.
Я нашел списки рассылки Perl довольно дружелюбными для новичков и активными. На PerlMonks люди со всего мира приходят с вопросами и ответами для широкого спектра приложений. Есть несколько активных новостных сайтов Perl, блогов и потоков. Эти ресурсы научили меня многому о Perl и программировании.
Конечно, это мой опыт. Я не знаю точно, сколько людей заходят на эти сайты, подписываются на списки рассылки или создают свои веб-приложения, например, с использованием Perl. Я также не могу комментировать, насколько лучше или хуже был бы мой опыт, если бы я выбрал другой язык для начала. Я не сомневаюсь, что смог найти много таких же положительных аспектов в сообществах других языков. Я могу сказать, что я все еще доволен своим выбором.
источник
Популярность языка очень мало связана с его жизнеспособностью или удобством использования. Perl по-прежнему очень полезный язык. Его репутация, заслуженная или иная, как недружественная к новичкам, в конечном итоге означала, что никто не узнает об этом, если сможет помочь. Единственная причина, по которой я больше этим не пользуюсь - это то, что никто из моих знакомых больше не использует это.
источник
Кстати, я программирую на 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, поскольку это всего лишь простая однострочная команда.
Да, у него есть свои недостатки, и да, я склонен к этому, но вы, вероятно, уже слышали негативы слишком много раз. Они не перевешивают позитивы, ни в коем случае.
источник
Производительность - одна из главных причин выбрать Perl. По сравнению с Python, Ruby или любым из языков сценариев, основанных на JVM, это молниеносно.
Вот почему его никогда не заменяли в области интеллектуального анализа данных, все другие (халявные) языки работают медленнее, когда дело доходит до обработки больших объемов данных.
источник
Perl имеет свое место Его «плохая репутация», как правило, обусловлена тем, что он дает вам большую гибкость, чтобы делать вещи, которые действительно должны быть выполнены с помощью другого инструмента.
Если вы зададите себе вопрос: «Чего я пытаюсь достичь? И есть ли подходящие инструменты для этого?» тогда вы - часть пути туда.
Если вы пишете быстрый сценарий, то использование языка сценариев имеет смысл. Если вы хотите создать сложное приложение, вы можете написать его на Perl, но, вероятно, не стоит.
Однако, поскольку ваш вопрос касается новичка в программировании, позвольте мне пока оставить Perl в покое. Просто потому, что вы научитесь меньше вредных привычек на менее гибком языке.
источник
Я был привлечен к Python его макетом - структура блока «то, что вы видите, то, что вы получаете» - и не понимаю, почему есть люди, которые откладывают это. Я думаю, что это была и есть хорошая идея.
Я вернулся в Perl, хотя. Это кажется лучше продуманным как практический инструмент. В теории информатики Python и Ruby "лучше". Но я работаю в реальном мире.
Рубин и Питон более модны среди детей, только что окончивших колледж. Большинство программистов, которые находятся на Facebook, будут следовать текущей моде и использовать Ruby или Python. Оригинальный пост иллюстрирует это: он объединяет «Стоит ли это» с «Это все еще популярно?»
Я не знаю и не волнуюсь, популярен ли Perl в мире Facebook. Это, вероятно, наиболее широко используемый язык сценариев среди людей, которые многого достигают, а это совсем другое. Некоторые из комментаторов, которые считают, что их любимый язык имеет сопоставимый ресурс с CPAN, понятия не имеют о том, насколько широк и глубок CPAN.
источник
Perl - это язык для написания одноразовых инструментов. Существуют различные другие приложения, в которых Perl более или менее постоянен и полезен, но если вам не хватает команды оболочки, чтобы сделать что-то странное, если вам нужна заглушка для получения некоторых данных из нечетного сокета, если у вас есть файл журнала или базы данных и необходимо извлечь некоторый контент таким образом, который находится за пределами досягаемости SQL, если вам нужно извлечь пару изображений с сервера, или если все шаблоны ваших веб-страниц содержат одинаковый тип ошибок и хотят исправить их все - порка 10-минутный Perl-скрипт - это путь.
Скорее всего, написать то же самое в Shell было бы возможно, но из-за странных оговорок синтаксиса оболочки это займет больше времени и может быть намного сложнее. Написание этого на любом «профессиональном» языке, таком как C ++, C #, Java и т. Д., Для сравнения займет около часа. Написание этого на конкурирующем языке сценариев, таком как Python, Ruby или PHP, является жизнеспособной альтернативой и, вероятно, займет на 20% больше времени.
Да, программы на других языках будут более понятными и удобными для чтения. Но если вам нужно решение СЕЙЧАС, Perl - это путь.
источник
Проверьте "последние загрузки на CPAN" - страница . Ежедневно загружается> 20 новых модулей или обновленных модулей. Я думаю, что среднее количество ежедневных загрузок медленно, но неуклонно растет. Является ли эта деятельность признаком умирающего языка? Нет!
Меня всегда впечатляет, как некоторые важные модули (например, для веб-программирования или интерфейсов для драйверов СУБД) поддерживались и совершенствовались в течение многих лет. Часто автором оригинала или новым сопровождающим. Часто это создает очень зрелый код.
Чтобы получить модуль в CPAN, авторам рекомендуется пройти очень долгий путь для обеспечения обратной совместимости (со старыми версиями Perl 5), а также независимости от платформы. Смотрите, например, http://matrix.cpantesters.org/?dist=DBI (DBI = интерфейс базы данных, уровень абстракции)
Также сам язык: я немного озадачен всеми новыми функциями, которые были включены в язык с 5.10, 5,12., 5.14. Я не научился пользоваться новыми возможностями. Perl развивается слишком быстро для меня!
источник
Я изучил Perl 4 и 5, занимаясь системным администрированием еще в 90-х годах. Сегодня я занимаюсь программированием на Java (где вызов Perl обычно нежелателен), и время от времени я использую Perl на своем компьютере для разработки. Обычно это делается исключительно для обработки данных в файлах журналов, где регулярные выражения в Perl и скаффолдинг для разбора текста в Perl делают его очень простым в командной строке.
По сути, я использую его сегодня как awk на стероидах. Для этого это блестяще.
Одной из особенностей Perl является то, что есть несколько способов сделать практически все. Это позволяет вам выбрать тот, который подходит вашему образу мышления - это замечательно, когда просто взламываете один или два oneliner, но не так здорово, когда нужно понимать Perl-код других людей, поскольку они обычно выбирают другой способ сделать это, который соответствует их образу мышления.
Я бы посчитал Perl очень полезным инструментом, который вы, возможно, захотите изучить, если сосредоточитесь только на том, что могут делать регулярные выражения, чтобы помочь вам просеивать текстовые файлы. Держитесь подальше от всего, что связано с предметами.
источник
Некоторое время разработка Perl5 застаивалась из-за сосредоточенности на Perl6, что вызвало долгую задержку между выпуском 5.8 и 5.10. С тех пор сообщество действительно начало осознавать, что Perl5 и Perl6 - это разные языки, и в последнее время были очень регулярные новые выпуски.
Perl недавно выиграл конкурс веб-приложений с использованием Catalyst (хотя я предпочитаю Mojolicious ), и некоторые из новых методов Modern Perl привносят в Perl множество более чистых ОО-идей с такими вещами, как Moose.
На мой взгляд, как Perl-разработчик, Perl имеет большое наследие и светлое будущее не только благодаря клейкой ленте, которая объединяет корпоративные сети, но также и в новой популярности веб-приложений.
источник
Я не опытный программист. Но я обнаружил, что Perl довольно легко выучить (я использовал книгу о верблюдах), всегда доставляло удовольствие, а PerlMonks - самое дружелюбное сообщество помощи программистам. Perl, похоже, утратил свою сексуальную привлекательность с точки зрения найма на Ruby и Python, но только в определенных отраслях (особенно в Интернете).
источник
Если вы знаете Perl, вам будет легче изучить Powershell от Microsoft. Что касается синтаксиса powershell, то у него нет корней perl , но Powershell взял много функций и концепций из языка Perl, например, из головы: переменная $ _, префикс массива с @ и строковые / скалярные значения с $, соглашения о файлах для именования и хранения модулей и, в некотором роде, автозагрузка, чтобы назвать несколько.
Так что, если вы знаете Perl, это пригодится, и вам будет немного легче изучить Powershell, или понять мышление Powershell, или сохранить идиому Powershell в вашей долговременной памяти. Встреча с Powershell без некоторого Perl-фона, вероятно, немного страннее. Просто говорю.
Конечно, язык Powershell добавил новые вещи, в частности, его дружественность к .NET, и не продолжил выполнение каких-либо функций / операторов perl, обеспечивающих «обратную совместимость» с инструментами командной строки unix.
источник
Грант Маклин только что загрузил короткометражный фильм, основанный на эволюции mapofcpan.org , показывающий, как CPAN эволюционирует вместе со временем в визуальном стиле. Это довольно очевидно для живого сообщества. Не умирая
Perl, безусловно, страдает из-за своей плохой репутации из-за множества легенд и потому, что это сообщество не хочет и не пытается сделать его самым популярным языком программирования в мире. Очень трудно понять, почему так много людей абсолютно убеждены, что это ужасный язык. Вы можете написать жуткий код на любом языке. Perl получил лучшие практики, как и любой другой язык, вам просто нужно реализовать его более чем одним способом, чтобы сделать его основополагающим.
Я вижу очень печальную причину этой плохой репутации: в течение долгого времени сайты сообществ Perl получали очень уродливый дизайн пользовательского интерфейса (как, например, perlmonks.org ). Лично я действительно не волнуюсь об этом , может быть, я даже прихожу в Perl, потому что по этой причине: не так много модных интерфейсов веб-сайтов, но вы можете доверять инструментам, сообществу с гораздо большей верой, потому что оно не пытается быть красивее, чем есть. Тем не менее, качественные инструменты не означают, что вы не должны фокусироваться на внешнем виде, и в конечном итоге это некая ошибка - не заботиться о внешнем виде.
Например, мой друг (которому нравятся более модные языки) сказал мне, что нынешний логотип Perl6 ужасен и будет проблемой привлечь молодую плоть в Perl. Гораздо больше проблем, чем с ярким камнем или любым другим хорошо разработанным логотипом .
Я считаю, что это очень печальная причина непопулярности, но это то, что правит миром.
источник
Perl определенно не умирает. Просто он никогда не был так раскручен, как некоторые другие языки.
Хотя это правда, что сам Perl является старым языком, у него есть живое и очень продуктивное сообщество, ценность которого находится в библиотеке CPAN. Я не думаю, что у какого-либо языка есть такая обширная библиотека, как CPAN. Ничто даже близко не подходит. В CPAN вы найдете тысячи модулей и платформ, которые делают практически все, что вы можете себе представить. Нужен веб-сервер? Там HTTP :: Сервер. Нужна автономная база данных? Есть Muldis :: DB. Какими бы ни были ваши потребности, вы обычно найдете несколько модулей, которые отвечают вашим потребностям, вам просто нужно выбрать тот, который лучше всего подходит для вашего приложения.
Что касается Ruby, Python и других конкурентов, я думаю, что здоровая конкуренция была огромным преимуществом для Perl. Все, что получили другие языки, сообщество Perl переписало на Perl. Например, когда Ruby летал на успехе Rails, Perl получил Dancer, который во многих отношениях лучше, чем Rails.
Perl определенно не умер и не умирает. Вокруг этого нет ничего кричащего, нет компании, которая бы выиграла от раскрутки Perl, поэтому она не привлекает большого внимания средств массовой информации, и не каждый ребенок знает Perl, поэтому об этом меньше говорят.
Прошло более 6 месяцев с момента вашего первоначального поста. Если вы еще не решили, сделайте себе одолжение и изучите Perl.
источник
Я использую Perl для разработки веб-игр с 90-х годов, и после 3-летнего перерыва я согласен с предыдущим постером. Я возвращаюсь и обнаруживаю, что оно эволюционировало намного дальше, чем я оставил.
Это умирает? Нет шансов.
Это полезно? Я был бы потерян без этого. Может быть, это только я, но из других ответов я бы сказал, что это очень активное живое существо.
источник
Я получил большую часть своего профессионального веб-опыта с 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. Это отличный рецепт.
источник