Интервью: новый веб-сервис "Яндекса" построен на языке Python и фреймворке Django
24 января 2008 года, 13:00 |
Текст: Андрей Письменный
На прошлой неделе на "Яндексе" новый сервис под названием "Куда
все идут". Интересен он, как оказалось, не только сам по себе, но и с точки зрения технологий. "Куда все идут" реализован на
Django - веб-фреймворке для языка Python.
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 поддержки БД, реплицированной по нескольким серверам. Пока это нас не
сильно
укусило, но мы довольно скоро планируем такую поддержку доделать. Хотя бы просто для надежности.
О потреблении серверных ресурсов говорить пока рановато: на "Куда все идут" пока совсем небольшая посещаемость, а на том
же
и вовсе не предполагается большой. Посмотрим через месяц-другой.
- Возможно ли, что изменения в будущих версиях фреймворка доставят неудобства?
- Неудобства представляются мне маловероятными. Джанго развивается отнюдь не стихийно: всем понятно, куда он идет. :-)
Процесс полностью прозрачный, и на него можно влиять. А если вдруг все ключевые разработчики вдруг чем-то заболеют и
пойдут разом куда-то не туда, что ж, это open source, мы всегда можем просто форкнуть код.
- Есть ли в Рунете другие ресурсы, работающие на Django?
- В основном в Рунете на Django пишут блоги и форумы, но есть и небольшие сайты тоже. Вот в открытом каталоге.
- Будет ли фреймворк дальше использоваться в "Яндексе"? Возможно, программисты из "Яндекса" даже примут участие в
его
разработке?
- Использовать Django в "Яндексе" мы, конечно, будем, потому что первый опыт целиком оправдал ожидания. Мои, по крайней
мере, целиком, возможно кто-то ожидал большего. :-) Пропагандировать Django мы тоже продолжим. А участие в его
разработке наши программисты уже принимают, в основном пока в моем лице, правда. :-) Но поскольку Джанго -
проект открытый, то улучшать его может любой, кому это интересно, и кто умеет это делать.