Вы изучаете Perl и что вас на это привело?[закрыто]

StackOverflow https://stackoverflow.com/questions/392789

  •  23-08-2019
  •  | 
  •  

Вопрос

Я познакомился с Perl много лет назад и всегда находил его интересным и выразительным языком для работы.

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

Если вы новичок в Perl, что вас в него втянуло?

Это было полезно?

Решение

Благодаря Perl (и выразительной силе TMTOWTDI) программирование становится творческой задачей.я могу написать if($expr) { $statement; } если я планирую использовать много других утверждений, или я могу написать $statement if $expr; если это имеет больше смысла (например, я люблю писать:

sub doSomething {
    my($toObject, $argument) = @_;

    die "No object specified" unless defined($toObject);
    die "Object invalid: $toObject" unless $toObject->ISA('Example');

    # Do stuff
}

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

При работе с другими языками программирования мне приходится продумывать уровни абстракции (как это будет Map дай мне Collectionчей IteratorЯ могу использовать, чтобы...и так далее).С Perl я обычно нахожусь всего на один уровень абстракции выше базового Perl.Например, DBI даст мне результаты базы данных в виде обычных, повседневных скаляров Perl, списков и хэшей, поэтому все, что я знаю об этих простых, основных структурах данных, применимо к каждой задаче, которую я ставлю DBI to (Сложные структуры данных?Вот для чего нужен PostgreSQL!).

Я использую Perl на постоянной основе всего около года, но для меня это большие победы и причина, по которой я впервые полностью перешел на Perl после года страданий от модели коллекций Java 1.4 ( не спрашивай).Другие языки программирования вызывают у меня ощущение, будто я собираю мозаику, пока вы выстраиваете в ряд все модули и пакеты. в самый раз;Perl ощущается как коробка, полная Лего, с какими-то «особыми» кубиками (например, DBI, CGI.pm и Test::*) добавлено на всякий случай.Существует множество различных способов решения любой проблемы, и Perl позволяет вам попробовать любой из них любым удобным для вас способом.

Другие советы

Я зарабатывал на жизнь программированием PHP, а затем услышал об их изменении с ::в \ как разделитель пространства имен.Я правда не шучу и не злобствую, но это так Действительно что сдвинулось с мертвой точки.

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

Я обнаружил проблемное поведение в PHP, которое противоречило логике и рассуждениям (например, семейство array_merge_recursive), и обнаружил функции, для которых не было документировано, как их использовать, и когда я сообщил об ошибке в функциях, моя ошибка была помечена как «Поддельная», и я ожидалось, что он будет экстрасенсом.

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

Кроме того, мой опыт работы с другими динамически типизированными языками более высокого порядка (JavaScript и Ruby, да, JavaScript — более мощный язык, чем PHP с точки зрения языковых функций) дал мне знания, позволяющие легко решать различные типы проблем, но были ограничены. таким образом у меня не было возможности использовать эти мощные функции.Perl удовлетворил эту потребность.

Почему Perl, а не Ruby?Я немного играл с Ruby, но мой опыт показал мне, что поддержка и документация скудны, язык медленный и незрелый.Может быть, это и хорошо, но, судя по тому, что я видел, его возможности по сравнению с Perl все еще ограничены. И у него был главный недостаток PHP: у него огромная база пользователей, состоящая из новичков, которые все делают неправильно, и мне действительно не хотелось с этим так сильно сталкиваться.

Быть элитарным человеком нехорошо, но как только вы попытаетесь объяснить одно и то же 30 людям (и каждый раз потратите час, чтобы вбить им в голову простую концепцию), это приведет к разочарованию.(Я не могу справиться с ситуацией «В Интернете кто-то не прав». Если я не могу ВИДЕТЬ так не бывает)

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

Тогда я получил свою первую подработку и должен был использовать ее профессионально.Я отвечал за разработку набора пакетных скриптов, которые обрабатывали некоторую часть бизнес-логики в компании.И именно в этой задаче Perl раскрыл весь свой потенциал.Нужно получить данные из БД?- нет проблем, просто зайдите в CPAN.Нужно автоматизировать вики – нет проблем, зайдите на CPAN.Количество уже созданных модулей огромно, и вы можете быть уверены, что всегда найдете в CPAN то, что вам нужно.

Подводить итоги.Для меня Perl — это швейцарский армейский нож среди языков сценариев.В нем можно делать все, и он имеет огромное количество дополнительных модулей даже для весьма экзотических задач.И, кстати, я упоминал REGEXPS?

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

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

Perl — это его сообщество, что является причиной его использования как на социальном, так и на практическом уровне.(См. CPAN и Perlmonks, которые, вероятно, вдохновили SO.)

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

Это интересно;В итоге я стал программистом Perl на полный рабочий день после того, как изучил его для своей работы по типу системного администратора в колледже;и теперь это мой самый сильный навык.Я собираюсь какое-то время придерживаться Perl, потому что до сих пор этот язык был универсальным и мог расти вместе со мной.Я пишу много системного программного обеспечения на Perl и решил заняться веб-программированием ради развлечения, и Catalyst ждал меня.Хочу ли я опробовать новую языковую парадигму?Perl, вероятно, поддержит это.Напротив, когда я какое-то время программировал на PHP, я сразу почувствовал, что прижимаюсь к стеклянному потолку.

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

Еще в свое время я несколько раз использовал awk для сценариев оболочки.В одном древнем проекте нам нужно было реализовать соединение по протоколу TELNET, поэтому я написал быструю версию на Perl 4.Это сработало очень хорошо, и мне начал очень нравиться этот язык.

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

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

Павел.

простой синтаксис, мощные возможности сценариев для систем Win32 и Unix, а также совершенно мощное регулярное выражение!

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

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

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

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

К Perl меня привело то, что я увидел ДБИ и понял, что могу писать программы ESQL/C, которые писал в то время, за одну пятую меньше времени.

Что удерживает меня от использования Perl, так это то, что два других языка, которые, вероятно, вытеснят его, строго типизированы.То есть

print "10" + 5;

это ошибка типа, а не 15.

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

Однако в Perl все еще есть CPAN, с которым не может сравниться даже Ruby (хотя в Ruby тоже есть много полезных библиотек).

Я подумывал об изучении Perl в прошлом году.

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

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

А еще меня пугает Ларри Уолл.

В моей ситуации Perl не был правильным выбором, и вот почему.

Perl не так плох, как я думал.Около года назад я использовал его в паре клиентских сценариев, и он мне даже немного понравился.С другой стороны, с тех пор я никогда этого не пропускал.

Причина?В основном это язык, предназначенный только для записи.Решение, превышающее 100 строк, заставило меня опасаться собственного кода, что определенно не является хорошим результатом.В других языках эта планка значительно выше (возможно, 1000 или 10 000 строк).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top