RTFM на Яндексе

1 февраля 2011, 12:37

У любого программиста по пятьдесят раз на дню возникает задача «сходить в документацию и посмотреть параметры функции». Хорошо, если данную задачу успешно решает IDE, но это не всегда так, и поэтому существует большой поток «программистских» запросов к поиску. Мы решили сэкономить программистам время на поиск в документации, и показывать интересующий их ответ прямо в поисковой выдаче ― в специальном колдунщике. Это официальная версия, которую мы сказали руководству. На самом деле, мы – сами программисты, и сделали колдунщик, чтобы нам было проще работать. Не цитируйте этот пост в блогах, а то нас «попалят» :)



Все описания, которые можно увидеть в колдунщике для программистов, взяты из официальных руководств по программированию и справочных материалов. Сейчас колдунщик знает больше десятка популярных языков программирования, языков разметки, API и окружений (Perl, PHP, PostgreSQL, Python, C/C++/STL, Win32, Java, HTML/CSS/JavaScript, MySQL), разумеется, отличая одинаково называемые операторы из разных языков, если язык в запросе задан явно (например, перловский print от print из PHP).

В некоторых случаях вы можете воспользоваться «поиском для программистов» даже не задавая запрос. Например, если вам нужно уточнить, какие дочерние свойства бывают у font в CSS, просто наберите css font в строке поиска ― в саджесте будут перечислены все возможные варианты, согласно CSS Reference с W3Schools.



В данный момент колдунщик для программистов является бетой (первый раз можно не объяснять,  что это такое), Мы будем его активно дорабатывать, добавляя новые языки программирования и улучшая функциональность.

Если вы не нашли в нашем списке любимый язык программирования ― требуйте его прямо здесь, в комментариях.

Алексей Мирзоян, Евгений Крохалев, Сергей Рубаков, Анатолий Орлов и другие разработчики Яндекса

121 комментарий
Подписаться на комментарии к посту
Почему Ruby и Ruby on Rails обделили
Дада. Руби и рельсы!
и еще ABAP
Согласен, без Ruby этот RTFM не имеет смысла.
для Ruby и RoR  есть  rdoc.info  и не нужен яндекс.
плюсуюсь
Как насчет Haskell? :) Должно быть нетрудно сделать - http://www.haskell.org/ghc/docs/latest/html/libraries/ плюс http://hackage.haskell.org/packages/archive/pkg-list.html , в каждом пакете ссылки на документацию индивидуальных модулей.
было время когда меня бесило, что запрос "actionscript net netConnection" выдавал в первой строчке документацию на японском языке. Сейчас ваш колдунщик ничего не делает на запросы по яве(кроме стандартной документации - "java hibernate SessionFactory getSession"; "java  servlet service()" - ничего не работает!). Так что лучше бы поиск обычный дорабатывали.
Я-то тут причем? :)
спасибо, посмотрим.

Над основным поиском мы тоже работаем, 2 года назад у нас вообще зарубеже не было - а за этот год должно существенно улучшится все.
Да ладно.
Светлана Шорина
1 февраля 2011, 13:49
Да,  совсем скоро Haskell тоже будет.
Замечательно!
Оригато!
Language request: Go.
Bug report: "c strlen" работает, "c readlink" — нет.
Для Go и godoc хватает :)
Хотя - побольше инструментов, хороших и разных
А чего это PHP два раза перечислили? :)
Это специально для особо талантливых ;)
а будут только стандартные-стандартные api? или известные сторонние тоже будут?
Хочется:
1) C, zend api
2) C, glib/gobject/gtk+ api
3) Разнообразные api Mac OS X (Cocoa, CoreFoundation, Carbon, QuickTime, …)

в идеале, всё это с версионностью :)
W3Schools - это плохо. Популярный, но устаревший ресурс с неточной информацией. Вот даже есть подробное описание его проблем - http://w3fools.com/

Намного правильнее было бы использовать информацию из Mozilla Developer Network
MDN очень унылый и неудобный, например.
Я не понимаю, что значит унылый, но есть и другие ресурсы - http://w3fools.com/#what-should-be-done
Какой хороший сайт! Очевидно, им тоже не нравится w3cschool в поисковой выдаче по всем словам из стандартов w3c.
Excel неплохо бы, и с переводом функций.
Да, я тоже не нашёл платформы .NET и C# в частности  :)
они в процессе. если повезет, будут весной :)
Это хорошо, понимаю, распарсить MSDN - задача небыстрая... Надеюсь, вы учтёте тот факт, что несовместимых версий .NET как минимум 3 (1.1, 3.5 и 4.0 - у них разные CLR), соответственно если человек работает с 1.1 бессмысленно ему показывать более современные (с тем же названием) функции из 3.5 и 4.0....
над версионированием мы работаем. нет уверенности, что будет к весне, но постараемся :)
эта да... на oracle.com поиск ужас-ужас.
bash и sh не хватает, не совсем программирование , но все же.
и маны всех мастей у нас в процессе. надеемся, что они без существенных проблем выедут все этой же весной :)
Очень желательно  Haskell, Lisp, Erlang
Светлана Шорина
1 февраля 2011, 13:51
Ага, записали в список.
А Haskell уже очень скоро будет.
К Erlang строжайше +1 - ибо у него очень фигово организованный хелп сам по себе.
.NET, C# в частности.
C# давайте!
Сделайте ActionScript 1/2/3 и гугл мне будет не нужен!
P.S. когда флеш-программисты его ищут, то пишут коротко: as1 / as2 / as3
Требую Ruby b Ruby on Rails!
Еще требую bash-команды!

еще было бы не плохо получать примеры кода
например на запрос mysql add user example - выводить готовые примеры кода добавления новых пользователей в mysql
Да это тоже есть в планах. Не только с ключевыми словами example, но чтобы на самом ответе были ссылочки на examples и легкий выбор версий языков, с запоминанием на чем конкретный человек пишет.
Basic и Pascal надо добавить, еще Fortran. Это ж классика :)

Один PHP можно убрать (сейчас их два в списке) :)

если серьезно: пробелы в запросах, может, приравнять к "_"?

А то, в подсказках выпадает, скажем "php file get contents", а колдунщик срабатывает только на запрос "php file_get_contents".
бейсик, паскаль, фортран, еще делфи - у нас пока только в планах... но рано или поздно появятся :)
подчеркивание - да, знаем об этом, и хотим реализовать уже в весенней версии :)
Если б еще радиокнопки сделали по языкам программирования и технологиям под полем ввода вам бы цены не было
Для всех - люди испугаются.

Для программистов сделаем, но скорее suggest like. типа пишешь sort а тебе в подсказках "std::sort" "perl sort", что выбрал нужно запоминать и поднимать наверх в следующих запросах.
Супер! то что надо :)
Андрей Полыскалов
1 февраля 2011, 14:01
Спасибо, очень нужная вещь!
nice
хотелось бы видеть cocoa, cocoa touch
можно еще сделать вызов манов юникс
man foo например
Для Delphi можно? :)
делфи в планах :)
Спасибо! ^_^
Отличная фича! )

Полезная штука буду пользоваться.


А почему по javascript показывается колдунщик из w3schools.com ? Может лучше на наш javascript.ru ссылаться?

jQuery забыли.

кроме того есть стандартные css и не только фрэймворки YUI, YAML и т.д.
jQuery в процессе, скоро будет )
prototype, scriptaculous
Хотелось бы Brainfuck :)

Кстати, у вас "(первый раз можно не объяснять,  что это такое)," - две запятые лишние. И пробел.

А вообще как Яндекс относится к интересу людей к программированию? Скажем, есть питерский стартап по составлению курсов по языкам программирования и разметки и разработке вообще - стоит ли мечтать о сотрудничестве или лучше сразу забыть саму мысль о чём-то подобном?
Светлана Шорина
1 февраля 2011, 16:05
Про стартапы читайте тут http://company.yandex.ru/public/start/
А конкретно про ваш проект заочно трудно что-то сказать.
Спасибо, за Яндекс.Стартами слежу и наслышан. Как и о прочих стартап-площадках. Участие правда пока откладываем и группой единомышленников из числа студентов ИТ-вузов допиливаем проект до состояния преальфы.

Проблема в том, что мы не ищем потранажа. Нам не интересно поглощение и контроль в обмен на финансирование. Нас интересует сотрудничество в области разработки идеальных курсов, в идеале - с Яндексом, Google, Microsoft и другими представителями рынка, которые на своих знаниях и  "best practice" могли бы посодействовать развитию информационного узла для юных разработчиков. Например, просмотреть курсы и указать на ошибки в них и дать предложения по улучшению. Провести анализ UI и составить рекомендации.

По этой причине не совсем понятно - такие meetup для стартапов - это то что нужно для подобной задачи или нужно искать иные варианты взаимодействия.
Brainfuck... Там же раз-два и обчелся. Он конечно у нас есть в планах, но priority=lower.

Интерес к программированию - не уверен, что вопрос был именно об этом, но в Яндексе есть академические программы, например Школа Анализа Данных, http://shad.yandex.ru/
Как говорится, вэлкам :)
Я это скорее в порядке шутки, чем и является Brainfuck :)

Про некоторый интерес косвенно можно ещё судить по академии AMSE и участию Яндекса в оной. Я как раз учусь в ЛЭТИ вместе с двумя участиками нашего стартапа, а ещё двое учится в ИТМО, как раз оттуда есть и преподаватели и студенты AMSE: http://www.amse.ru/teachers.php которые также работают и в Google и, как я слышал от очевидцев, в Яндексе. Возможно стоит пообщаться на эту тему с преподавателями?
тут уж я врядли подскажу :) но пообщаться, думаю, лишним никогда не будет ))
Ruby, Rails, Haml, Prolog, Common Lisp
Было бы шикарно сделать такой поиск в духе "мне повезёт" по другому урлу или по определённому параметру в запросе. Можно было бы настраивать удобные спец. поиски для браузеров. А то и плагин к любимой IDE замутить.
А можно подробней? Как эта штука должна работать?  Лучше с примером :)
1. Устанавливается плагин на FF.
2. Появляется новый вариант поиска, например documentation.
3. Вбиваем в него например "java DateFormat".
4. Наслаждаемся документацией.
а f#  вас когда-нибудь появится?
 было бы неплохо  Action Scripts 3 и Basic )
Все для самих себя ;-)
Ну наконец-то появился повод пользоваться яндексом, спасибо!
ActionScript, Delphi, C#
а где дока по 1С (8.1, 8.2) ?
А boost где?
А на каком уровне поддержка C# и .NET? Давайте сделаем интеграцию с Библиотекой MSDN
Риквестирую Groovy, Scala и Clojure :)
 
Если вы не нашли в нашем списке любимый язык программирования ― требуйте его прямо здесь, в комментариях.

Требую Erlang

Надо язык C# и платформу .net Framework

Светлана Шорина
2 февраля 2011, 10:17
Уже в списке, скоро будет :)
Плюсище (+1)
Отличная работа!
А вот что было бы здорово видеть:
latex
matlab
Светлана Шорина
2 февраля 2011, 10:11
Записали в очередь :)
  • Запрос sockaddr_in6 - не определяется как "программерский";
  • Запрос signal - не определяется;
  • Запрос socket - дает информацию про какую-то странную функцию, которая возвращает SOCKET вместо int :)

Ну и до кучи вопрос, как вам наиболее эффективно можно помогать в столь прекрасном начинании? Может, есть универсальная форма типа "Что ввел в строку поиска" / "Что хотел получить" / "Где находится релевантная информация". А то в блоге тема обрастет кучей комментариев, которые еще надо будет как-то структурировать.

не все обрабатывает, например "session start php"


http://yandex.ru/yandsearch?text=session+start+php&lr=213


 

не уверен что читаете жж поэтому продублирую:

отличная вещь, спасибо, заодно с удивлением обнаружил, что среди колдунщиков нет калькулятора :( 
а  хотел предложить его расширить для прогерских целей - пишешь, что-то  типа "md5 sdssdsd =" или "date 1269985796 =" или "hex 1234 =" и готово, а  то голова кругом порой как-где-чем перевести

в RTFM не нашел поиска по Transact SQL или сокращенно tsql (t-sql), особенностей не много, но они есть
А неплохо бы добавить PL\SQL.
Мне кажется, что велика возможность подачи неверной документации. Частенько же возникает проблема на форумах, когда кто-то советует и выкладывает свой "уже готовый" код и на следующих 10 страницах его редактируют:)
А про 1С:Предприятие 7.7; 8.Х не забыли?
Термин дурной ("колдунщик"). Лучше модуль или как нибудь еще. Зачем плодить плохой сленг.

Языки и библиотеки: C#, XAML, WPF.

Спасибо за полезное дополнение к поиску!
извиняюсь, что мы светим наш внутринний сленг наружу, но избежать этого порой бывает сложно. при этом хочу пояснить, что термину "колдунщик" уже более 10 лет, и, если проанализировать историю развития этой технологии, то его название более чем оправдано.
Спасибо за сервис! Пару дней назад искал описание SQL-функций, ввожу запрос и вижу уже готовое описание первой строкой, думаю, WTF??, а оно вот что оказалось :)
Круто! А человеческий suggestion не испортился от ограниченного программистского?
http://dobrokot.ru/pics/nya2011-02-02__20-02-35_50kb.png
человеческий suggest точно не должен был испортится - а приведенные вами примеры демонстируют тот факт, что пользователи яндекса почти не ищут приведенные запросы

Даже запросы "С++ как", "С++ build(er)" "C++ клас" не задают? А в подсказке их нет.

Как насчет Javascript frameworks: Prototype, jQuery, etc?
jQuery в процессе, остальные... ммм... в планах :)
Prototype – это наше все :)
Спасибо. Наконец-то :)))
Теперь хотелось бы функций POSIX добавить и тогда будет всё очень хорошо.
ActionScript давайте ещё :)
сделайте еще примеры основных конфигурационных файлов, напр: my.ini, nginx.conf, php.ini, apache.conf

Хочу PL/I, FORTRAN (IV,77), COBOL и HLASM :)

Вообще, где ассемблеры?

Где TASM/MASM для x86?

Где весьма популярные ARM и AVR/Atmel?

Где Паскаль? LISP (со всеми схемами и хаскелями)?

Где Пролог и Рефал? Куда делся REXX?

Для Node.js нифига не ищет!

MySQL - это, конечно, наше фсио, но где PLSQL? где ADABAS C/D?

где DBII и SQLite?

Короче: ДАЁШЬ!

"django render_to_template" - дока с djangoproject.com

И было бы супер с возможность введения версии "django 1.2.3 csrf"

Delphi (Pascal) !
Delphi и Pascal
Delphi и Pascal
Анатолий Синковец
19 марта 2011, 16:47
ну наконец то...повернулись к богатырям передом:)
Windows PowerShell
auto.library.sibgtu
20 июня 2012, 09:20

Prolog! Борландовскую версию часто в университетах изучают, а на самом деле хорошо было бы SWI Prolog.

Erlang - в студию! :-)

Мне как-то колдунщик не особо нужен, а вот гугловским код-серчем часто пользовался, пока его не закрыли.

Слишком быстро отказались от Ruby and Rails. А между прочим большая часть программистов на руби используют Google (просто исходя из той логики, что у них маки, а юзер мака более расположен к Google, чем к Яндексу).

 

Соответственно, прикрутив Ruby & Rails  к новой поисковой фиче, Яндекс перетянул бы часть Гугл контингента на свою сторону (-_+) появилась бы мотивация к русскоязычному поисковому ресурсу.