На каких языках программирования пишут в Яндексе

19 марта 2014, 15:02

«Когда-то давно, семь с лишним лет назад, я пришёл на собеседование в Яндекс. Собеседовали по С++, взяли.
Первый день. Самокатная, шумная столовая кислотных расцветок, обед. Суп из пластмассовых прямоугольных параллелепипедов.
— Хочешь писать на С++? — спрашивают меня.
— Нет, — говорю, — не хочу.
— Ну ок, учи Perl.
С тех пор я пишу на Perl и нежно его люблю».

Такую историю рассказал нам разработчик Яндекса, когда мы готовили эту публикацию и проводили опрос. Мы спрашивали у наших разработчиков, на чём они пишут, чтобы выяснить — какие языки программирования в Яндексе самые популярные. В опросе приняли участие больше половины разработчиков компании, расклад получился такой:


Многие разработчики используют в работе несколько языков, поэтому мы просили их выбрать один — тот, на котором они пишут больше всего. В лидерах оказались пять языков: C++, JavaScript, Java, Python и Perl. Все эти языки разные, и каждый лучше решает свою задачу. Поэтому они по-разному используются в Яндексе.

C++ — классический язык для больших и сложных систем, где критически важна производительность. На нём обычно пишутся самые важные, базовые компоненты приложений. Например, на C++ написано ядро поиска Яндекса, Браузер и Карты.

На JavaScript в основном пишут интерактивные элементы сайтов, такие как анимация или браузерные игры. Этот язык очень широко используется в браузерах для написания интерфейсов — того, с чем напрямую взаимодействуют пользователи. На JavaScript написаны веб-интерфейсы всех сервисов Яндекса.

Java — это универсальный язык, на котором можно написать любое приложение, будь то игра Flappy Bird или веб-сервер, обрабатывающий миллионы запросов в минуту. Несмотря на название имеет мало общего с JavaScript. Разработка на нём пойдёт быстрее, чем на C++, однако программа может получиться чуть медленнее. Особенности Java позволяют создавать программы, которые работают практически на любом устройстве — от телефона до микроволновки. На Java у нас написаны, например, Маркет и Музыка.

Python — это дружелюбный к программисту язык с простым синтаксисом. С него хорошо начинать изучение программирования. У нас Python широко используется в системном администрировании, но подходит для решения почти любых задач, кроме обработки больших объёмов данных. На Python многое делать проще и быстрее, чем на C++, но программа будет не такой производительной. Это разумный выбор, когда производительность не очень важна или задачу нужно сделать быстро. На Python написана серверная часть Диска, а ещё он используется в Директе, внутренних сервисах и многих других проектах.

Perl был создан для обработки текстов — например, для извлечения фактов из текста. Талисман языка — верблюд, лишённый изящества, но выносливый и эффективный, — точно отражает его особенности. Это лаконичный, но непростой язык, который, однако, хорошо решает свою задачу. В Яндексе его используют, например, для анализа данных в баннерной системе и в разработке серверной части некоторых сервисов — например, Директа.

С точки зрения задачи выбор языка — это поиск равновесия между эффективностью программы, квалификацией программиста и временем, потраченным на работу. Конечно, в реальности всё немного сложнее, поэтому иногда и случаются истории вроде той, с которой мы начали. «Шёл на вакансию C++, взяли на Perl, пишу на Python, а люблю Scala», — такое тоже бывает.

С точки зрения разработчика, выбор языка — это вопрос предпочтений. Кому-то действительно нравится сам язык, кому-то — задачи, которые он решает. Например, одни предпочитают фундаментальные задачи и пишут базу поиска на C++, а другие любят делать то, что видно пользователям, и пишут интерфейсы на JavaScript. Третьи пишут на каком-то языке просто потому, что знают его досконально. А некоторые, наоборот, готовы пробовать новое и участвуют в разных проектах.

Яндекс делают более шести тысяч человек, из них четверть — это разработчики. По большому счёту неважно, на каком языке пишет человек. Если он профессионал, для него всегда найдётся подходящая задача. Прямо сейчас у нас открыто 90 вакансий для разработчиков в десяти городах. Хотите попробовать свои силы — добро пожаловать (вакансии в берлинском офисе можно посмотреть здесь).
33 комментария
Сколько спама )
Спасибо за новость. Интересно узнать, на чем написаны различные сервисы Яндекса.
ilyacoding,
Можно найти через вакансии: http://company.yandex.ru/job/vacancies/?city=msk
А начем блоги я.ру написаны? И почему в закладка импорт не работает уже давно!!!
Тимур TT,
Присоединяюсь к вопросу!
Марцен Антон
20 марта 2014, 19:20
А в каких проектах испоьзуется C# и T-SQL?
Марцен Антон
22 марта 2014, 13:59
Алексей,
спасибо за информацию.
Комментарий удалён
pleshakov80, полностью поддерживаю, Яндекс больше пользоваться не буду.
tanya.zatserckovnaya
22 марта 2014, 10:11
кто  блокирует   мои   комментарии   на   Яндоксе?
ошибка в тексте:

«Яндекс» разработает разные карты для Украины и России
Крым будет отображаться в сервисах "Яндекса" в соответствии с официальными позициями России и Украины, говорится в заявлении в официальном боге "Яндекса". Сервисы компании должны соответствовать миру, окружающему пользователей в каждой конкретной стране, и решать локальные задачи.
Бронислав
23 марта 2014, 08:19
Если смотреть про лидеров языков программирования, то походу php не кто не пользуется, а сайты пишут в основном на них.
Будет ли яндекс браузер на windows phone ?
Почему у вас нет обратной связи в поисковике? Ерунда последнее обновление (23.03.2914). Плохо открывается, медленно очень. Делайте следующее, или уйду на Гугл(((
alekseefanov,
Здравствуйте. На главной странице есть ссылка на форму обратной связи - http://feedback2.yandex.ru/default/. Напишите, служба поддержки старается отвечать всем.
Сразу делайте!
alekseefanov,
а вы заплатите за сервис, прежде чем требовать что-то.
sorgoz,
Кому и сколько я должен?
Та боже мой, идите на гугль ) Сливайте свои запросы в АНБ на прямую))))
так интересно,в 89 году были другие языки-фортран4,бейсик,алгол
А матрикснет на чем? ASM ?
Меня устаивает Яндекс. Живой человек может быть вечно чем-то недоволен. На всех не угодишь.Меня,например, раздражает,когда он под меня подсраивается. Пробовала работать в Гугле-ничего не получилось.
Здравствуйте, я хочу сказать что при начале работы в яндекс браузере слишком долго загружаются закладки в "табло" при его закрытии и новом начале работы такое опять повторяется, попрошу обратить на это внимание, я так понял что при запуске браузер кушает большое количество оперативной памяти, посмотрите, может можно это как-нибудь исправить
Shyrik156,
Здравствуйте. У команды Браузера есть свой блог, вы можете задать вопрос там - http://clubs.ya.ru/yandexbrowser/
Барсик будет жить!
Статья интересная. Непонятно, почему нет ассемблера? Что на нем уже никто не пишет?
Удалённый пользователь
5 июня 2014, 16:31
как написать блог
Хорошо что Java нормально востребована, скажем так. Мне сейчас 15 знаю 3 языка, в 18 хочу пойти в Яндекс))
Интересно было бы свежую статистику посмотреть - в динамике...