Friday, July 5, 2013

Perl всё

Ура, я наконец-то перешел на Python в качестве основного языка разработки. Довольно долгое время моим основным орудием был Perl, но в последнее время я все чаще стал посматривать на альтернативы (e.g. Python, Ruby, NodeJS). Немного о том, что мне не нравится в Perl, в произвольном порядке.

  • Perl, пожалуй, худший выбор в качестве первого языка программирования. Этот язык упорот настолько, что поюзав его несколько лет переключиться на что-то вменяемое становится сложно. Чего стоит, например, передача аргументов в функцию в виде массива @_, реализация областей видимости переменных, etc.

    Примерно в этом же ключе отзывался Дейкстра по отношению к Basic:
    "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
    Справедливости ради стоит отметить, что комьюнити у перла весьма дружелюбное и открытое.

  • Стремление к сходству с естественным языком (на Perl можно даже писать стихи). Звучит прикольно, но на практике лишь раздувает синтаксис и делает код менее читабельным/поддерживаемым.

  • Мантры TMTOWTDI (There’s More Than One Way To Do It) и DWIM (Do What I Mean). Чем больше существует способов "сделать это", тем сложнее язык в изучении и понимании. Попытка заставить интерпретатор строить догадки также ни к чему хорошему не приводит.

  • Отсутствие вменяемого ООП. А без ООП нынче никуда.

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

  • Очень узкая ниша. На мой взгляд – это относительно небольшие (одноразовые) скрипты, позволяющие быстро выполнить задачу. Причем "быстро" как по времени написания кода, так и его выполнения.

  • Perl – единственный язык, в котором имеется goatse operator =)

На этом унылом фоне всё лучше смотрится Python. Он на порядок читабельней, более строгий и полностью объектно ориентированный. Наконец, его гораздо легче набивать вслепую из-за минимума пунктуации ) И еще, я уже давно собирался на него перейти...