Найти тему
PHP Боярин

Порога входа нет!

В конце прошлого тысячелетия, когда я был юн и любознателен, в мире веба рулил Perl.

Наиболее популярной связкой было сочетание кода на Perl, через CGI (и нет, это не computer-generated imagery, а вовсе даже common gateway interface) подключенного к серверу Apache, а в качестве базы данных набирала популярность жутко медленная MySQL. Тогда все было жутко медленным, и это никого не беспокоило, потому что при скорости 33 кбит/с не так важно, ответил ли сервер за 0.1 секунды или аж за целых две секунды. Все равно страница будет грузиться минуту.

Perl, по меткому выражению, является языком "только для записи" (write-only language). Читать его почти невозможно, потому что весь он состоит из одних только регулярных выражений и закорюк (пример рабочей программы для игры в Го можно посмотреть здесь). Пожалуй, на perl'e можно только пытаться писать читабельно.

Другим доступным вариантом было использование С/C++. Как ни странно, выучить "плюсы" многим было легче, чем perl. Вдобавок, если perl это корявое недоразумение, созданное для издевательства над людьми, то Си - настоящий промышленный язык, без которого вся наша цивилизация погрузилась бы в бездну невежества.

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

Если в программе была ошибка, ни тот, ни другой не заботились о том, чтобы вывести сообщение о ней на экран или в лог. Internal Server Error - и баста. В логе можно было выловить что-то более подробное: "Premature end of script headers: test.cgi". Много кресел было сожжено огнем пламенеющих окорочков программистов прошлого века.

Брюс Уэйн: я не понял ни слова!
Люциус Фокс: Я знаю. Я просто хотел подчеркнуть, как это было сложно!
(х/ф "Бэтмен: начало")

Стоит упомянуть также забавный факт: Гугл еще не придумали. StackOverflow не было даже в проекте.

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

Не надо было больше разбирать заголовки запроса: переменные уже были объявлены. Не надо было лезть в логи в случае ошибки: сообщение об ошибке с указанием предполагаемого номера строки выводилось прямо в браузер. Модуль PHP к серверу Apache сам формировал заголовки ответа. Код можно было встраивать прямо в HTML-страницу. Magic quotes автоматически экранировало кавычки. Справочное руководство по PHP было прекрасно уже тогда.

Толпы начинающих разработчиков ринулись делать сайты на PHP. Они были медленные, кривые, полные дыр в безопасности, но именно PHP сделал веб-разработку по-настоящему массовой. Это далось дорогой ценой. На многие годы PHP стал "попсовым" языком, которым пользуются только криворукие новички.

Экосистема выдержала этот удар. Когда вышел PHP 5, с обновленным движком объектов, стала возможна промышленная разработка. Достаточно сказать, что на PHP написана социальная сеть ВКонтакте. А, начиная с версии 7, некоторые разработчики на PHP сами стали строить из себя высшую касту, хотя порог входа так и остался ничтожно малым.

Современный новичок имеет в своем распоряжении поисковые системы, сайты вопрос-ответ (StackOverflow и другие), виртуальные машины (о да, детка, установка PHP и Apache на Windows была отдельной историей), скоростные сети, телеграм-каналы, где денно и нощно общаются разработчики. Порога входа нет.

В веб-разработке уже не помнят про Perl-извращенцев и Си-гигантов.

PHP царит, но сделать первый шаг так же просто, как и 22 года назад!

#программирование #php