Укрощение @Интернет@

       

Часть первая. Философская: размышления о языке


Как бы там ни было, но Perl популярен, а Лисп, Питон и Оберон – нет. Почему? Попробуем разобраться. Для начала нелишне вспомнить популярную поговорку программистов шестидесятых – "важен не язык, на котором вы программируете, а мысли, которые вы этим языком выражаете". В то же время: "выбирая язык, вы выбираете себе судьбу". Ну, если не судьбу, то образ мышления – точно!

Любой язык, неважно компьютерный или нет, прежде всего – квинтэссенция духа своей эпохи. В лице Perl сочетаются свобода движения "Открытых исходных текстов" с противостоянием монополизму Microsoft. Сам же Perl представляет собой создание синтетическое, заимствующие лучшие идеи из десятков языков: форматы вывода были скопированы из Бейсика, динамические контексты подарил Лисп, ассоциативные массивы пришли из awk, а за основу синтаксиса составил Си.

В Perl-е нет внутреннего единства, целостности и архитектурной законченности, – мне он напоминает нору хомяка с надерганными отовсюду горами разной всячины, безо всякой сортировки лежащими на полу. Листинги Perl-программ совершенно нечитабельны и понятны разве что их создателями, а всем остальным в них разобраться ой как не просто! Всюду – нагромождение скобок, прямых и обратных слешей, спецсимволов и никаких следов структуры!

Факт, что такой язык многим приходится по вкусу, наводит на размышления. Структурность – годится для машин, а для людей она бесполезна. Человеческим мыслям свойственна запутанность, сумбурность и… индивидуальность. Речь каждого из нас отличается от речи остальных. Стиль программирования также уникален как почерк, если только… если только язык допускает выражение уникальности. А Perl не только допускает, но и провоцирует ее – ведь в нем и множество умолчаний, и богатый выбор синтаксических конструкций на все случае жизни, и… да все, что угодно! Одна и та же мысль может быть выражена множеством способов - программисту остается лишь выбрать какому из них отдать предпочтение (и ведь каждый предпочитает что-то свое). Язык перестает сковывать разум, он просто не ощущается, как хорошо подогнанный костюм – было бы что сказать, а как сказать – это уже не проблема!


Можно провести аналогию: Perl – это рабочий жаргон толпы, а Ада, Модула, Оберон – литературные изыски классиков. Да, Пушкин и Гоголь в высшей степени структурны и последовательны, но какова этому цена? Помните школьные сочинения? Вот-вот… Вероятно, даже классики не говорили в реальной жизни "правильным" (с литературной точки зрения) языком. Это ж сплошное насилие над мыслью получается!

Если материка сгорела, винт гикнуля, а Windows опять зависла, мы так и говорим: "материнка сгорела, винт гикнулся…", а не выжимаем из себя по капле, с трудом подбирая слова: "материнская плата необратимо вышла из строя, на жестком диске образовалось множество нечитабельных секторов, а операционная система Microsoft Windows вызвала необрабатываемое исключение и…". Вы смеетесь, а ведь многие языки, скажем, та же Ада, именно так и издевается над программистами! Напротив, в Perl – "что думаю, то пишу".

Многие сравнивают Perl с Макдональсом, называя его языком быстрого программирования. А в наш бурный век скорость – весьма существенный фактор, и популярность Макдональсов это как нельзя лучше подтверждает. Девиз всех заказчиков – "здесь и сейчас, вынь и положь". И Perl это позволяет! То, над чем Си-программист сидел бы целый день, на Perl можно написать, порой, меньше, чем за час! Качество работы, правда, в большинстве случаев оставляет желать лучшего, но – это синица в руке, а не журавль в небе.

С философской точки зрения нельзя однозначно сказать: хорош ли Perl или плох. Точно так, нельзя адекватного оценить IBM PC. Оно, конечно, понятно, - никакой это не шедевр инженерной мысли, но… на ней работают миллионы! И Perl, и IBM PC – продукты для толпы, для непридирчивого пользователя. От них воротят нос гурманы, но со своими задачами они сполна справляются, – стоит ли тогда удивляться их популярности?


Содержание раздела