Как все начиналось. Apple, PayPal, Yahoo! и еще 20 историй известных стартапов глазами их основателей - Джессика Ливингстон 9 стр.


А затем появилась компания Data General со своим мини‑компьютером Nova, в котором вместо использования 50 команд для выполнения различных математических операций применялась всего одна из 16 битов: шесть единиц и шесть нулей. Пара этих единиц и нулей указывала, данные каких четырех регистров будут использоваться. Вторая пара битов относилась к применению других четырех регистров. Следующая пара указывала, требуется ли смещение или сдвиг результата (что эквивалентно умножению или делению на два в двоичной системе). Также существовали биты для определения необходимости переноса. То есть все 16 битов несли какую‑то смысловую нагрузку. Я все это внимательно изучил, самостоятельно воссоздавая на бумаге принципы работы компьютера Nova. При этом я выяснил, что два бита кодируют один из четырех регистров, поэтому отправил их на вход микросхемы 4‑входового мультиплексора. Мне не пришлось придумывать последовательность выполнения тех или иных операций. Я просто реализовал все с точки зрения логики. Три бита подавались на вход логической микросхемы, чтобы определить тип битовой операции (И, ИЛИ, исключающее ИЛИ), и еще один бит – в сумматор в качестве флага переноса. В результате этого усовершенствования в Nova осталось в два раза меньше микросхем, чем в других мини‑компьютерах, созданных компаниями Varian, Digital Equipment Corp. и Hewlett‑Packard (я сконструировал на бумаге их все). Я понял, что это только ему на пользу, поскольку лишь в этом случае возникает настоящая архитектура ПК.

Всю жизнь я старался оптимизировать устройства. Вы не просто экономите детали, но уменьшаете сложность и повышаете надежность устройства. Кроме того, более простой проект легче понять, что позволяет избежать ошибок и недостатков.

Ливингстон. Вы воссоздали схему работы всех компьютеров того времени еще когда учились в школе? У себя дома, просто ради развлечения?

Возняк. Да, поскольку физически я не мог собрать настоящий ПК. И не только поэтому. Я снова и снова менял проект каждого компьютера в связи с появлением новых микросхем, я «брал» их и вносил в схему коррективы, так как у меня возникали идеи, как сэкономить пару‑тройку микросхем.

Я всем этим занимался из‑за отсутствия денег на приобретение настоящих деталей. Я не мог собрать ни одного компьютера. В те времена микросхемы стоили столько… Короче говоря, цена компьютера примерно равнялась стоимости дома. Так что мне ничего не оставалось, как конструировать их на бумаге, пытаясь сделать все лучше и лучше. Я соревновался сам с собой. Я просто объясняю, откуда у меня навыки в создании устройств.

Я знал, что используемые при этом методы никогда не будут применены на практике. Их не станут изучать в школьной программе. Я многое придумывал сам. Я – настоящий самоучка. В нашей школе вообще не было компьютеров. Но я их проектировал. Как‑то мне попались журналы, в которых я нашел руководство по эксплуатации компьютеров, а отец дал мне несколько пособий по микросхемам. Оставалось лишь изучить их.

В чем заключался мой талант? Если я знаю свою конечную цель (а в то время ею был компьютер), то найду способ, как эффективно объединить микросхемы, чтобы ее добиться. И у меня получится, даже если раньше я никогда не проектировал ничего подобного. Я не знал, как создать гибкий диск, интерфейсы принтера и модема, но когда мне это понадобилось, я разработал собственные решения, не имея понятия, как это делали другие. Этот врожденный талант помог мне стать хорошим специалистом. Все мои лучшие достижения в Apple стали результатом того, что: во‑первых, у меня не было денег, а во‑вторых, я никогда не делал этого раньше. Каждое маленькое устройство, которое мы выпускали, было настоящим открытием.

Ливингстон. Можно ли считать, что ваш совет тем, кто хочет стать мастером своего дела, звучит так: делайте что‑то, чего раньше никогда не делали, и попытайтесь сделать это дешево.

Возняк. Да! Но должны быть соответствующие способности. У нас работал парень, который спроектировал Macintosh, так он никогда не посещал колледж, но изучил интегральные микросхемы и стал мастером‑самоучкой.

Ливингстон. Вы поступили в колледж, а затем его бросили, верно?

Возняк. Не совсем. Но в колледже я не изучал проектирование компьютеров. Например, я не посетил ни одного занятия по программированию, поэтому когда я собрал компьютер, мне пришлось написать собственную версию языка программирования – Basic. У меня просто не было другого выхода, ведь иначе компьютер бы не работал. Кроме того, я знал, как использовать низкоуровневое программирование для создания приложений широкого применения. Мой друг учился в Массачусетском технологическом институте и отксерил мне несколько страничек из книг по созданию компиляторов. Так что у меня было некоторое представление о том, какие методы применяются при синтаксическом анализе языка программирования.

Поэтому, собирая Apple I, я просто воспользовался уже имеющимся у меня терминалом, состоящим из телевизора и клавиатуры. Это был простейший способ, и модель Apple I нельзя назвать эффективной (ею стал Apple II). А затем я подумал: «У всех выпускающихся компьютеров много переключателей и лампочек, и выглядят они, как приборная панель в самолете. И уж очень напоминают тот, который я собрал пять лет тому назад». Это был компьютер Cream Soda Computer («Компьютер крем‑сода»). Он работал слишком медленно, да и собран был кое‑как. Увы, он не делал того, что мне было нужно. Я хотел писать программы на Basic, создавать игры и написать такую программу, которая бы позволила установить мои компьютеры в Hewlett‑Packard. (На работе я и еще 40 инженеров компании пользовались большим суперкомпьютером, и приходилось резервировать время, чтобы к нему подступиться.)

Я хотел создать производительный компьютер, а это означало, что в нем должны присутствовать микропроцессор и динамическая оперативная память (для экономии денег и деталей). Терминал у меня уже был. Дело оставалось за языком программирования. Да, у меня был компьютер с 4 Кбайтами ОЗУ. Он мог выполнять программы, но у меня не было языка программирования для микропроцессора. Поэтому, с одной стороны, я был немного разочарован, а с другой, пребывал в радостном возбуждении, поскольку собирался стать его творцом. Я надеялся, что это принесет мне определенную известность. Однако прославиться я мог лишь при условии, что сделаю все на высочайшем уровне.

Вот так получилось, что я был вынужден написать язык программирования для микропроцессора, но не забывайте, что раньше я этого не делал, не слушал лекций и не ходил на занятия по данному предмету. Поэтому я просто открыл руководство для сотрудников Hewlett‑Packard и прочел в нем описание языка Basic. Там я вычитал все команды Basic и приступил к созданию синтаксической таблицы, определяющей правила этого языка: какие команды в нем существуют, какие их последовательности допускаются, как заносить имена в переменные, как работать с числами, какого размера и формата они могут быть. Затем возникла идея (не знаю, откуда она ко мне пришла), сводившаяся к следующему: когда пользователь введет оператор, я буду просто сканировать его символ за символом, слева направо, и проверять на соответствие синтаксической таблице. Последнюю я занес в память. Я решил так: «Буду просматривать память, и, если оператор пользователя совпадет с записью в синтаксической таблице, то при переводе строки я буду знать все введенные символы». В этом и заключалась идея. Я не был знаком с правилами программирования микропроцессоров. И по сегодняшний день не знаю, как пишутся компиляторы.

Кроме того, мне было известно о существовании цифр и переменных, а также арифметических действиях. Цифры представляли собой субъекты, а арифметические действия – предикаты. Даже в операторе PRINT слово «print» становилось предикатом. Таким образом, я получил списки предикатов и теперь у меня были стек субъектов и стек предикатов. Оставалось только определить правила их взаимодействия и последовательность записи, например, с помощью обратной нотации.

Я был хорошо знаком с правилами обратной нотации из книг, которые прочел в колледже (а также из распечаток, сделанных для меня другом). Кроме того, в калькуляторах Hewlett‑Packard тоже применялась обратная польская нотация. Согласно этой форме записи уравнение «5 + 4» превращается в «5 ENTER 4 +», т. е. оператор записывается после операндов. Но как преобразовать эти данные? Для меня это оказалось посильной задачей, поскольку в данной области я имел некоторые знания.

Итак, я создал свою версию языка Basic, и она работала. Это был самый трудный проект в моей жизни. Как правило, вы просто устанавливаете программу в компьютер. Это единственный способ заставить его функционировать. Ввод программы осуществляется с помощью клавиатуры или карт. Но мне пришлось вручную записать свою программу на левой половине страницы, а затем преобразовать команды на понятный компьютеру язык – в машинный код, состоящий из последовательности нулей и единиц. Если в программе требовалось выполнить смещение на 19 байт, то приходилось записывать число 19 в двоичном коде (в виде нулей и единиц). Я делал это вручную, поскольку у меня не было программы‑компилятора, которая выполнила бы данную задачу за меня. То есть я программировал на самом низком из существующих уровней. Что касается самого компьютера, то я не только начертил его на бумаге (я любил чертить все свои устройства на чертежной доске), но и соединил все его детали, определил, когда их можно реализовать в виде плат, а также смонтировал их на платах.

Итак, я создал свою версию языка Basic, и она работала. Это был самый трудный проект в моей жизни. Как правило, вы просто устанавливаете программу в компьютер. Это единственный способ заставить его функционировать. Ввод программы осуществляется с помощью клавиатуры или карт. Но мне пришлось вручную записать свою программу на левой половине страницы, а затем преобразовать команды на понятный компьютеру язык – в машинный код, состоящий из последовательности нулей и единиц. Если в программе требовалось выполнить смещение на 19 байт, то приходилось записывать число 19 в двоичном коде (в виде нулей и единиц). Я делал это вручную, поскольку у меня не было программы‑компилятора, которая выполнила бы данную задачу за меня. То есть я программировал на самом низком из существующих уровней. Что касается самого компьютера, то я не только начертил его на бумаге (я любил чертить все свои устройства на чертежной доске), но и соединил все его детали, определил, когда их можно реализовать в виде плат, а также смонтировал их на платах.

Оставаясь верным минималистскому подходу, я сделал соединения на платах как можно короче и тоньше, а не такими спутанными, как на стандартных платах того времени. Кроме того, я был хорошим техническим специалистом, поэтому тестировал каждое свое действие, проверял напряжение и наличие сигналов, анализировал ошибки. У меня возникали новые идеи, и я добавлял новые микросхемы. Я был технарем и создал компьютер Apple своими руками.

Ливингстон. Когда вы впервые осознали, что способны собрать компьютер Apple I?

Возняк. Всю жизнь я стремился к этому. И на первой же встрече участников клуба Homebrew Computer Club понял, что близок к своей мечте. Я осознал это в тот вечер, когда разобрался в устройстве микропроцессора. Я пришел домой, изучил его и воскликнул: «Я могу накопить денег и купить процессор!» Сделать это было непросто, поскольку ЦПУ компании Intel стоил 400 долл., а такую сумму быстро не соберешь. Следует пояснить, что те 400 долл. примерно соответствуют нынешним 2000 долл. Для меня это была дорогая покупка. Затем я нашел процессор компании Motorola, который в Hewlett‑Packard я мог приобрести за 40 долл. А вскоре компания MOS Technology представила микропроцессор 6502 за 20 долл., его я и купил. Он был не только дешевым, но и одним из лучших в то время.

Затем мне предстояло заняться аппаратной частью компьютера. Я изучил все модели, представленные на рынке. Все они собирались по старинке: переключатели и лампы, разъемы для подключения плат и соединения с телетайпом. И я сказал себе: «Нет, я хочу настоящий компьютер, поскольку теперь могу его себе позволить». У меня уже был терминал, в состав которого входила клавиатура для ввода данных. Ее кнопки напоминали кнопки на калькуляторах Hewlett‑Packard, и, пользуясь ими, люди понимали, какие операции выполняют (никакого машинного кода, единиц и нулей). Однако проблема состояла в том, как передать данные программы в память компьютера. Для моего микропроцессора не существовало языка программирования, то есть нужно было передавать эти самые единицы и нули в память. И я подумал, что могу написать простое небольшое приложение. Данные этой 256‑байтовой утилиты могли сохранить две микросхемы. Она считывала вводимые с клавиатуры символы и отображала на телевизионном экране терминала информацию, которая находилась в памяти. То есть она позволяла добавить данные в память и могла запускать программу, сохраненную по определенному адресу. Эта утилита дала мне возможность продолжить разработку и вводить нули с единицами, которые до этого я вводил вручную. Иногда требовалось 40 минут, чтобы ввести всю программу в память. Конечно, я бы хотел вводить данные в шестнадцатеричной системе, транслировать их в память и проверять программу. Но это не был обычный проект с программными инструментами. У меня их не было. Я использовал только собственные знания и чувствовал, что так будет лучше.

Ливингстон. Для хранения данных вы использовали телевизор Sears и кассетный магнитофон?

Возняк. Да. Как только я завершил создание языка Basic, возникла необходимость записать большую программу на доступном устройстве хранения. Я использовал кассетный магнитофон, правда, он появился уже на завершающей стадии. Я разработал весь язык Basic без этого устройства.

Ливингстон. И показали собранный компьютер в клубе Homebrew Computer Club?

Возняк. Да, я приносил Apple I в клуб каждые две недели. Никто и не помышлял о создании компании. Я совершенно не разбирался в бизнесе, моим коньком были технологии. Я принес компьютер и показал его. Я вычертил схему, размножил ее на ксероксе и раздал участникам клуба, надеясь завоевать известность. Я говорил: «Вы можете сами собрать компьютер. Посмотрите, как это легко. Этот компьютер совсем недорогой и значительно отличается от Altair». Я пытался объяснить, что мой компьютер построен на новых принципах. Одни поняли их, другие – нет.

Ливингстон. Те, кто понял, собрали собственные компьютеры?

Возняк. Кроме того что нужно было понять принципы проектирования, все равно предстояло потрудиться. Многие из членов клуба были специалистами по программному обеспечению и не разбирались в аппаратных средствах. Один из ребят еще учился в школе. Я как‑то заглянул к нему и помог собрать собственный компьютер. Я начал паять платы для компьютеров знакомых. Ведь в клубе действительно были только программисты. Тут и появился Стив Джобс с предложением создать коммерческую компанию по сборке компьютеров. Он сказал: «Посмотри, сколько людей хотят собрать собственный компьютер. Они могут купить микросхемы, но не могут их правильно соединить. Почему бы нам не заняться выпуском печатных плат для компьютеров, на которых мы их будем устанавливать (пайка печатной платы достаточно проста, там нет проводов), а люди получат готовый компьютер».

То есть он хотел основать компанию, которая будет собирать печатные платы для персональных компьютеров. Причем стоимость микросхем для печатной платы составит 20 долл., а мы будем продавать готовые платы по 40 долл. Идея хорошая, но единственным местом для их продажи в моем понимании был клуб Homebrew, поэтому я сказал: «В клубе 50 человек, а кто еще купит мой компьютер вместо продукта Intel?» Я на самом деле так думал и высказал Стиву Джобсу свои сомнения. Но Стив ответил: «Даже если мы не вернем деньги, по крайней мере у нас будет своя компания». То есть два друга просто решили стать основателями компании.

Ливингстон. Вы помните, при каких обстоятельствах решили это?

Возняк. Нет. Может быть, Стив Джобс позвонил мне на работу, а может, я был у него в гостях или он зашел ко мне в гости – я не помню.

Ливингстон. Как вы познакомились со Стивом?

Возняк. Как я уже рассказывал, за пять лет до этого я решил собрать компьютер подобный Altair. Я рассказал о своем замысле товарищу, Биллу Фернандесу, жившему неподалеку. Мы договорились, что займемся сборкой в гараже. Две недели мы трудились над этим по вычерченной мною схеме. Мы ездили на велосипедах в магазин, чтобы купить крем‑соду, а затем возвращались в гараж, чтобы насладиться этим напитком в перерывах между работой. Поэтому я и назвал компьютер Cream Soda Computer. Билл ходил со мной в одну школу и однажды сказал: «В нашей школе есть один парень, младше тебя, который тоже интересуется электроникой, откалывает разные штуки и тому подобное. Тебе следует с ним познакомиться». Билл решил, что мы понравимся друг другу.

Я запомнил момент нашего знакомства: Стив вышел из своего дома, и мы стояли на дорожке перед домом и разговаривали. Мы начали с того, что похвастались своими выходками, а еще поделились впечатлениями об электронных устройствах и микросхемах. У нас нашлась масса общих интересов, поэтому было о чем поговорить. По характеру мы со Стивом оказались совершенно разными (что странно), но я могу найти общий язык с любым, кто хочет пообщаться на тему техники и технологий. А еще у нас совпали музыкальные пристрастия. В те дни музыка имела для нас огромное значение, появилось так много стоящих песен о жизни, ее смысле, наших истоках, о том, что хорошо и что плохо. Нам обоим больше нравился Боб Дилан, а не популярная музыка. Поэтому мы вместе ходили на концерты. Я учился в Беркли, но бывал дома по выходным. И каждый раз мы созванивались и встречались.

Ливингстон. Какими были ваши первые действия, когда Стив предложил создать компанию? Вы ведь еще работали в Hewlett‑Packard?

Возняк. Первая мысль была о подписанной когда‑то бумаге, где говорилось, что права на все мои разработки принадлежат Hewlett‑Packard. Хотя я собрал свой Apple I в свободное время, но полагал, что компания заслужила право на его выпуск. И я хотел, чтобы Hewlett‑Packard собирала мои компьютеры. Мне нравился мой отдел в компании, и я собирался работать там всю жизнь.

Назад Дальше