Альфа-гик из Аризоны: интервью с создателем WinAmp
WinAmp - наиболее известная и коммерчески успешная программа нашего сегодняшнего героя. В 1999 году America Online купила у него эту программу, а вместе с ней и его фирму Nullsoft, которая развивала и поддерживала ее. За эту сделку Джастин Фрэнкель (Justin Frankel) получил тогда около 100 миллионов долларов плюс руководящую должность с приличным окладом в штате AOL (первую и последнюю наемную работу в своей жизни). На тот момент Джастину было всего 20 лет - неплохое начало для карьеры обычного программиста.
И хотя Джастин уже давно не участвует в создании WinAmp, он по-прежнему очень активно продолжает коммерческую разработку софта (его новая компания Cockos! хоть и не приносит ему былых миллионов, но зато полностью самоокупается и позволяет платить зарплату ее нескольким разработчикам). По замечанию самого Джастина, продажа Nullsoft разделила его жизнь на два разных периода - до и после. Сегодня, в годовщину продажи Nullsoft, мы решили взять большое интервью у основателя таких культовых программ, как WinAmp, NSIS, Shoutcast и пиринговой сети Gnutella, чтобы узнать из первых уст историю этих известных продуктов, а также понять, чего сейчас у Джастина больше в жизни: программирования или все-таки музыки, которой он занимается не менее серьезно, чем программированием.
1. The Sellout
Прежде чем мы поговорим о вашей богатой истории, можете сейчас вспомнить, с чего все начиналось? Как вы пришли в программирование? Какие были мотивы?
Я начинал программировать на компьютере Atari 800XL, который просто остался мне от моего старшего брата. Сколько я себя помню, мне всегда было очень интересно программировать. Для меня программирование - это источник хорошего настроения, в более общем смысле - возможность развиваться и работать над собой, возможность проявить себя и свои вкусы. Бизнес-составляющая для меня была всегда в стороне от этого чувства; возможность заработать своим любимым занятием - просто дополнительный приятный бонус.
Джастин, очень логичный вопрос: что чувствует человек, когда его выгоняют из своего собственного бизнеса?
Не то чтобы это уникальная история, но все же, какие чувства вы тогда испытывали, когда вас поставили перед фактом: с сегодняшнего дня WinAmp не имеет к вам никакого отношения? Ну, во-первых, мне очень хорошо финансово компенсировали эту потерю, во-вторых, это не было какое-то мое сознательное решение, так как первоначально мы договаривались, что, несмотря на продажу, я буду продолжать работу над проектом. Поэтому я не чувствую никакой вины, что я "бросил" свой проект, - так сложились обстоятельства. Тем более я успел вложить в WinAmp практически все, что собирался там сделать, так что уходя я не чувствовал себя уж слишком каким-то подавленным.
В связи с этим вы писали в своем блоге: "Для меня программирование - это форма чистого самовыражения. Компания же (имеется в виду AOL) подавляет наиболее эффективные средства самовыражения из тех, что у меня есть. Это неприемлемо для меня как для личности, поэтому я должен уйти". Итак, программирование - это для вас искусство или может все-таки обычная работа?
Я думаю, что это смесь всего сразу. Представляю себе технологию любой разработки из трех разноуровневых плоскостей: на высшей - мы рождаем концепцию программы, формируем ее индивидуальность, это чистой воды креативность и искусство. На следующем уровне - разработка программы, ее написание и проработка алгоритмов и деталей ее работы, здесь уже задействована смесь из рабочих навыков и креативности. Низший уровень - отладка и шлифовка программы, для меня это рутина, монотонная техническая работа, лишенная творчества. Поэтому, как и в обычной жизни, при разработке мы последовательно проходим все эти уровни, но секрет успеха всего, по моему мнению, сокрыт именно в первом уровне – концепции.
Суммируя, можно сказать, что без креативности ты - "посредственный программист"?
В каком-то смысле - да. Ты обречен постоянно работать лишь на низшей плоскости в этой модели. И это - всегда наемная позиция, кстати.
Джастин, извините, я и в самом деле не понимаю, вас очень многие знают, и вы сами говорили о больших возможностях, когда вы могли устроиться во многие крупные корпорации и работать там наемным программистом (или выше), ни о чем не думая, - к чему все этим сложности и риски с собственными проектами?
Потому что это дает совсем другие ощущения. Я работал однажды в America Online (смеется), и вы сами знаете, чем это закончилось. Я понял для себя, что мне очень важно оставаться самим собой и делать в этой жизни то, что я считаю правильным. Работая на корпорацию весь день напролет, ты осуществляешь чьи-то чужие планы, не живешь своей мечтой, неизбежно подавляешь свою креативную составляющую. Очень сожалею, что мне не дано выразить словами, какая это большая разница.
Давайте коснемся и другой актуальной проблемы, через которую вы прошли лично: могут ли одиночки вроде вас противостоять большим корпорациям с большими коллективами разработчиков? Иначе говоря, возможно ли в наше время одиночкам-программистам написать что-то по-настоящему известное вроде вашего WinAmp?
Я понимаю, что вы имеете в виду, но я думаю, что не так все просто. Я работал в очень большом коллективе разработчиков в свое время, и я думаю, что часто больше - не значит лучше. Конечно, я могу сейчас рассуждать об этом лишь теоретически, но я думаю, что у одиночек шансы все еще есть. Если вы посмотрите на Facebook, Microsoft, Google, Apple и так далее, вы увидите, что, несмотря на их гигантский штат, за ними стоят по-прежнему одиночки, которых вы всех поименно знаете. Кстати, я уже говорил раньше о своей трехуровневой модели разработки - по-прежнему все решает удачная концепция, а для этого хватит и одного талантливого человека. Вот поэтому я уже давно не работаю в корпорациях. (Смеется.)
Интересно, с учетом вашего перфекционизма в отношении программирования как вы лично считаете, нужно ли специализированное высшее математическое образование (или по компьютерным наукам) для того чтобы создавать высококлассные современные программы?
Скажу вам прямо - я не считаю, что сегодня обязательно нужно иметь высшее образование по математике или в CS для разработки успешной программы. Я считаю, что любой может добиться очень многого, самостоятельно учась и пробуя. Тем более сейчас, когда такие большие возможности для получения любой информации, а также есть возможности для удаленной работы в команде с профессионалами очень высокого уровня (например, в многочисленных сетевых проектах open source). Поэтому для какого-то крепкого базиса достаточно упорства и аккуратности, я считаю. И, наоборот, я вижу, что у многих дипломированных выпускников часто не хватает элементарного упорства, чтобы добиться чего-то более-менее заметного в жизни, так что не это главное сегодня.
Хорошо, как вполне состоявшийся в сфере программирования человек поделитесь секретом этого успеха. Это просто индивидуальная удача или это результат упорного труда и личных, нестандартных способностей?
Ответ зависит только от того, что вы подразумеваете под понятием "успех". Например, для меня, и я хорошо знаю это, важным условием для будущего успеха программы является возможность самому ежедневно очень плотно пользоваться этой программой. Если ты пишешь софт для других пользователей, а сам им не пользуешься, то, естественно, не знаешь его со всевозможных сторон в реальной жизни - тогда успех будет сложной задачей; сложно добиться по-настоящему глубокого уровня резонанса с потребностями твоего потенциального покупателя в этом случае. Поэтому это очень важно, в конечном счете, все стоящие программы мы пишем прежде всего для самих себя. Разве нет?
Интересно, сегодня вы как-то принимаете участие в разработке WinAmp 5? Общаетесь ли вы с его текущим лидером Беном "Benski" Эллисоном?
Нет, вообще не в курсе, чем они там занимаются. С Беном как-то пару раз пересекались, кроме обмена обычным "привет" никак не общались. Уже пару лет как я полностью с головой ушел в свой проект REAPER.
О’кей, перевернули страницу истории, WinAmp остался позади. Что можете сказать о вашей сегодняшней ведущей разработке - REAPER? Чем она особенна среди подобных? И вообще, почему люди пишут новые программы, когда изначально существуют уже подобные аналоги?
REAPER начинался с того, что мне нужно было что-то, что позволяло бы достаточно эффективно и удобно записывать "живое аудио", а затем иметь возможность сразу же подредактировать его хотя бы на каком-то базовом уровне возможностей. На тот момент у меня не было никакого подобного и по- настоящему удобного лично мне инструмента под рукой, и, как это часто случается, "мне было проще написать это самому" (вы часто слышите от программистов эту фразу, не правда ли?).
Но, конечно, с тех пор программа очень сильно выросла и разрослась, возможно, это во многом субъективно, но я вижу ее основные отличия от многочисленных конкурентов в следующем:
. очень продвинутый уровень пользовательской кастомизации программы (возможность создания своих тем, меню, шаблонов, значений по умолчанию и т. д.);
. отсутствие защиты от копирования и взлома, полностью полнофункциональная демо-версия, что для меня очень важно;
. очень гибкая и продуманная открытая архитектура для сторонних плагинов - любой желающий может расширить любую подсистему программы, добавив в нее новую функциональность, новый формат или сферу приложения.
Я также стараюсь очень часто обновлять программу, непрерывно работая над ней. По всему тому обилию программ, которые мне приходилось видеть и писать за свою жизнь, я берусь утверждать, что REAPER - по-настоящему качественно спроектированная и реализованная программа.
Насколько она коммерчески успешна?
Конечно, у нее нет той миллионной армии пользователей, которая была у других моих разработок, но даже тех несколько тысяч клиентов, что у меня есть сейчас, вполне хватает, чтобы проект был окупаем. Вместе со мной над программой работает еще пару человек, и мы пока вполне уверенно держимся на плаву.
***
Джастин Фрэнкель вспоминает, как, будучи 16-летним подростком, он участвовал в летней олимпиаде по программированию в родном университете Северной Аризоны. Там было так скучно, что просто для веселья Джастин решил прямо там, не теряя времени, написать программу типа Fork bomb (en.wikipedia.org/wiki/Fork_bomb), которая, будучи запущенной, сразу создавала свой клон, который также мгновенно запускался, повторяя все это снова в цикле: конечно, уже через минуту ее работы компьютер намертво зависал, никак не реагируя на клавиатуру. Тогда он пересаживался вверх по аудитории, запуская эту программу все на новых компьютерах, пока группа администраторов пыталась понять, по пятам следуя за ним, что же происходит с компьютерами в лаборатории...
На следующий год, когда Джастин участвовал в точно такой же компьютерной университетской олимпиаде, главный администратор университета сразу подошел к Джастину и, сурово глядя прямо ему в глаза, процедил сквозь зубы: "Джастин, можешь заниматься сегодня за компьютером чем угодно, только не заваливай систему". Джастин говорит с улыбкой, что эту просьбу он слышит как эхо до сих пор, сквозь все эти годы...
2. Disabling the System
Журнал Rolling Stones назвал вас "самым опасным гиком в мире", журнал Times выдал интервью с вами под заголовком "Человек, который обворовал весь мир" и т. д. Итак, переходим ко второй известной вашей разработке - первой в мире децентрализованной пиринговой сети Gnutella. Судя по заголовкам мировых изданий того времени, музыкальный бизнес был единогласно уверен, что вы в очередной раз "завалили систему". А что вы сами думаете об этом?
О Gnutella? Только факты? Ну, во-первых, Nutella - это моя любимая ореховая паста, во-вторых, я люблю открытое ПО, как это делает фонд GNU. В- третьих, я люблю и достаточно серьезно занимаюсь музыкой, в-четвертых, я программирую в среднем по 8 часов в день. И что вас удивляет, что в результате всего этого случаются вещи типа Gnutella? Но, несмотря на всю мою страсть к ореховой пасте, система на этот раз устояла. (Смеется.) А если серьезно, то все эти заголовки - мягко говоря, преувеличение, и с позиции прошедшего времени это видно особенно ясно. Я просто программист, который решал очень интересную для него техническую задачу, и не нужно даже пытаться вкладывать в это нечто большее, пожалуйста.
Еще вопрос про Gnutella. Очень часто спрашивают, почему вы сами вышли из этой большой игры, в связи с чем вас сравнивают с Шоном Паркером, который недавно стал широко известен благодаря фильму "Социальная сеть" режиссера Дэвида Финчера. В самом деле, Шон создал Napster, заработав на этом большие деньги, после закрытия по решению суда его популярной пиринговой сети вы тут же создали подобную, но уже децентрализованную сеть Gnutella. По данным 2007 года, Gnutella являлась самой популярной пиринговой сетью в мире - она использовалась тогда на 40,5% компьютеров, подключенных к p2p-сетям. И в момент самого пика успеха вы выходите из игры, полностью отказавшись от дальнейшей разработки и координации проекта... Почему?
Ну, знаете ли, Шон на Napster не заработал ничего, кроме головной боли, миллионы к нему реально пришли лишь когда он стал президентом Facebook. Да, Napster сделал его известным человеком, но не богатым. Что касается меня и Gnutella... Технология уже была на том уровне, когда она прекрасно развивалась и без моего участия. Поймите меня правильно: меня интересовала техническая сторона проекта - и она вне всяких сомнений состоялась, и я ничего никому не собирался доказывать ни в юридической, ни в политической плоскости этого вопроса, как я уже говорил в ответе на предыдущий вопрос. Я не задумывал ее императивно как средство нарушения копирайта, для меня это был просто технический концепт-проект, где, получив свою дозу веселья и впечатлений от программирования такой необычной задачи, я ушел, просто чтобы заняться чем-то следующим в своей жизни, не менее интересным и важным для меня.
Раз уж вы упомянули о копирайте... Я видел старые плакаты с рекламой еще, по-моему, WinAmp версии 2.0, где вы битой, на которой выгравировано слово WinAmp, крушите буквально в щепки груды компакт-дисков вокруг вас. Я думаю, в нашем интервью настал хороший момент, чтобы немного поговорить о копирайте: что это такое, как вы его видите в современном цифровом мире? Создают ли новые технологии и взгляды, например, в вашем случае mp3 и WinAmp, проблемы для существования старых технологий и правовых норм?
Проблема не в бите в руках молодых людей, конечно, проблема в том, что все старое всегда отчаянно сопротивляется приходу нового, просто потому, что это вопрос выживания старого, а не потому, что оно лучше.
Я думаю, что копирайт в США сейчас - это больше некая звуковая концепция, и она хорошо приспособлена и отработана касательно патентов и торговых марок. Новое направление DMCA, пытающееся регулировать что-то там в цифровом мире, - очень далеко от идеала.
Реально же усиление копирайта перед наступающим пиратством в области цифровых продуктов очень проблематично. Скорее всего, это будет приводить к каким-то компромиссам, что в итоге будет размывать этот самый "копирайт" еще больше. Самая главная ошибка, которую я сейчас вижу в этой области, - это попытка контролировать защищенный контент настолько жестко, что это уже создает ощутимые трудности законным владельцам и покупателям цифровой продукции, тогда как, с другой стороны, ни капли не сдерживает пиратов (например, технология DRM, от которой нет почти никакого толка в этом плане - одни проблемы для легальных пользователей).
***
Не каждый разработчик программ может позволить себе купить дом на 800 квадратных метров, построенный в 1900 году и выполненный в викторианском стиле, в котором четыре отдельные спальни, собственный бассейн внутри дома, два гаража, мастерская, общей стоимостью около 3 миллионов долларов. Не у каждого американского миллионера задний двор заставлен старыми, собственноручно восстановленными машинами, а в домашней мастерской полным- полно самых чудаковатых электронных (и не только) музыкальных инструментов.
3. The Alpha Geek
Джастин, у всех есть свои увлечения и какие-то слабости. Я же смотрю, что вы серьезно увлекаетесь ремонтом и восстановлением автомобилей, также восстанавливаете старые музыкальные инструменты и даже создаете свои. Кроме того, вы серьезно занимаетесь музыкой и программированием: но из всех ваших многочисленных увлечений лично меня удивляет ваша давняя страсть к изготовлению глиняных горшков. Зачем они нужны вам? Не у каждого миллионера столь странные увлечения...
Я не согласен с вами, что ручная керамика и изготовление посуды из глины - это странное хобби. Я начал заниматься этим еще тинейджером, когда учился в старших классах школы, с тех пор я многому научился в этой профессии. С одной стороны, на выходе я получаю экологически чистую посуду для собственных нужд, с другой - это, поверьте, очень хороший способ для расслабления и активного отдыха, который требует очень хорошей сфокусированности на процессе и самоконтроля, при этом, будучи почти спортивным по своей увлекательности, он не изматывает физически так, как это делают более традиционные виды спорта.
И да, мне очень нравится также разбираться в сломанных машинах, я очень люблю самостоятельно постигать устройство не известных мне механизмов, и у меня за спиной несколько восстановленных почти с нуля машин. Обычно я на этом не останавливаюсь, я стараюсь что-то усовершенствовать в процессе восстановления механизма, найти возможность сделать его еще лучше и надежней, чем было изначально. Короче, если я и трачу время на очередной ремонт - это должно быть актом творчества. К тому же этот вид “обратной разработки” по отношению к механике куда более нагляден, чем в программировании, он доставляет мне множество положительных впечатлений, хорошо успокаивает.
В связи с этим: ваша любовь к игре на волынке долгими американскими вечерами, в перерывах между изготовлением горшков и восстановлением старых машин, тоже, небось, неплохо успокаивает?
Без сомнения, так и есть. Как догадались? (Смеется)
Извините, вопрос немного не по теме. Имел возможность немного пожить в Америке, штат Иллинойс, общее впечатление: с одной стороны, люди в основной массе очень много работают и ужасно устают, с другой стороны, тотальная страсть расслабляться, и ваши способы еще не самые деструктивные из всех.
Нельзя говорить сразу обо всех, но я думаю, что в приближении картина близка к правдивой для всей Америки. Мой рецепт от перегрузок и стрессов очень прост и естественен – это творчество. Проблема не в том, что мы работаем много, проблема в том, что наша работа подчас нам самим же кажется бессмысленной и ненужной – именно это убивает быстрее всего…
Я просто хочу сказать, что у вас очень насыщенная жизнь, Джастин, так что вам это не грозит :). Ладно, а что за деревянные коробки с мониторами вы собираете в своем гараже (видел фотографии в вашем блоге)?
Это Jesusonic - инструмент для создания эффект-процессинга в режиме реального времени, например, очень интересно звучащий для гитары. Я постоянно экспериментирую со звуком, это отличная платформа для таких экспериментов.
У обычных людей есть четкая грань между хобби и работой. У вас я не чувствую этой границы. Не так ли?
Я уже говорил ранее, что я работал на босса единственный раз в жизни, когда меня пригласили в AOL, и вы прекрасно знаете, с каким треском в итоге меня оттуда выгнали. Поэтому, да, все мои хобби являются моей работой - я счастливый человек.
Кстати, об AOL и вашей работе там. Ваша разработка сети Gnutella - был также творческий эксперимент, как вы рассказывали раньше. Одно мне непонятно: когда вы выкладывали на серверах AOL фактически свой собственный личный продукт потенциально пиратского назначения, я думаю, вы прекрасно понимали возможную реакцию вашего руководства. Какие мотивы вами двигали тогда? Вы специально хотели конфликта?
Поверьте, я в те годы не думал ни о каких возможных проблемах. Здесь нет ни смелости, ни наглости, ни какого-то геройства. Я просто хотел реализовать тогда что-то технологически новое, опробовать на деле принципиально новые алгоритмы по распространению файлов, и я был полностью поглощен лишь одним этим желанием. У меня были логины их серверов, так как я там работал, поэтому я туда все и выкладывал. Наверное, это неинтересный ответ, да? (Смеется)
Вы говорите, что вы более музыкант, нежели программист. Как вы видите будущее музыки? Выживут ли традиционные инструменты в будущем?
Традиционные музыкальные инструменты прекрасны, и я думаю, что они никуда не исчезнут в будущем. Я уверен в этом!
Удивительно это слышать от "прожженного электронщика", мастерская которого буквально завалена электронными инструментами...
Не совсем так. Позвольте привести пример из своей жизни. Как-то я купил на электронной распродаже на Craigslist пианино очень известной марки, которое было изготовлено в 1947 году. После его полного восстановления своими силами, когда я буквально перебрал в нем все заново, восстановив его почти с нуля, я пригласил своего друга, профессионального пианиста, чтобы он опробовал его в деле. В тот вечер я услышал божественный звук, бог мой, по моим щекам катились слезы восхищения, потому что это - настоящая музыка, которая будет восхищать вечно. Поймите меня правильно, я не против поиска нового в нашей жизни, равно как и в искусстве тоже, но есть вещи, заменить которые ничем другим просто невозможно.
Почему?
Потому что они уникальны сами по себе.
Напоследок хочу задать вопрос на тему общечеловеческих ценностей. У каждого человека, наверное, есть что-то главное в жизни - некая доминирующая идея, ради чего он живет и преодолевает все эти многочисленные неприятности и сложности в своей жизни, ради чего находит в себе силы двигаться каждый божий день вперед. А что вы можете сказать о своей ведущей цели в жизни?
Мне очень нравится Курт Воннегут, позвольте я просто процитирую его: "Быть настоящим Гуманистом, это значит вести себя в любом случае достойно, при этом не ожидая за это никаких благодарностей и не боясь наказаний на том свете".
Я не совсем уверен, что я в точности гуманист, но по крайней мере, эти взгляды в моей жизни значат для меня много. И знаю, это так банально звучит, но я считаю, что самый большой вызов в нашем мире - это оставаться самим собой в любой ситуации.
Игорь Савчук http://Softkey.info
И хотя Джастин уже давно не участвует в создании WinAmp, он по-прежнему очень активно продолжает коммерческую разработку софта (его новая компания Cockos! хоть и не приносит ему былых миллионов, но зато полностью самоокупается и позволяет платить зарплату ее нескольким разработчикам). По замечанию самого Джастина, продажа Nullsoft разделила его жизнь на два разных периода - до и после. Сегодня, в годовщину продажи Nullsoft, мы решили взять большое интервью у основателя таких культовых программ, как WinAmp, NSIS, Shoutcast и пиринговой сети Gnutella, чтобы узнать из первых уст историю этих известных продуктов, а также понять, чего сейчас у Джастина больше в жизни: программирования или все-таки музыки, которой он занимается не менее серьезно, чем программированием.
1. The Sellout
Прежде чем мы поговорим о вашей богатой истории, можете сейчас вспомнить, с чего все начиналось? Как вы пришли в программирование? Какие были мотивы?
Я начинал программировать на компьютере Atari 800XL, который просто остался мне от моего старшего брата. Сколько я себя помню, мне всегда было очень интересно программировать. Для меня программирование - это источник хорошего настроения, в более общем смысле - возможность развиваться и работать над собой, возможность проявить себя и свои вкусы. Бизнес-составляющая для меня была всегда в стороне от этого чувства; возможность заработать своим любимым занятием - просто дополнительный приятный бонус.
Джастин, очень логичный вопрос: что чувствует человек, когда его выгоняют из своего собственного бизнеса?
Не то чтобы это уникальная история, но все же, какие чувства вы тогда испытывали, когда вас поставили перед фактом: с сегодняшнего дня WinAmp не имеет к вам никакого отношения? Ну, во-первых, мне очень хорошо финансово компенсировали эту потерю, во-вторых, это не было какое-то мое сознательное решение, так как первоначально мы договаривались, что, несмотря на продажу, я буду продолжать работу над проектом. Поэтому я не чувствую никакой вины, что я "бросил" свой проект, - так сложились обстоятельства. Тем более я успел вложить в WinAmp практически все, что собирался там сделать, так что уходя я не чувствовал себя уж слишком каким-то подавленным.
В связи с этим вы писали в своем блоге: "Для меня программирование - это форма чистого самовыражения. Компания же (имеется в виду AOL) подавляет наиболее эффективные средства самовыражения из тех, что у меня есть. Это неприемлемо для меня как для личности, поэтому я должен уйти". Итак, программирование - это для вас искусство или может все-таки обычная работа?
Я думаю, что это смесь всего сразу. Представляю себе технологию любой разработки из трех разноуровневых плоскостей: на высшей - мы рождаем концепцию программы, формируем ее индивидуальность, это чистой воды креативность и искусство. На следующем уровне - разработка программы, ее написание и проработка алгоритмов и деталей ее работы, здесь уже задействована смесь из рабочих навыков и креативности. Низший уровень - отладка и шлифовка программы, для меня это рутина, монотонная техническая работа, лишенная творчества. Поэтому, как и в обычной жизни, при разработке мы последовательно проходим все эти уровни, но секрет успеха всего, по моему мнению, сокрыт именно в первом уровне – концепции.
Суммируя, можно сказать, что без креативности ты - "посредственный программист"?
В каком-то смысле - да. Ты обречен постоянно работать лишь на низшей плоскости в этой модели. И это - всегда наемная позиция, кстати.
Джастин, извините, я и в самом деле не понимаю, вас очень многие знают, и вы сами говорили о больших возможностях, когда вы могли устроиться во многие крупные корпорации и работать там наемным программистом (или выше), ни о чем не думая, - к чему все этим сложности и риски с собственными проектами?
Потому что это дает совсем другие ощущения. Я работал однажды в America Online (смеется), и вы сами знаете, чем это закончилось. Я понял для себя, что мне очень важно оставаться самим собой и делать в этой жизни то, что я считаю правильным. Работая на корпорацию весь день напролет, ты осуществляешь чьи-то чужие планы, не живешь своей мечтой, неизбежно подавляешь свою креативную составляющую. Очень сожалею, что мне не дано выразить словами, какая это большая разница.
Давайте коснемся и другой актуальной проблемы, через которую вы прошли лично: могут ли одиночки вроде вас противостоять большим корпорациям с большими коллективами разработчиков? Иначе говоря, возможно ли в наше время одиночкам-программистам написать что-то по-настоящему известное вроде вашего WinAmp?
Я понимаю, что вы имеете в виду, но я думаю, что не так все просто. Я работал в очень большом коллективе разработчиков в свое время, и я думаю, что часто больше - не значит лучше. Конечно, я могу сейчас рассуждать об этом лишь теоретически, но я думаю, что у одиночек шансы все еще есть. Если вы посмотрите на Facebook, Microsoft, Google, Apple и так далее, вы увидите, что, несмотря на их гигантский штат, за ними стоят по-прежнему одиночки, которых вы всех поименно знаете. Кстати, я уже говорил раньше о своей трехуровневой модели разработки - по-прежнему все решает удачная концепция, а для этого хватит и одного талантливого человека. Вот поэтому я уже давно не работаю в корпорациях. (Смеется.)
Интересно, с учетом вашего перфекционизма в отношении программирования как вы лично считаете, нужно ли специализированное высшее математическое образование (или по компьютерным наукам) для того чтобы создавать высококлассные современные программы?
Скажу вам прямо - я не считаю, что сегодня обязательно нужно иметь высшее образование по математике или в CS для разработки успешной программы. Я считаю, что любой может добиться очень многого, самостоятельно учась и пробуя. Тем более сейчас, когда такие большие возможности для получения любой информации, а также есть возможности для удаленной работы в команде с профессионалами очень высокого уровня (например, в многочисленных сетевых проектах open source). Поэтому для какого-то крепкого базиса достаточно упорства и аккуратности, я считаю. И, наоборот, я вижу, что у многих дипломированных выпускников часто не хватает элементарного упорства, чтобы добиться чего-то более-менее заметного в жизни, так что не это главное сегодня.
Хорошо, как вполне состоявшийся в сфере программирования человек поделитесь секретом этого успеха. Это просто индивидуальная удача или это результат упорного труда и личных, нестандартных способностей?
Ответ зависит только от того, что вы подразумеваете под понятием "успех". Например, для меня, и я хорошо знаю это, важным условием для будущего успеха программы является возможность самому ежедневно очень плотно пользоваться этой программой. Если ты пишешь софт для других пользователей, а сам им не пользуешься, то, естественно, не знаешь его со всевозможных сторон в реальной жизни - тогда успех будет сложной задачей; сложно добиться по-настоящему глубокого уровня резонанса с потребностями твоего потенциального покупателя в этом случае. Поэтому это очень важно, в конечном счете, все стоящие программы мы пишем прежде всего для самих себя. Разве нет?
Интересно, сегодня вы как-то принимаете участие в разработке WinAmp 5? Общаетесь ли вы с его текущим лидером Беном "Benski" Эллисоном?
Нет, вообще не в курсе, чем они там занимаются. С Беном как-то пару раз пересекались, кроме обмена обычным "привет" никак не общались. Уже пару лет как я полностью с головой ушел в свой проект REAPER.
О’кей, перевернули страницу истории, WinAmp остался позади. Что можете сказать о вашей сегодняшней ведущей разработке - REAPER? Чем она особенна среди подобных? И вообще, почему люди пишут новые программы, когда изначально существуют уже подобные аналоги?
REAPER начинался с того, что мне нужно было что-то, что позволяло бы достаточно эффективно и удобно записывать "живое аудио", а затем иметь возможность сразу же подредактировать его хотя бы на каком-то базовом уровне возможностей. На тот момент у меня не было никакого подобного и по- настоящему удобного лично мне инструмента под рукой, и, как это часто случается, "мне было проще написать это самому" (вы часто слышите от программистов эту фразу, не правда ли?).
Но, конечно, с тех пор программа очень сильно выросла и разрослась, возможно, это во многом субъективно, но я вижу ее основные отличия от многочисленных конкурентов в следующем:
. очень продвинутый уровень пользовательской кастомизации программы (возможность создания своих тем, меню, шаблонов, значений по умолчанию и т. д.);
. отсутствие защиты от копирования и взлома, полностью полнофункциональная демо-версия, что для меня очень важно;
. очень гибкая и продуманная открытая архитектура для сторонних плагинов - любой желающий может расширить любую подсистему программы, добавив в нее новую функциональность, новый формат или сферу приложения.
Я также стараюсь очень часто обновлять программу, непрерывно работая над ней. По всему тому обилию программ, которые мне приходилось видеть и писать за свою жизнь, я берусь утверждать, что REAPER - по-настоящему качественно спроектированная и реализованная программа.
Насколько она коммерчески успешна?
Конечно, у нее нет той миллионной армии пользователей, которая была у других моих разработок, но даже тех несколько тысяч клиентов, что у меня есть сейчас, вполне хватает, чтобы проект был окупаем. Вместе со мной над программой работает еще пару человек, и мы пока вполне уверенно держимся на плаву.
***
Джастин Фрэнкель вспоминает, как, будучи 16-летним подростком, он участвовал в летней олимпиаде по программированию в родном университете Северной Аризоны. Там было так скучно, что просто для веселья Джастин решил прямо там, не теряя времени, написать программу типа Fork bomb (en.wikipedia.org/wiki/Fork_bomb), которая, будучи запущенной, сразу создавала свой клон, который также мгновенно запускался, повторяя все это снова в цикле: конечно, уже через минуту ее работы компьютер намертво зависал, никак не реагируя на клавиатуру. Тогда он пересаживался вверх по аудитории, запуская эту программу все на новых компьютерах, пока группа администраторов пыталась понять, по пятам следуя за ним, что же происходит с компьютерами в лаборатории...
На следующий год, когда Джастин участвовал в точно такой же компьютерной университетской олимпиаде, главный администратор университета сразу подошел к Джастину и, сурово глядя прямо ему в глаза, процедил сквозь зубы: "Джастин, можешь заниматься сегодня за компьютером чем угодно, только не заваливай систему". Джастин говорит с улыбкой, что эту просьбу он слышит как эхо до сих пор, сквозь все эти годы...
2. Disabling the System
Журнал Rolling Stones назвал вас "самым опасным гиком в мире", журнал Times выдал интервью с вами под заголовком "Человек, который обворовал весь мир" и т. д. Итак, переходим ко второй известной вашей разработке - первой в мире децентрализованной пиринговой сети Gnutella. Судя по заголовкам мировых изданий того времени, музыкальный бизнес был единогласно уверен, что вы в очередной раз "завалили систему". А что вы сами думаете об этом?
О Gnutella? Только факты? Ну, во-первых, Nutella - это моя любимая ореховая паста, во-вторых, я люблю открытое ПО, как это делает фонд GNU. В- третьих, я люблю и достаточно серьезно занимаюсь музыкой, в-четвертых, я программирую в среднем по 8 часов в день. И что вас удивляет, что в результате всего этого случаются вещи типа Gnutella? Но, несмотря на всю мою страсть к ореховой пасте, система на этот раз устояла. (Смеется.) А если серьезно, то все эти заголовки - мягко говоря, преувеличение, и с позиции прошедшего времени это видно особенно ясно. Я просто программист, который решал очень интересную для него техническую задачу, и не нужно даже пытаться вкладывать в это нечто большее, пожалуйста.
Еще вопрос про Gnutella. Очень часто спрашивают, почему вы сами вышли из этой большой игры, в связи с чем вас сравнивают с Шоном Паркером, который недавно стал широко известен благодаря фильму "Социальная сеть" режиссера Дэвида Финчера. В самом деле, Шон создал Napster, заработав на этом большие деньги, после закрытия по решению суда его популярной пиринговой сети вы тут же создали подобную, но уже децентрализованную сеть Gnutella. По данным 2007 года, Gnutella являлась самой популярной пиринговой сетью в мире - она использовалась тогда на 40,5% компьютеров, подключенных к p2p-сетям. И в момент самого пика успеха вы выходите из игры, полностью отказавшись от дальнейшей разработки и координации проекта... Почему?
Ну, знаете ли, Шон на Napster не заработал ничего, кроме головной боли, миллионы к нему реально пришли лишь когда он стал президентом Facebook. Да, Napster сделал его известным человеком, но не богатым. Что касается меня и Gnutella... Технология уже была на том уровне, когда она прекрасно развивалась и без моего участия. Поймите меня правильно: меня интересовала техническая сторона проекта - и она вне всяких сомнений состоялась, и я ничего никому не собирался доказывать ни в юридической, ни в политической плоскости этого вопроса, как я уже говорил в ответе на предыдущий вопрос. Я не задумывал ее императивно как средство нарушения копирайта, для меня это был просто технический концепт-проект, где, получив свою дозу веселья и впечатлений от программирования такой необычной задачи, я ушел, просто чтобы заняться чем-то следующим в своей жизни, не менее интересным и важным для меня.
Раз уж вы упомянули о копирайте... Я видел старые плакаты с рекламой еще, по-моему, WinAmp версии 2.0, где вы битой, на которой выгравировано слово WinAmp, крушите буквально в щепки груды компакт-дисков вокруг вас. Я думаю, в нашем интервью настал хороший момент, чтобы немного поговорить о копирайте: что это такое, как вы его видите в современном цифровом мире? Создают ли новые технологии и взгляды, например, в вашем случае mp3 и WinAmp, проблемы для существования старых технологий и правовых норм?
Проблема не в бите в руках молодых людей, конечно, проблема в том, что все старое всегда отчаянно сопротивляется приходу нового, просто потому, что это вопрос выживания старого, а не потому, что оно лучше.
Я думаю, что копирайт в США сейчас - это больше некая звуковая концепция, и она хорошо приспособлена и отработана касательно патентов и торговых марок. Новое направление DMCA, пытающееся регулировать что-то там в цифровом мире, - очень далеко от идеала.
Реально же усиление копирайта перед наступающим пиратством в области цифровых продуктов очень проблематично. Скорее всего, это будет приводить к каким-то компромиссам, что в итоге будет размывать этот самый "копирайт" еще больше. Самая главная ошибка, которую я сейчас вижу в этой области, - это попытка контролировать защищенный контент настолько жестко, что это уже создает ощутимые трудности законным владельцам и покупателям цифровой продукции, тогда как, с другой стороны, ни капли не сдерживает пиратов (например, технология DRM, от которой нет почти никакого толка в этом плане - одни проблемы для легальных пользователей).
***
Не каждый разработчик программ может позволить себе купить дом на 800 квадратных метров, построенный в 1900 году и выполненный в викторианском стиле, в котором четыре отдельные спальни, собственный бассейн внутри дома, два гаража, мастерская, общей стоимостью около 3 миллионов долларов. Не у каждого американского миллионера задний двор заставлен старыми, собственноручно восстановленными машинами, а в домашней мастерской полным- полно самых чудаковатых электронных (и не только) музыкальных инструментов.
3. The Alpha Geek
Джастин, у всех есть свои увлечения и какие-то слабости. Я же смотрю, что вы серьезно увлекаетесь ремонтом и восстановлением автомобилей, также восстанавливаете старые музыкальные инструменты и даже создаете свои. Кроме того, вы серьезно занимаетесь музыкой и программированием: но из всех ваших многочисленных увлечений лично меня удивляет ваша давняя страсть к изготовлению глиняных горшков. Зачем они нужны вам? Не у каждого миллионера столь странные увлечения...
Я не согласен с вами, что ручная керамика и изготовление посуды из глины - это странное хобби. Я начал заниматься этим еще тинейджером, когда учился в старших классах школы, с тех пор я многому научился в этой профессии. С одной стороны, на выходе я получаю экологически чистую посуду для собственных нужд, с другой - это, поверьте, очень хороший способ для расслабления и активного отдыха, который требует очень хорошей сфокусированности на процессе и самоконтроля, при этом, будучи почти спортивным по своей увлекательности, он не изматывает физически так, как это делают более традиционные виды спорта.
И да, мне очень нравится также разбираться в сломанных машинах, я очень люблю самостоятельно постигать устройство не известных мне механизмов, и у меня за спиной несколько восстановленных почти с нуля машин. Обычно я на этом не останавливаюсь, я стараюсь что-то усовершенствовать в процессе восстановления механизма, найти возможность сделать его еще лучше и надежней, чем было изначально. Короче, если я и трачу время на очередной ремонт - это должно быть актом творчества. К тому же этот вид “обратной разработки” по отношению к механике куда более нагляден, чем в программировании, он доставляет мне множество положительных впечатлений, хорошо успокаивает.
В связи с этим: ваша любовь к игре на волынке долгими американскими вечерами, в перерывах между изготовлением горшков и восстановлением старых машин, тоже, небось, неплохо успокаивает?
Без сомнения, так и есть. Как догадались? (Смеется)
Извините, вопрос немного не по теме. Имел возможность немного пожить в Америке, штат Иллинойс, общее впечатление: с одной стороны, люди в основной массе очень много работают и ужасно устают, с другой стороны, тотальная страсть расслабляться, и ваши способы еще не самые деструктивные из всех.
Нельзя говорить сразу обо всех, но я думаю, что в приближении картина близка к правдивой для всей Америки. Мой рецепт от перегрузок и стрессов очень прост и естественен – это творчество. Проблема не в том, что мы работаем много, проблема в том, что наша работа подчас нам самим же кажется бессмысленной и ненужной – именно это убивает быстрее всего…
Я просто хочу сказать, что у вас очень насыщенная жизнь, Джастин, так что вам это не грозит :). Ладно, а что за деревянные коробки с мониторами вы собираете в своем гараже (видел фотографии в вашем блоге)?
Это Jesusonic - инструмент для создания эффект-процессинга в режиме реального времени, например, очень интересно звучащий для гитары. Я постоянно экспериментирую со звуком, это отличная платформа для таких экспериментов.
У обычных людей есть четкая грань между хобби и работой. У вас я не чувствую этой границы. Не так ли?
Я уже говорил ранее, что я работал на босса единственный раз в жизни, когда меня пригласили в AOL, и вы прекрасно знаете, с каким треском в итоге меня оттуда выгнали. Поэтому, да, все мои хобби являются моей работой - я счастливый человек.
Кстати, об AOL и вашей работе там. Ваша разработка сети Gnutella - был также творческий эксперимент, как вы рассказывали раньше. Одно мне непонятно: когда вы выкладывали на серверах AOL фактически свой собственный личный продукт потенциально пиратского назначения, я думаю, вы прекрасно понимали возможную реакцию вашего руководства. Какие мотивы вами двигали тогда? Вы специально хотели конфликта?
Поверьте, я в те годы не думал ни о каких возможных проблемах. Здесь нет ни смелости, ни наглости, ни какого-то геройства. Я просто хотел реализовать тогда что-то технологически новое, опробовать на деле принципиально новые алгоритмы по распространению файлов, и я был полностью поглощен лишь одним этим желанием. У меня были логины их серверов, так как я там работал, поэтому я туда все и выкладывал. Наверное, это неинтересный ответ, да? (Смеется)
Вы говорите, что вы более музыкант, нежели программист. Как вы видите будущее музыки? Выживут ли традиционные инструменты в будущем?
Традиционные музыкальные инструменты прекрасны, и я думаю, что они никуда не исчезнут в будущем. Я уверен в этом!
Удивительно это слышать от "прожженного электронщика", мастерская которого буквально завалена электронными инструментами...
Не совсем так. Позвольте привести пример из своей жизни. Как-то я купил на электронной распродаже на Craigslist пианино очень известной марки, которое было изготовлено в 1947 году. После его полного восстановления своими силами, когда я буквально перебрал в нем все заново, восстановив его почти с нуля, я пригласил своего друга, профессионального пианиста, чтобы он опробовал его в деле. В тот вечер я услышал божественный звук, бог мой, по моим щекам катились слезы восхищения, потому что это - настоящая музыка, которая будет восхищать вечно. Поймите меня правильно, я не против поиска нового в нашей жизни, равно как и в искусстве тоже, но есть вещи, заменить которые ничем другим просто невозможно.
Почему?
Потому что они уникальны сами по себе.
Напоследок хочу задать вопрос на тему общечеловеческих ценностей. У каждого человека, наверное, есть что-то главное в жизни - некая доминирующая идея, ради чего он живет и преодолевает все эти многочисленные неприятности и сложности в своей жизни, ради чего находит в себе силы двигаться каждый божий день вперед. А что вы можете сказать о своей ведущей цели в жизни?
Мне очень нравится Курт Воннегут, позвольте я просто процитирую его: "Быть настоящим Гуманистом, это значит вести себя в любом случае достойно, при этом не ожидая за это никаких благодарностей и не боясь наказаний на том свете".
Я не совсем уверен, что я в точности гуманист, но по крайней мере, эти взгляды в моей жизни значат для меня много. И знаю, это так банально звучит, но я считаю, что самый большой вызов в нашем мире - это оставаться самим собой в любой ситуации.
Игорь Савчук http://Softkey.info
Компьютерная газета. Статья была опубликована в номере 31 за 2011 год в рубрике программирование