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

The Python Paradox

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

Пол Грэм рассуждает о «парадоксе Python»: компании, выбирающие относительно эзотерический язык, привлекают более сильных программистов, потому что таких людей мотивирует не работа, а интерес к программированию. Программисты учат Python не ради вакансий, а потому что им действительно нравится программировать и их не устраивают уже знакомые языки. Парадоксально, но именно поэтому Python становится хорошим выбором для тех, кто хочет получить достойную работу. Грэм приводит в пример Google, который при найме Java-разработчиков просит и опыт работы с Python. Он также рассуждает о красоте исходного кода: уродливый код — это не столько резкий синтаксис (как у Perl), сколько необходимость строить программы из неправильных концепций. Python, Ruby, Lisp, Smalltalk и другие подобные языки создаются и используются людьми, которым по-настоящему важно программирование, — а такие люди обычно делают своё дело хорошо.

Август 2004

В недавнем выступлении я сказал нечто, что расстроило многих: что на проект на Python можно нанять более умных программистов, чем на проект на Java.

Этим я не имел в виду, что программисты на Java глупы. Я имел в виду, что программисты на Python умны. Выучить новый язык программирования — это большая работа. И люди учат Python не потому, что это даст им работу; они учат его, потому что им действительно нравится программировать и их не устраивают уже знакомые им языки.

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

Лишь немногие компании пока оказались достаточно умны, чтобы это осознать. Но здесь тоже идёт своего рода отбор: это как раз те компании, в которых программистам больше всего хотелось бы работать. Например, Google. Когда они размещают вакансии на программирование на Java, они также требуют опыт работы с Python.

Мой друг, который знает почти все широко распространённые языки, использует для большинства своих проектов Python. По его словам, главная причина в том, что ему нравится, как выглядит исходный код. Это может показаться легкомысленным основанием для выбора одного языка вместо другого. Но это не так легкомысленно, как звучит: когда вы программируете, вы тратите больше времени на чтение кода, чем на его написание. Вы лепите куски исходного кода так же, как скульптор лепит куски глины. Поэтому язык, делающий исходный код уродливым, доводит требовательного программиста до бешенства — как комковатая глина бесила бы скульптора.

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

Пока что, по крайней мере. Оба языка — это, конечно, движущиеся мишени. Но они разделяют — вместе с Ruby (и Icon, и Joy, и J, и Lisp, и Smalltalk) — тот факт, что они созданы и используются людьми, которым по-настоящему важно программирование. А такие люди, как правило, и делают это хорошо.