Журнал «Компьютерра» № 8 от 27 февраля 2007 года | страница 41



Культура скриптов-сценариев получила мощной толчок с появлением веба и первых веб-приложений. Тогдашняя формулировка веб-приложения — «нечто, получающее несколько параметров и формирующее по ним (текстовую) веб-страничку» — идеальное описание именно скрипта; неудивительно, что самый популярный к тому времени скриптовый язык для обработки строк — Perl — стал и самым популярным языком веб-программирования. Некоторое время «быть веб-программистом» означало «знать HTML, JavaScript и — Perl» (вскоре к этому набору добавился PHP). Веб-программирование как деятельность доступная и популярная, с одной стороны, способствовало широкому распространению «скриптового» подхода, а с другой — изменило концепцию самих скриптов: усложнение веб-приложений, возрастание их объема и используемых ресурсов (сеть, БД, графика и пр.) привело к повышению внимания к логичности и понятности скрипта, к его стандартной библиотеке и т. п.

Так Perl проторил дорогу Python’у — языку, который смешал скриптовый и структурный подходы к написанию программ [При желании в истории «скриптов для веба» можно найти аналогии с начальной историей языков программирования: Perl/Fortran, доказавшие, что это возможно и нужно, PHP/Cobol как «временное помутнение сознания, когда еще никто не знал, как правильно», и Python/Algol, внесшие стройность и логичность. Есть, конечно, и множество отличий]. Лаконичные и логичные, легко читаемые программы на Питоне способствовали его широчайшему распространению, поскольку это легкий язык интеграции всего (Google и NASA), встраиваемый в крупные пакеты (от программы 3D-моделирования Blender до игры Civilization IV), язык для преподавания (см. в предыдущей статье о MIT) и, естественно, язык для веба. Успех Питона открыл дорогу другим «стройным скриптам»: легкой Lua — во встраиваемые скрипты, и Ruby — во все остальные области. В каковых «всех областях» вскоре вспыхнула supernova фреймворка для веб-разработки Ruby on Rails. «Руби на Рельсах» со всеми своими последователями, критиками, отрицателями и фанатами — уже сам совершенно отдельный крупный тренд.

Важно здесь, что культура скриптов («скриптовая парадигма») подразумевает допустимость и даже обязательность разных «ухищрений» для удобства программиста. И это именно та «дырка», через которую в широкие массы пошли необычные идеи. То есть в большой степени это вопрос «подачи»: если функция-как-значение — это не «новая парадигма с серьезной теоретической базой, своей терминологией и новым синтаксисом», а «фишечка такая, чтобы удобней» — то элементы функционального подхода в Питоне оказываются вполне естественными и понятными. А поглощение и использование этой «фишечки», естественно, порождает какие-то вопросы (все-таки идея «новая»), на которые (сюрприз, сюрприз!) могут дать ответы те самые «оторванные от жизни теоретики», занимающиеся функциональным программированием (ах, вот как это называется!) уже лет сорок. И вот пожалуйста: замыкания, продолжения, ленивые вычисления — более или менее прижившиеся элементы «обычных скриптов».