Особенности X1-forge

Преимущество языка Perl для платформы X1-forge

Прежде, чем назвать наиболее важные из преимуществ языка Perl, давайте проведем сравнительный анализ языков Perl и PHP относительно сферы применения и возможностей.

Ниже рассматриваются следующие аспекты сравнения обоих языков:

  • Природное различие языков
  • Ядро языка
  • Переносимость и мультиплафторменность языка
  • Объем и качество функционала
  • Синтаксис языка
  • Зрелость языка
  • Быстродействие и пропускная способность
  • Безопасность
  • Качество и возможности модернизации кода

Природное различие языков Perl и PHP

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

 

PHP же был создан только как скриптовой инструмент расширения возможностей HTML-кода, т.е. для решения узкоспециализированных задач. В результате для получения определенных (немаловажных; в частности по быстродействию исполнения) преимуществ, он приобрел и ряд весьма спорных качеств, которые всегда присутствуют в компромиссном подходе в сравнении с основательным.

 

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

Продолжение

Ядро языка Perl

Как полноценный язык, Perl имеет функциональное ядро - набор независящих от платформы и операционной системы функций, форматов и правил.

 

У языка PHP - нет ядра. Именно поэтому он может иметь лишь узкопрактическое применение для решения конкретизированных задач в строго определенных условиях. При смене этих условий требуется частичная или полная переделка программного кода PHP.

 

Переносимость и мультиплафторменность языка Perl

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

 

И очень важно понимать, что если требуемый набор PHP функций хост-провайдер не предоставляет, то придется отказаться от использования. Самостоятельно подключить их невозможно из-за отсутствия ядра у PHP. Именно этот фактор делает PHP зависимым и непереносимым. Фактически только простейшие PHP-скрипты могут быть перенесены с хостинга на хостинг.

 

Если же рассматривать в этом смысле язык Perl, то любое приложение, написанное на Perl может быть установлено в любом хостинге, т.к. ядро везде одинаковое, а нужный функционал можно устанавливать и самостоятельно без обращения к хост-провайдеру.

 

Продолжение

Объем и качество функционала Perl

В связи в вышеназванным фактором непереносимости, для PHP разным программистам пришлось создавать множество различных библиотек для решения своих конкретных задач. В итоге сейчас их уже несколько тысяч. Разумеется, тестирование их на надежность проводилось ограниченным числом специалистов и эти показатели более чем условны. Множество разных решений одних и тех же задач затрудняет новые разработки, обмен кодом и испытание средств на надежность.

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

Таким образом, если Вам нужно создать примитивный механизм на конкретном сайте - Вы можете использовать PHP. Если же Вы хотите создать сложный и серьезный продукт - использование PHP изначально сделает его ненадежным.

 

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

 

Язык Perl позволяет опираться на надежный функционал, позволяя создавать качественные и серьезные решения.

 

Продолжение

Синтаксис языка Perl

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

Большинству профессиональных программистов очень нравится именно краткость языка Perl. Однострочной "скороговоркой" можно решить сложную задачу.
Для PHP это попросту невозможно.

 

Зрелость языка Perl

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

 

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

  • В PHP механизм указателей (ссылок) до сих пор находится в зачаточном состоянии. В Perl же даже многоуровневые ссылки на функции уже появились 20 лет назад.
     
  • В PHP вообще нет массивов. То, что в PHP именуется массивом - является "хэшем" в реальности. В этом смысле PHP находится на уровне awk.

PHP будет еще долго меняться, создавая массу проблем для разработчиков. Возможно, студентам и школьникам будет интересно участвовать в этом процессе, но серьезные программисты не будут тратить свое время на PHP, если им предстоит разработка значимых приложений.

Продолжение

Быстродействие и пропускная способность Perl

Для активнопосещаемых сайтов PHP кажется наиболее подходящим решением, т.к. его интерпретатор интегрируется в Web-сервер, что многократно увеличивает производительность. Большинству доморощенных web-программистов это кажется, под час, единственно возможным решением.

Это конечно, не так. Любой профессионал способен написать средства по кешированию запросов, которые могут не только догнать PHP-проекты по пропускной способности, но и значительно их обойти. В нашей компании с подобной проблемой успешно справились еще в 2003 году.

Здесь важно понимать, что вне зависимости от быстродействия PHP-скриптов - интерпретатору приходится выполнять работу при каждом обращении. Тогда как любое средство кеширования просто снимает необходимость в запуске интерпретатора для 90-95% всех запросов.

 

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

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

 

Безопасность Perl

Юным программистам очень нравится еще одно качество PHP - простота отладки. Действительно, сообщения об ошибках выдаются напрямую в броузер, а не пишутся в error_log. Т.е. можно не тратить драгоценные секунды на просмотр логов. Поэтому так часто на детищах таких авторов можно заметить разнообразные результаты их ошибочных действий.

 

Продолжение

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

Но, пожалуй, самое неприятное в таких сообщениях - это потенциальная возможность для злоумышленников узнать, какой именно код установлен без каких-либо попыток взлома. Что, разумеется, значительно упрощает им жизнь. Сайт на PHP взламываются без малейших затруднений. Фактически, если на сайте даже не установлен файл с PHP-скриптом, а просто известно, что PHP разрешен там, то на 100% этот сайт можно взломать вне зависимости от сложности систем защиты. Сам язык PHP, т.с. своей природой, поможет злоумышленникам.

Все дело в том, что любой PHP-скрипт, каким-либо образом очутившийся в зоне, незамедлительно получает права на запуск. Для этого нет необходмости в обращении к chmod. Поэтому, если такой скрипт попадет через оставленную лазейку (по невнимательности разработчика), с сайтом и сервером можно сделать все, что угодно.

 

А если еще и вспомнить, что PHP имеет широкий набор функций для работы по протоколу HTTP (которые уже встроены в веб-сервер), то такой скрипт не только сможет нанести ущерб сайту и серверу, но и другим сайтам и серверам, находящимся удаленно. Он может рассылать СПАМ, участвовать в DDoS-атаках или производить взлом с Вашего сервера, таким образом подставляя именно Вас. И если к этому еще добавить и то, что PHP весьма затрудняет диагностику источника атак (т.к. сам не пишет ничего в файлы логов), то счастливый обладатель PHP-сайтов имеет все эти проблемы, сперва потенциально, а через несколько месяцев и реально. До 40% всех обладателей PHP-Интернет-систем становились причастны к распространению вирусов, хакерским атакам и СПАМу.

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

Продолжение

Качество и возможности модернизации кода Perl

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

В этом плане основной проблемой PHP является то, что на PHP невозможно написать уникальный (только PHP) код. PHP - это скриптовые конструкции в HTML-файлах, поэтому всегда присутствует смесь HTML-текста и PHP-скрипта. Т.е. смесь тектовой информации (контента) с программным кодом. А любой маломальски образованный программист знает, что контент с кодом должны быть разделены (по очень многим очевидным причинам).

И, что уже совершенно очевидно - смесь контента с кодом ухудшает его читаемость, что, как следствие, приводит к усложнению поиска ошибок, а также модернизации и обновления кода. Фактически на PHP имеет смысл делать только разовые работы. Постоянно совершенствуемые продукты будут увеличивать время создания при каждом новом этапе в разы, что приведет к полному торможению процесса уже через тройку лет. Собственно, это и наблюдается в продуктах тех разработчиков, которые выбрали PHP. Их системы морально устарели. И вместо совершенствования, они пытаются сменой имиджа создать ощущение новизны.

Компания Сайт Мэйкерс постоянно совершенствует свои продукты на протяжении более 13 лет. Разумеется, это было бы невозможно, если бы выбор пал на PHP. Только язык Perl позволяет создавать эффективные и современные решения, а также продолжать жизнь ранних разработок, совершенствуя их возможности из года в год.




Продолжим знакомство с платформой X1-forge в статье:
Особенности X1-forge

(495) 544-88-61
(13:00-19:00 Москва)
© 1998-2011 ООО "Сайт Мэйкерс". Все права защищены.
© 2012 X1-forge - платформа Интернет-магазина. Разработчик: ООО "Сайт Мэйкерс"
Торговые марки Site Makers, X1-forge, X-forge, Сайт Мэйкерс, Платформа ИКС, Платформа ИКС1 принадлежат ООО "Сайт Мэйкерс".