Интервью: новый веб-сервис "Яндекса" построен на языке Python и фреймворке Django
Андрей Письменный
На прошлой неделе на "Яндексе" появился новый сервис под названием "Куда все идут". Интересен он, как оказалось, не только сам по себе, но и с точки зрения технологий. "Куда все идут" реализован на Django - веб-фреймворке для языка Python.
Django предназначен для быстрой разработки сайтов и позволяет автоматически создавать административный интерфейс сайта на основе модели данных. Первый публичный релиз Django датируется 2005 годом, и с тех пор над фреймворком постоянно идёт активная работа. Популярность Django потихоньку растёт - на его основе делается всё больше сайтов и веб-сервисов. В "Яндексе" тоже решили поэкспериментировать, и посмотреть, не сможет Django стать заменой их традиционным средствам разработки. Чтобы узнать о результатах эксперимента, мы расспросили Ивана Сагалаева - ведущего разработчика "Куда все идут".
- Пару слов о самом сервисе - какова цель, в чём основная идея?
- В общем-то, там вполне честный дисклеймер: мы хотим, чтобы люди могли целенаправлено встречаться друг с другом. И там, где встречаются, находить новых друзей, потому что интерес к конкретному событию - это уже общий интерес. То есть это сервис предоставления хороших поводов для заведения дружбы.
- Почему именно Django, а не какой-то другой фреймворк (тот же RoR, к примеру)? Другие варианты были отвергнуты сознательно или выбор был продиктован только тем, что Django и Python оказались более знакомы разработчикам?
- Главных причин две. Во-первых, по словам изначального идеолога Django в "Яндексе" Григория Бакунова, Ruby просто слишком медленный для production-решений в "Яндексе". А Django - один из самых быстрых среди фреймворков нового поколения. Во- вторых, в "Яндексе" Python - один из основных распространенных среди разработчиков языков (наряду с C++ и Java).
- Какие языки и технологии обычно использует "Яндекс" для своих сервисов? Django оказался чем-то лучше?
- У Яндекса есть своя традиционная технология, построенная вокруг языка XScript, про которую наши ребята много рассказывали на прошедших конференциях РИТ и Highload. Вот слайды Олега Оболенского, к случаю.
Оказался ли Django лучше, сравнить не могу, потому что на XScript не писал. Однако судя по общему мнению разработчиков в "Яндексе", собственно написание кода не является узким местом ни с XScript, ни с Django. Больше времени всегда занимает придумывание, как все должно быть, а не реализация.
Пожалуй Django я могу поставить в безусловный плюс то, что это развитый проект с открытыми исходниками, а поэтому перспектив развития у него больше, чем у собственного решения. Это, наверное, верно не для всех случаев, но Django сам по себе просто очень хороший проект.
- Какие встретились проблемы при разработке? Велико ли потребление серверных ресурсов?
- Из проблем - разве что отсутствие в Django поддержки БД, реплицированной по нескольким серверам. Пока это нас не сильно укусило, но мы довольно скоро планируем такую поддержку доделать. Хотя бы просто для надежности.
О потреблении серверных ресурсов говорить пока рановато: на "Куда все идут" пока совсем небольшая посещаемость, а на том же nano.yandex.ru и вовсе не предполагается большой. Посмотрим через месяц-другой.
- Возможно ли, что изменения в будущих версиях фреймворка доставят неудобства?
- Неудобства представляются мне маловероятными. Джанго развивается отнюдь не стихийно: всем понятно, куда он идет. :-) Процесс полностью прозрачный, и на него можно влиять. А если вдруг все ключевые разработчики вдруг чем-то заболеют и пойдут разом куда-то не туда, что ж, это open source, мы всегда можем просто форкнуть код.
- Есть ли в Рунете другие ресурсы, работающие на Django?
- В основном в Рунете на Django пишут блоги и форумы, но есть и небольшие сайты тоже. Вот русские сайты в открытом каталоге.
- Будет ли фреймворк дальше использоваться в "Яндексе"? Возможно, программисты из "Яндекса" даже примут участие в его разработке?
- Использовать Django в "Яндексе" мы, конечно, будем, потому что первый опыт целиком оправдал ожидания. Мои, по крайней мере, целиком, возможно кто-то ожидал большего. :-) Пропагандировать Django мы тоже продолжим. А участие в его разработке наши программисты уже принимают, в основном пока в моем лице, правда. :-) Но поскольку Джанго - проект открытый, то улучшать его может любой, кому это интересно, и кто умеет это делать.
|