Язык программирования Perl: автор, описание, плюсы и минусы
Это важное событие в мире программирования произошло в 1986 году, когда обычный на первый взгляд парень Ларри Уолл после кропотливой работы объявил миру, что разработал язык программирования Perl. Путь к этому знаменательному событию оказался трудным и тернистым, но результат того стоил. Как, кто и зачем разработал новый язык программирования? Здесь есть ответы на все эти вопросы.
Предыстория
Толчком для этого открытия послужила веская причина. Тогда он принимал участие в проекте UNIX. Работа была сложная, так как необходимо было создать безопасную сеть со многими уровнями, чтобы была возможность объединить работу нескольких компьютеров, работающих друг от друга на значительных расстояниях. Весь процесс был выполнен успешно, но вот отчеты пришлось делать очень трудоемкие, не только с огромным количеством файлов, но и с перекрестными ссылками между ними.
Уолл решил применить для работы фильтр awk, но возникло неожиданное препятствие: невозможно было управлять ни открытием, ни закрытием огромного числа файлов - по иронии – на основе в них же содержащейся информации о расположении этих файлов.
Вначале Ларри, чтобы разрешить непредвиденную проблему, решил написать специфическую системную утилиту. Она, казалось бы, являлась выходом из создавшейся ситуации. Но до этого им было уже составлено несколько утилит для решения этой проблемы, которые, к сожалению, не стали выходом для стандартов UNIX.
Вот потому талантливый системный администратор, по образованию лингвист, что помогло ему в работе, рискнул и создал язык программирования Perl, чтобы была возможность одновременно обрабатывать текстовые файлы, находить решение для системных задач, создавать более понятные отчеты. И в то же время чтобы это было низкоуровневое программирование, которое являлось бы доступным на языке С. Потому интерпретатор языка Perl и был написан на нем.
Новый язык программирования: причина возникновения
Как утверждал Ларри, помогла ему создать новый язык лень. Но именно та лень, которая позволила решить важную задачу: как избежать составления многочисленного числа программ на разных языках, которые были неотъемлемой частью инструментальных средств UNIX. Слишком утомительной была такая процедура.
Достоинство нового языка оценили другие, так как в нем гармонично сочетались возможности обработки файлов и системного администрирования. А это именно два необходимых факта, которые нужны во время программирования системы UNIX.
Следует отметить, что у языка программирования Perl есть небольшое отличие от других подобных языков: он появился оттого, что в нем назрела необходимость, а не для того, чтобы поразить пользователей или придумать очередное красивое средство, которое не сыграет особой роли.
Наоборот, когда Ларри ознакомил пользователей со своим изобретением, среди системных администраторов оно произвело истинный фурор, ведь теперь отпадала необходимость тратить много времени, чтобы вникнуть в несколько языков программирования, и появилась возможность легко решить проблемы путем использования единого языка с использованием таблицы символов.
Особенности
В переводе на русский язык аббревиатура Perl звучит как «практический язык, чтобы извлекать данные и составлять отчеты».
Символом этого вида языка решили сделать верблюда, наверное, посчитав, что, так как животное это благородное, выносливое, способно много дней безропотно нести тяжелую ношу, такой же труд напоминает нагрузку на новый язык, тоже нешуточную.
Почему новый язык сразу оценили многие пользователи, есть много причин. Кто пользуется системой UNIX, знает, что настройки здесь проходят через специальные файлы - обычные текстовые, а изменения осуществляются после выполнения команд. Они написаны на особом языке оболочки, а их выполнение происходит из командной строки.
Система UNIX позволяет создавать индивидуальные команды, опираясь на команды интерпретатора и сохраняя их. Они остаются в текстовых файлах, и если требуется, выполняются как стандартный набор команд операционной системы - только через командную строку.
Команды пользователя иначе именуются скрипты. В системе UNIX приходится операционному администратору писать большое количество скриптов, которые, в свою очередь, обрабатывают последующие скрипты, т. е. текстовые файлы с использованием специальных программ:
- Awk. Программа дает возможность сопоставлять с данными образцами и служит генератором отчетов.
- Sed. Выступает как пакетный редактор для текстовых файлов.
Программы в качестве фильтров поочередно считывают строки входных файлов. Затем они выполняют применимые к строке действия, которые определяются благодаря командам программ. При этом выделяется цепочка символов по определенным шаблонам, замена по установленным правилам, генерируются новые файлы.
Большие возможности
Новый язык программирования Perl открыл очень богатые возможности в тех случаях, когда требуется обработать текст, устойчивые выражения. Отличает Perl большие варианты вспомогательных модулей.
Со временем этот уникальный язык расширил свои границы, и теперь широко используется в веб-разработках и играх, если необходимо сетевое программирование или графическая разработка интерфейсов для пользователей.
Язык прижился и полюбился за легкость использования, сейчас его признают как самый динамический язык программирования. Он поддерживает разнообразные парадигмы, куда входят стили – функциональный, процедурный и другие, у него имеется контроль за памятью, есть поддержка обработки текста.
Не зря один из девизов Л. Уолла гласит, что вещи простые могут оставаться простыми, но сложные обязаны выполняться.
Освоить язык несложно, разобравшись в выражениях присваивания, блоках кода, управляющих структурах и функциях.
Схожесть c другими языками
Ларри многое позаимствовал из других языков программирования. Например:
- Командные оболочки UNIX. Переменные маркированы ведущими знаками, они четко выражают тип переменной и помогают этим переменным являться в строках интерполированными. Встроенные функции обеспечивают инструментарий, а он используется для программирования оболочки.
- Массивы из Лиспа.
- Использование Perl регулярных выражений из awk, заодно позаимствовав от него ассоциативные мотивы.
- Из sed.
Но с собственными задачами новый язык справлялся гораздо быстрее, и его, поэтому начали применять не только для решения задач системного администрирования.
Уолл почерпнул у Г. Спенсера пакет, который помог освоить Perl регулярные выражения, модифицируя его под свое детище. Многие разработанные функции – заслуга не только Ларри. Коллеги и друзья не менее увлеченно старались привнести в разрабатываемую уникальную программу свои новшества. А когда язык появился в интернете, образовалось целое сообщество единомышленников, которые тоже помогли его усовершенствовать. В работе задействовано с тех пор, как утверждает статистика, более 10 000 программистов.
Впрочем, язык и сейчас усовершенствуется благодаря разработке пакетов, которые используются с успехом в реализации новых применений языка под развивающиеся технологии, связанные с информацией.
Этапы развития
Небольшие, но значительные этапы пути можно выделить в таблице.
Выпускаемые версии | Время создания |
perl 1. Много возможностей не содержала. Это был самый простой способ поиска в файлах по шаблонам. Но имелись дескрипторы файлов, формат и скалярные переменные. | 1988 год. Январь. |
perl 2. Появился пока еще не усовершенствованный механизм регулярных выражений. | 1988 год. Июнь. |
perl 3. Разработчики добились возможности обработать потоки двоичных данных. | 1989 год. Октябрь. |
perl 4. Появилась по большей части благодаря книге, увидевшей свет, «Programming Perl», но под названием больше известным, как «Верблюжья книга». Закрепил документировано новый язык. Этот период прошел целую серию релизов, в результате остановившись на версии 4.036. Это был уже 1993 год. Тогда началась работа над следующей - V - версией. | 1991 год. Март. |
perl 5. Появилась поддержка сложных типов данных, объектная модель, что включает в себя ссылки, пакеты, а также замыкание в качестве значения. Создается список рассылок, чтобы можно было координировать работу на разные платформы. По сути, это явилось главным форумом по разработке, портированию и обслуживанию. Модули теперь являются с важной частью версии, ведь они смогли расширить язык, но без участия модифицирования интерпретатора. Это смогло его стабилизировать, однако расширило языковые возможности. | 1994 год. Октябрь. |
Уникальный Perl - язык программирования: плюсы и минусы
Perl 5 активно разрабатывается и теперь, пополняясь все новыми версиями. Но все разработки роднит несколько факторов: выполняется автоматическая типизация данных, проводится автоматический контроль над памятью.
Благодаря интерпретатору известны не только типы, но и запросы памяти каждого объекта программы, и ему не составляет труда распределить память, освободить при подсчете ссылок.
Нужно отметить, что Perl-программирование отличает интерпретатор от других. Доказательством тому являются трансляция программы в промежуточный байт-код, а уже потом начинает выполняться. В сравнение: традиционный работает немного иначе – вводимый оператор интерпретируется и мгновенно выполняется, что чревато синтаксическими ошибками во время рабочего процесса. Perl позволяет обнаружить такого рода ошибки уже в период трансляции в бай-код.
Для того чтобы перевести один вид данных в другой, потребуется автоматический процесс, если же невозможны переводы каких-либо видов данных, это может привести к роковой ошибке.
Заслуга версии 5 004 в том, что здесь имеется пакет UNIVERSAL, который языку дал основной объект, а от него произошли все классы – на автоматической основе. Появилась возможность запросить версию модулей. Стало реальностью поддерживать запрашивать версию модулей. В дополнение к этому perl стал поддерживать многие операционные системы, и Microsoft Windows в том числе.
Версия 5.005, вышедшая в 1998 году, значительно повысила качество процессора регулярных выражений, улучшила новые перехваты в бэкенд, что решилось с помощью определенных модулей и расширила поддержку операционных систем.
Последние обновления
Двухтысячный год подарил миру новую, 5.6, версию языка перл. Она уже выглядела намного солидней первых, имела 64-битные системы, в состоянии была поддержать файлы более двух Гб, включала представление строк, учитывая стандарт юникод, а также ключевое слов – our. В этот период меняется схема наименований версий, чтобы она была более близкой к другим проектам – с открытым исходным кодом.
Интересным фактом является такое решение: если в разработке находится версия, ей будет присвоен номер с нечетными цифрами, а стабильная получает четную нумерацию.
Уолл тогда обратился к своим приверженцам с просьбой вносить предложения для создания более продвинутой версии. Его призыв был услышан, а итогом явился 361 документ, что помогло разрабатывать VI версию. На суд пользователям представили документ, который, скорее всего, походил на сводку, а эта версия существовала, но лишь в виде описания языка. Ряд документов превратился в спецификацию этой версии. Попытка запустить в действие интерпретатор VI версии в 2006 году была остановлена. Но с 2009 года под названием Rakudo Perl эта версия живет и периодически ее обновляют.
Значительное изменение процесса разработки Perl 5 произошло после появления Perl 5.11. Сообщество разработчиков перешло на ежемесячный цикл выпусков, с планированием даты выпуска на три месяца вперед.
Новая версия
Версия 5.8 появилась в 2002 году. Знаменита она тем, с этого времени ежегодно обновлялась до 2008 года, значительно улучшила поддержку юникода, добавила много функций, в которые входят поддержка многопоточности, оригинальная реализация ввода-вывода и увеличила точность числовую. И, опять же, появились новые модули.
К 20-летию создания языка программирования общего назначения новая версия под номером «5.10.0» не разочаровала пользователей в очередной раз. Появились новые операторы, а также «умный» - совпадения, прошло обновление регулярных выражений.
Что принесли последние годы работы?
Каждый год все новые усовершенствования помогали сделать язык, изобретенный Уоллом, все наиболее легче проще и доступнее. 2010 год ознаменовался тем, что синтаксис языка perl получил поддержку package NAME VERSION, перегрузку операторов регулярных выражений, в последующие годы обновлялись модули, расширялась поддержка операторов.
Была достигнута цель – указать во время работы ту версию, которую следует эмулировать, значит, позволить обновить perl, но при этом не потерять рабочие способности использованных скриптов, которые представляют угрозу оказаться несовместимыми с представленной новой версией. Стало больше функций, увеличилась безопасность.
В конце мая, совсем недавно, появилась очередная версия, как всегда, более усовершенствованная и удобная для работы. Сегодня ее может протестировать любой желающий и на своем лично опыте убедиться, что для создания этого языка программирования проделано немало работы.
В этом языке Perl массивы не ограничены. Можно решать, используя язык, нетрадиционные задачи, для осуществления которых было бы в другом случае задействовано несколько, выполнить задания администрирования, обработать качественно текстовые файлы, и на все проблемы времени будет затрачено не так много. Разрабатывая новые программы, используя таблицу символов, задействуя необходимых операторов, результат получится правильный и быстрый.
Эта статья в очередной раз доказала, что для энтузиастов своего дела нет ничего невозможного. Порой даже самые незначительные проблемы ведут к полезным открытиям, которые могут сделать нашу жизнь чуточку проще.