Verification: a143cc29221c9be0

Perl or php for web

Perl or php for web

Perl

В Интернете встречается мнение, что Perl устаревает и пишут на нём в основном те, кто сталкивается с легаси-кодом. Так ли это?

Легаси-код — код, который писали мамонты предыдущие или сторонние программисты, используя устаревшие языки или технологии.

Сергей Сединкин, старший специалист по решению багов REG.RU:

Отчасти это так. В крупных известных компаниях можно встретить проекты, написанные на Perl. Их надо развивать и поддерживать. Если код подвергался рефакторингу, то он будет отвечать современным стандартам. Работать с таким кодом одно удовольствие. И какая разница, на каком языке программирования он написан?

Что касается новых проектов на Perl. Недавно Владимир Перепелица из Mail.ru участвовал в интервью, где рассказал, что они пишут облако на Perl. И это только новый код и новый проект. Больше примеров не могу привести, потому что не интересовался сторонними проектами.

Александр Ткач, Perl-разработчик REG.RU:

Доля Perl в вебе, безусловно, сократилась в пользу PHP, Node.js и Python. В основном, Perl востребован в компаниях, где кодовая база изначально была написана на Perl-е в те годы, когда альтернативы на бэкенде ему ещё не было. Объём легаси-кода, написанного на Perl-е в топовых IT-компаниях в прошлые годы, большой и требует поддержки. Где-то он переписывается на другие языки программирования (ЯП), а где-то остаётся основным ЯП, в том числе для новых проектов и микросервисов. Я думаю, что, во-первых, процесс миграции с Perl — небыстрый, а во-вторых, рефакторинг и поддержка легаси-кода на больших проектах тоже может дать хороший опыт в программировании, так что в ближайшие лет 5 хоронить Perl пока рано. Кроме того, Perl поддерживается профессиональным сообществом, оно дружное и экспертное. Зачастую найти там ответ на сложный вопрос получится быстрее, чем в больших сообществах по PHP или Python.

Зачем использовать Perl для веба, если есть Python?

Сергей Сединкин:

Большое комьюнити, обширная база открытых модулей на CPAN почти под все задачи. Perl становится менее популярным, значит, количество программистов на Perl будет сокращаться. Из-за этого возрастёт ценность каждого конкретного программиста. Значит, жди почёт и уважение в компании.

Александр Ткач:

Правильнее было бы противопоставить в этом вопросе Perl языку PHP, чья доля в сегменте веб-разработки в разы больше доли как Perl, так и Python. Для простых веб-проектов типа лендингов или блогов смысла в Perl действительно нет — есть готовые решения на PHP (CMS — WordPress, Joomla и другие), а на больших и сложных проектах он может составить конкуренцию другим ЯП. Программирование на Perl дает более глубинные знания, чем программирование на PHP, при этом синтаксис проще, чем у Python, и практически любую задачу можно решить на этом ЯП несколькими способами. Я думаю, что человек, освоивший Perl, сможет затем с лёгкостью перейти на PHP или на Python — они кажутся проще после Perl — и писать при этом качественный код.

Правда ли, что у Perl достаточно сложный синтаксис?

Сергей Сединкин:

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

Александр Ткач:

В Perl достаточно запомнить, какие существуют специальные переменные и операторы, чтобы разобраться в синтаксисе. Да, Perl позволяет при желании записывать код очень кратко, но на практике сталкиваться с такой записью придётся редко. По читабельности Perl-код не уступает коду на PHP или Python, при этом, в отличие от Python, в Perl нет строгого требования выделять блоки кода отступами.

Что можно делать с Perl в вебе? Какие задачи ждут тех, кто планирует искать работу Perl-разработчиком?

Сергей Сединкин:

Если кратко, то это бэкенд, админские скрипты, отчёты, системные демоны.

Александр Ткач:

На Perl есть веб-фреймворки современного уровня с поддержкой MVP и ORM — Catalyst, Mojo, Dancer, которые не уступают фреймворкам на Python (Django) и PHP (Laravel, Yii). Задачи всё те же, что и на других популярных ЯП для серверного программирования, — разработка бэкенда классических веб-приложений, а также микросервисов, платёжных шлюзов, менеджеров очередей и иногда асинхронных решений.

Python

На вопросы о Python отвечает Сергей Сединкин, старший специалист по решению багов REG.RU.

Хорошо ли начинать изучать программирование с Python, учитывая, что он достаточно высокоуровневый и для него есть множество готовых библиотек? Не будет ли потом недостатка в глубинных знаниях и понимании работы технологий, которые скрыты в Python за абстракциями (например, процесс выделения памяти в программах)?

В современном мире программирование движется в сторону решения бизнес-задач. На современные серверы ставят железо, которое работает достаточно быстро. Куда лучше написать программу, решающую конкретные задачи пользователя и приносящую ему благо, облегчающую жизнь, чем написать программу, которая работает быстро, но никакой пользы не несёт. Если ваш проект разовьётся настолько, что надо будет изучать низкоуровневые штуки, то именно тогда это и стоит делать. Изучить их будет намного проще с уже готовым багажом знаний. У программиста будет представление, где и зачем нужны оптимизации.

Сфер применения Python много: это и веб, и анализ данных, Machine Learning и так далее. Сможет ли новичок переключиться на другую сферу, если одна чем-то не устроит?

Всё зависит от человека и требований проекта. Особых препятствий быть не должно.

Как начинающему программисту сразу применять свои знания Python на практике (применительно к веб-разработке)?

Советую придумать себе задачу и сразу реализовать её. Например, можно поставить себе цель — создать сайт, в котором будет телефонная книга. В книгу можно добавлять, удалять контакты, менять их. Хранение сделать в базе данных.

Что можно делать с Python в вебе? Какие задачи ждут тех, кто планирует искать работу Python-разработчиком?

С Python в вебе можно делать то же самое, что и с другими языками программирования.

История развития PHP

Первый релиз PHP состоялся в 1994 году. Он представлял собой CGI-скрипт на Perl’е, собирающий статистику о просмотрах резюме разработчика Расмуса Лердорфа. Именно это определило название языка, ведь он вырос из реальной персональной страницы. В то время еще не было понятия Open Source, а все свободные программы распространялись под грифом «freeware» (свободный софт).

PHP

Последовательность появления новых версий:

  1. PHP/FI – к середине 1995 года основной модуль был переписан на C. Появились первые теги для вставки кода в HTML, но пока не было инструментов для стыковки веб-страниц и баз данных. Разработчик добавил поддержку mSQL, чтобы упростить создание сайтов. За счет открытости Лердорфу постоянно присылали рекомендации по исправлению ошибок и улучшению платформы. В результате в 1996 году вышла вторая версия PHP, а уже к 1997 году в сети появилось более 50 000 сайтов, использующих возможности языка.
  2. PHP 3 – создана Энди Гутмансом и Зивом Суразски на базе разработок Лердорфа. Начало работы над обновлением связано с созданием приложения для eCommerce. После этого версия PHP/FI оказалась практически заброшенной. В третьем релизе появился API как основное средство расширения функциональных возможностей. Преимуществом версии стала и поддержка объектно-ориентированного синтаксиса.
  3. PHP 4 – успех третьей версии привел к решению переписать ядро платформы. Поэтому с 1998 года разработчики взялись за создание принципиально новой системы – была заметно увеличена производительность, внедрена буферизация вывода и добавлена поддержка HTTP-сессий. Новый релиз официально представлен рынку в 2000 году. Как и изначально, доработкой функционала занимались разработчики со всего мира.
  4. PHP 5 – выпущена в 2004 году. Помимо очередного роста производительности, появилась поддержка XML, а система программирования стала похожей на Java. Из-за таких серьезных изменений релиз потерял совместимость с предыдущими версиями, но новые возможности стоили того. Платформа превратилась в полноценный язык программирования.

Сейчас более распространены 6 и 7 версии PHP. Первая с 2010 года считается бесперспективной из-за сложностей с поддержкой Юникода, поэтому на хостингах часто можно увидеть пятый релиз в качестве базовой платформы. С 2015 года новые разработки преимущественно ведутся на седьмой версии PHP. В нее добавлена масса новых операторов, поэтому обратная совместимость несколько страдает.

По мере развития PHP перестал быть языком для создания персональных страниц, и термин стали применять со значением Hypertext Preprocessor. Система продолжает развиваться – например, в 2020 году официально выпущен 8 релиз PHP. Правда, компания Microsoft, специалисты которой ранее занимались тестированием безопасности, решила отказаться от поддержки языка, но энтузиасты уже взялись искать решение.

Области применения

Преимущество PHP заключается в том, что это серверный язык. Поэтому он и стал основой для создания веб-приложений – пользователи получают результат вычислений, а всю нагрузку по ним забирает удаленный сервер. Именно это стало причиной появления таких CMS, как WordPress, Joomla, Drupal. На PHP написаны фреймворки типа Laravel, Yii2, Symfony.

PHP лого

Существует три основных направления, где востребован PHP:

  1. Написание скриптов, исполняемых на стороне сервера. Основное применение PHP – создание сайтов, размещаемых на хостинге (заранее настроенном для этого).
  2. Написание скриптов, которые исполняются в командной строке независимо от веб-сервера и браузера. Примеры приложений – Task Scheduler под Windows, cron под Linux.
  3. Разработка приложений GUI, исполняемых на стороне клиента. Основная сфера применения – создание кроссплатформенных приложений.

Язык PHP поддерживается буквально всеми платформами – от Microsoft Windows и macOS до GNU Linux, Unix, RISC OS, OS/2 и других. Также он совместим с распространенными web-серверами – Apache, Personal Web Server, Microsoft Internet Information Server, Netscape, Oreilly Website Pro, iPlanet, OmniHTTPd, Xitami, Caudium.