newsmode
search
Меню
arrow_back Назад

If Lisp is So Great

auto_awesomeКраткое саммари

Пол Грэм отвечает на вопрос, почему Lisp не стал массовым языком, если он так хорош. Он проводит аналогию с литературой: Джон Гришэм продаётся лучше Джейн Остин, но это не делает его лучшим писателем. Lisp пугает непривычным синтаксисом, как «Гордость и предубеждение» пугает длинными фразами. Популярность языков самоподдерживается: больше библиотек, совместимость с существующим кодом, предпочтения менеджеров, которым проще заменять разработчиков. Однако языки программирования далеко не равнозначны, и именно поэтому менее популярные, но более мощные языки вроде Lisp продолжают существовать — так же как всегда найдутся люди, читающие Остин вместо Гришэма.

May 2003

Май 2003

If Lisp is so great, why don't more people use it? I was
asked this question by a student in the audience at a
talk I gave recently. Not for the first time, either.

Если Lisp так хорош, почему его не использует больше людей? Мне задал этот вопрос студент из аудитории на одном из моих недавних выступлений. И далеко не в первый раз.

In languages, as in so many things, there's not much
correlation between popularity and quality. Why does
John Grisham (King of Torts sales rank, 44) outsell
Jane Austen (Pride and Prejudice sales rank, 6191)?
Would even Grisham claim that it's because he's a better
writer?

В языках, как и во многом другом, между популярностью и качеством почти нет корреляции. Почему Джон Гришэм (King of Torts, место в рейтинге продаж — 44) продаётся лучше Джейн Остин (Pride and Prejudice, место в рейтинге — 6191)? Даже сам Гришэм стал бы утверждать, что это потому, что он лучший писатель?

Here's the first sentence of Pride and Prejudice:

Вот первое предложение «Гордости и предубеждения»:

It is a truth universally acknowledged, that a single man
in possession of a good fortune must be in want of a
wife.

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

"It is a truth universally acknowledged?" Long words for
the first sentence of a love story.

«Все знают»? Длинноватые слова для первого предложения любовной истории.

Like Jane Austen, Lisp looks hard. Its syntax, or lack
of syntax, makes it look completely unlike
the languages
most people are used to. Before I learned Lisp, I was afraid
of it too. I recently came across a notebook from 1983
in which I'd written:

Как и Джейн Остин, Lisp выглядит сложным. Его синтаксис — или отсутствие синтаксиса — делает его совершенно непохожим на языки, к которым привыкло большинство людей. До того как я выучил Lisp, я тоже его боялся. Недавно я наткнулся на тетрадь 1983 года, в которой написал:

I suppose I should learn Lisp, but it seems so foreign.

Наверное, мне стоит выучить Lisp, но он кажется таким чужеродным.

Fortunately, I was 19 at the time and not too resistant to learning
new things. I was so ignorant that learning
almost anything meant learning new things.

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

People frightened by Lisp make up other reasons for not
using it. The standard
excuse, back when C was the default language, was that Lisp
was too slow. Now that Lisp dialects are among
the faster
languages available, that excuse has gone away.
Now the standard excuse is openly circular: that other languages
are more popular.

Люди, которых пугает Lisp, придумывают другие причины его не использовать. Стандартная отговорка в те времена, когда языком по умолчанию был C, состояла в том, что Lisp слишком медленный. Теперь, когда диалекты Lisp входят в число самых быстрых доступных языков, эта отговорка отпала. Теперь стандартная отговорка откровенно замкнута в круг: другие языки популярнее.

(Beware of such reasoning. It gets you Windows.)

(Остерегайтесь такой логики. Она приводит к Windows.)

Popularity is always self-perpetuating, but it's especially
so in programming languages. More libraries
get written for popular languages, which makes them still
more popular. Programs often have to work with existing programs,
and this is easier if they're written in the same language,
so languages spread from program to program like a virus.
And managers prefer popular languages, because they give them
more leverage over developers, who can more easily be replaced.

Популярность всегда самоподдерживается, но в языках программирования — особенно. Для популярных языков пишут больше библиотек, что делает их ещё популярнее. Программы часто должны работать с уже существующими программами, и это проще, если они написаны на одном языке, — так языки распространяются от программы к программе, как вирус. А менеджеры предпочитают популярные языки, потому что это даёт им больше рычагов влияния на разработчиков, которых легче заменить.

Indeed, if programming languages were all more or less equivalent,
there would be little justification for using any but the most
popular. But they aren't all equivalent, not by a long
shot. And that's why less popular languages, like Jane Austen's
novels, continue to survive at all. When everyone else is reading
the latest John Grisham novel, there will always be a few people
reading Jane Austen instead.

Действительно, если бы все языки программирования были более или менее равнозначны, использовать что-либо кроме самого популярного было бы трудно оправдать. Но они не равнозначны — далеко не равнозначны. И именно поэтому менее популярные языки, как и романы Джейн Остин, вообще продолжают существовать. Когда все вокруг читают последний роман Джона Гришэма, всегда найдётся несколько человек, которые вместо этого читают Джейн Остин.