Perl создавался как практичный язык, а какая же практичность без быстроты? Программы на Perl традиционно отличаются высокой скоростью выполнения и по быстродействию сравнимы с откомпилированными Unix-утилитами. Быстрота работы достигается за счет того, что исполняющая система Perl читает исходный текст Perl-программы и компилирует его "на лету", затем сразу интерпретирует откомпилированную программу. Говоря об этой уникальной исполняющей системе, сочетающей в себе компилятор и интерпретатор, принято называть ее perl (строчными буквами, в отличие от языка программирования Perl).
Ларри Уолл в шутку (в которой, как водится, есть немалая доля истины) провозгласил три главных добродетели программиста: лень, нетерпение, самомнение (laziness, impatience, hubris). И Perl спроектирован так, чтобы соответствовать этим качествам разработчика. "Ленивый" программист, часто ограниченный во времени, может написать программу максимально компактно и быстро, поскольку в Perl есть множество способов кратко и просто записать довольно сложные алгоритмы. К тому же любые символы не являются обязательными, если их отсутствие не меняет смысла программы. Например, обычную условную конструкцию
if ($x > 0) {
print($y / $x);
}
можно написать и по-другому - без пробелов и скобок, переместив условие в конец оператора:
print$y/$x if$x>0;
Часто внешние обстоятельства побуждают нас к быстрейшему достижению цели. Но при программировании на Perl терпение программиста подвергается минимальному испытанию, поскольку Perl-программа запускается без предварительной компиляции и выполняется очень быстро. И наконец, система программирования Perl предлагает необычайно широкий набор средств, чтобы реализовать самые амбициозные проекты любого программиста, даже с гипертрофированным самомнением.
Гуманные принципы, заложенные в язык Perl, нацелены на создание комфортной обстановки при разработке программ как для новичка, так и для опытного программиста. Одним из них стал принцип DWIM (Do What I Mean - "делай то, что я имею в виду"), в соответствии с которым в большинстве случаев исполняющая система Perl обеспечивает интуитивные ожидания автора программы без дополнительных уточнений с его стороны.
В языке Perl учтены многие психологические особенности программистов, в том числе даже программистская склонность "к экономии усилий". Например, более часто употребляемые конструкции языка записываются кратко, а редко используемые - длиннее. В этом заключается так называемый принцип "кодирования Хаффмана", название которого восходит к широко используемому методу сжатия данных битовыми последовательностями переменной длины, предложенному Дэвидом Хаффманом (D.A. Huffman).
Принцип "отсутствия встроенных ограничений", которому при всякой возможности следуют разработчики Perl, предполагает максимум свободы для программиста, например: длина имени переменной может достигать 252, в строках могут храниться любые двоичные данные, строка может занимать всю доступную память, объем используемой памяти ограничивается только ОС.
В следующих лекциях будут затронуты и другие принципы и положения философии Perl, а также проиллюстрированы уже упомянутые.
К настоящему времени в мире образовалось многочисленное международное сообщество программистов, пишущих на Perl (шутливо называемое Perlfolk - "народ Perl"). По всему миру созданы группы пользователей языка Perl. Некоторые (но далеко не все) из них зарегистрированы в списке на сайте www.pm.org. Развитию, продвижению и распространению языка Perl способствовало немало выдающихся программистов, среди них: Тим Банс (Tim Bunce), Грэхем Барр (Graham Barr), Малькольм Битти (Malcolm Beattie), Хуго Ван Дер Занден (Hugo van der Sanden), Илья Захаревич (Ilya Zakharevich), Ник Инг-Симмонс (Nick Ing-Simmons), Гурусами Сарати (Gurusamy Sarathy), Линкольн Штейн (Lincoln Stein) и многие другие, а также тысячи поклонников этого языка во всем мире. Большую поддержку языку Perl и всему движению программного обеспечения с открытыми исходниками (open source software) оказывает известный книжный издатель Тим О'Рейлли (Tim O'Reilly).
Энтузиастами из разных стран написано огромное число модулей, расширяющих возможности Perl, которые распространяются через "Всеобъемлющую сеть Perl-архивов" CPAN (Comprehensive Perl Archive Network). Это грандиозное собрание модулей начал Андреас Кениг (Andreas Kеnig), а сейчас координатором проекта выступает Яркко Хиетаниеми (Jarkko Hietaniemi). Модули в архиве CPAN хорошо документированы, снабжены проверочными тестами, их легко устанавливать и удобно использовать. Авторы модулей постоянно совершенствуют их, а в тестировании принимают участие тысячи добровольцев, так что качество исполнения весьма высокое. На сайте CPAN и его зеркалах хранится громадное количество модулей для решения самых разных задач: от работы с биологическими данными и музыкой в формате MP3 до утилит шифрования и интерфейсов к самым экзотическим базам данных. Самые популярные модули, такие как CGI.pm, включены в стандартную поставку системы программирования Perl.