Perl умер — и программисты стали наглее. Что пошло не так?
Perl — безумный, хаотичный язык, который ненавидят все и любят только психи. Зато он честный: в его коде видна человеческая душа (или её отсутствие).
Когда-то Perl был повсеместен. Или, по крайней мере, так казалось. На рубеже тысячелетий казалось, что почти каждый веб-сайт был создан на основе этого языка сценариев. Он обрабатывал огромные объемы текста — мощные и простые механизмы для этого были частью языка — и даже использовался в биоинформатике для обработки генетических данных. Согласно одному из списков, компании, которые использовали Perl, были самыми разными: Amazon, Google, Yahoo, Deutsche Bank, Akamai, Citibank, Comcast, Morgan Stanley, Mozilla. Большая часть Craigslist была запрограммирована на Perl.
В этом языке программирования есть объединенная природа мэшапа, и все это в соответствии с его девизом: “Существует более одного способа сделать это”. Точно так же, как в английском языке существуют синонимы, в Perl есть множество подходов к написанию одного и того же текста. Хотя в определенной степени это является общей чертой языков программирования, Perl, похоже, хочет ошеломить вас этим.
Например, существует множество способов написания условных выражений: от использования традиционного “if” до “unless”; до записи оператора if в обратном порядке в одной строке; и даже оператора, состоящего из трех частей, который включает в себя вопросительный знак и двоеточие. У меня сохранилось отчетливое воспоминание о том, как в начале 2000-х годов я однажды писал код на Perl, а на следующий день не понимал, что написал.
Но этот беспорядок и причудливая структура на самом деле намеренны и являются частью более широкой философии, лежащей в основе Perl. Создатель языка, Ларри Уолл, получил образование в области лингвистики, и его намерением было стать, вместе со своей женой, миссионером, занимающимся редкими языками. В итоге Уолл выбрал другой путь и полностью посвятил себя программированию. Но его глубокие размышления о том, как работают языки, никогда не покидали его.
Уолл, по-видимому, считает, что стремление к языковой чистоте было переоценено. В английском есть слова из французского, греческого, немецкого и даже аккадского языков, что свидетельствует о его извилистой истории и разнообразном происхождении. Мы разделяем инфинитивы и используем модификаторы. У нас есть каламбуры, как намеренные, так и нет. Уолл рассматривал эволюцию как часть процесса развития языка. Здесь происходит органичный процесс, и конечные продукты не обязательно должны быть упорядоченными. Таким образом, широкий и непредвзятый подход к построению языка жизненно важен, будь то язык, предназначенный для написания сценариев или сонетов.
У Perl есть “более чем один способ” делать что-то, а у английского языка есть множество стилей и гибкий характер, который может включать в себя все — от кулинарных рецептов до хайку, списков покупок и Фолкнера. Это признак того, что у него действительно открытый подход. Как однажды сказал Уолл: “Я твердо верю, что язык… должен быть аморальным художественным средством”. Если у Perl и есть какое-то всеобъемлющее видение или догма, то это просто тот факт, что, возможно, догмы программирования вообще не должно быть.
Чтобы было понятно, я никогда не был опытным пользователем Perl. Его синтаксис и беспорядочность ошеломили меня своей мощью, и когда я познакомился с хорошо упорядоченной структурой Python, я перешел на этот язык и никогда по-настоящему не оглядывался назад. На самом деле, это может быть намеком на то, почему язык утратил свой блеск. Даже в 1998 году, во время своего расцвета, высказывались предположения, что чрезмерное развитие Perl может привести к желанию перейти на что-то “более чистое”. Какой бы ни была причина, Perl уже не так популярен, как раньше.
И все же я ловлю себя на том, что возвращаюсь к этому странному языку, и думаю, что это из-за смирения, лежащего в его основе. Нам нужно смирение, поскольку мы признаем, что наш мир сложнее, чем мы могли бы себе представить, даже или особенно когда речь заходит о крупных технологических системах нашего собственного производства (искусственный интеллект, кхе-кхе). Единая всеобъемлющая теория или модель не поможет в мире исключений, крайних случаев и серьезных сложностей. Нам нужны медленные, спотыкающиеся подходы, и эволюционный плюрализм Perl может указать нам путь.
Perl может рассказать нам даже о нас самих. Если бы мне пришлось выбирать язык, который наиболее далек от Perl, это был бы Lisp. Разработанный примерно в 1960 году, Lisp отличается элегантностью, почти математической конструкцией. “Уравнения Максвелла для программного обеспечения”, как было описано в его определении, — просто чтобы дать вам представление об эзотеризме. Perl, конечно, не такой. Он органичен и иногда сводит с ума. Другими словами, несмотря на всю свою беспорядочность, это язык народа.
И в этом особенность языков программирования: на самом деле они предназначены для людей; они не могут быть понятны только машинам. В классическом учебнике “Структура и интерпретация компьютерных программ” авторы разъясняют это следующим образом: «Таким образом, программы должны быть написаны для чтения людьми и только случайно — для выполнения машинами». Да, шутка в том, что Perl “доступен только для записи”, но вы всегда можете сказать, что он был написан людьми.
Я признаю, что возрождение Perl маловероятно. Но, возможно, урок Perl вечен. Он призывает нас быть менее ценными — и более человечными — когда речь заходит о языках программирования и их дизайне. Только тогда мы сможем преодолеть пропасть между нами и машинами.
Конец хаосу в программировании: AWS запускает Kiro, агентную ИИ-среду разработки









