Pull to refresh

Как Ларри Пейдж изучал Java

Reading time2 min
Views3.5K
Нынешний руководитель Google Ларри Пейдж во времена студенческой юности не был выдающимся программистом. Стивен Леви рассказывает об истории создания программ Backrub и PageRank в своей книге "In the Plex" (цитаты: 1, 2, там же ссылка на первую часть книги, которая лежит в открытом доступе).

Пейдж никак не мог добиться нормальной работы краулера и индексатора из-за большого количества багов в коде и ещё по причине использования нового и нестабильного языка Java. Система всё время падала и не годилась для реальной работы. В архивах ньюс-группы comp.lang.java за 1996 год сохранились вопросы Пейджа. Он пытается выяснить у знающих людей, как назначить User-Agent для заголовка HTTP.

Newsgroups: comp.lang.java
From: p...@cs.stanford.edu (Lawrence Page)
Date: 1996/01/07
Subject: Q: Setting User-Agent Field?

I have a web robot which is a Java app.  I need to be able to set the
User-Agent field in the HTTP header in order to be a good net citizen (so
people know who is accessing their server).  Anyone have any ideas?

Right now, Java sends a request that includes something like:

User-Agent: Java/1.0beta2

I'd rather not rewrite all the HTTP stuff myself.  I tried just searching
in the JDK for the Java/1.0beta2 figuring I could just change the string,
but I couldn't find it. Perhaps it is stored as a unicode string?

An easy method of setting the User-Agent field should probably be added to
Java, so people can properly identify their programs.  

Thanks, Larry Page

Чтобы исправить многочисленные ошибки в коде, Пейдж обратился за помощью к своему другу и стэнфордскому аспиранту Скотту Хассану (Scott Hassan). Тот также был хорошим другом Сергея Брина, с которым познакомился на студенческих играх Ultimate Frisbee (бесконтактный вид спорта, в котором игроки команды должны передать друг другу летающий диск).

Скотт Хассан говорит, что количество багов было слишком большим. Поначалу он попытался их исправить, но вскоре понял, что это бесполезная трата времени. Поэтому он переписал код на Python. В течение последующих двух лет Пейдж и Брин обнаружили, что новый движок можно использовать в вебе и пытались лицензировать его Excite или Altavista, но неудачно, так что они приняли решение основать свою компанию.

Подняв собственный сервер, молодая компания вскоре столкнулась с проблемами масштабируемости. Питоновский код обрабатывал не больше десяти запросов в секунду, так что некоторые пользователи вообще не получали ответа от сервера. Новый сотрудник компании Google, профессор Урс Хёльцле (Urs Hölzle), был гораздо профессиональнее в с области разработки, так что он в очередной раз переписал код с нуля, уже на C++.

Конечно, впоследствии компания наняла на работу ещё больше программистов высочайшего уровня, и сейчас поисковая система Google представляет собой образец самой масштабируемой и высокопроизводительной системы в мире, но в первое время было совсем не так. К нынешнему состоянию компания шла многие годы, постоянно переписывая и улучшая систему. Всё это время главным драйвером успеха была идея использования PageRank для ранжирования веб-страниц, в успехе которой Пейдж был, судя по всему, уверен на 100%. Его знаний Java хватило, чтобы написать кое-как работающий прототип и проверить идею, а остальное уже было делом техники (стартовый капитал и хорошие программисты).
Tags:
Hubs:
+67
Comments29

Articles