Google для программистов
Автор: Андрей Письменный
Опубликовано: 10 октября 2006 года
Источник: "Компьютерра"
Если ещё пару месяцев назад можно было рассуждать о том, почему главные поисковики не берутся за создание поисковой машины по исходным кодам программ, опубликованным в интернете, и приходилось искать проекты, сделанные на стороне, то теперь вопрос, похоже, решён раз и на всегда. Ещё бы, ведь за дело поиска кода теперь официально взялся Google.
Но списывать всё на громкое имя компании было бы неправильно. Открытый на днях Google Code Search имеет серьёзное преимущество перед тем же Koders - он даёт куда более широкие возможности поиска благодаря поддержке языка регулярных выражений. Это значит, что обладая навыком составления сложных запросов, можно построить свой запрос максимально точно и найти именно то, что требуется. В какой-то степени это напоминает язык запросов "основного" Google, но обладает куда более широкими возможностями. По всей видимости, в Google решили, что раз уж системой будут пользоваться программисты, то можно им доверить те средства, к которым они привыкли.
Немаловажен и объём поисковой базы. Точное количество проиндексированных строк кода не оглашается, но список источников вполне солидный. Помимо текстовых файлов индексируются различные архивы и репозитарии CVS и Subversion. За объём базы, впрочем, можно не волноваться - Code Search существует далеко не первый день. До открытия широкой публике он проходил внутреннее тестирование и, похоже, служил подспорьем в работе программистам из Google.
Если у Koders теперь есть все шансы остаться не у дел, то Krugle ещё может похвастаться функциональностью, не доступной Google Code Search. Речь идёт о возможности добавления к файлам собственных комментариев и обмена ими между пользователями поисковика. Впрочем, "Гуглу" тоже есть чем похвастаться. Code Search как и остальные гугловские проекты обладает открытыми API и, соответственно, его функции легко доступны извне. Это даёт возможность встраивать поиск в различные интегрированные среды разработки или создавать на основе Code Search другие сервисы, которые будут расширять его функциональность. А это значит, что в скором времени может появиться что-нибудь ещё более занятное, чем Krugle.
Не обошлось открытие нового сервиса и без курьёзов. Для того, чтобы опробовать возможности поиска по коду, некоторые пользователи принялись вводить словосочетания вроде "dirty hack", "here be dragons" или "stupid users" а заодно и разные ругательства (неплохой список со ссылками здесь). Google, впрочем, перед такими запросами не робеет и сдаёт с поличным программистов, не стесняющихся писать подобные комментарии в коде своих программ. Нашлись и строчки, где кодеры обвиняют своих коллег в том, что текст написан в нетрезвом состоянии, равно как и самостоятельные признания других в том же грехе. Не самая лучшая рекомендация для open source.
Хорошо бы, если б этим всё и ограничилось, но возможность масштабного поиска выявила и более серьёзные проблемы. В частности, в комментариях к некоторым проектам находятся словосочетания вроде "this will crash" или рассказы о том, что выделяемый под данные буфер может оказаться переполнен (что, во-первых, приводит к ошибке, а во-вторых, может стать серьёзной уязвимостью). Увы, и на этом список курьёзов не заканчивается. В коде некоторых программ легко могут обнаружиться (и обнаруживаются) конфиденциальные данные пользователей а также пароли от баз данных, ftp-серверов и блогов. Поиск по словосочетанию "confidential code" тоже даёт массу интересных ссылок.
В общем, если поиск по коду в скором времени будет привычным инструментом в деле разработки программ, то облегчение работы станет не единственным последствием для программистов. К цензурности комментариев и наличию конфиденциальных данных в публикуемых исходниках придётся относиться куда осторожнееa и всегда помнить, что "большой Google следит за тобой".