WinAmp — наиболее известная и коммерчески успешная программа нашего сегодняшнего героя. В 1999 году America Online купила у него эту программу, а вместе с ней и его фирму Nullsoft, которая развивала и поддерживала её. За эту сделку Джастин Фрэнкель (Justin Frankel) получил тогда около 100 миллионов долларов плюс руководящую должность с приличным окладом в штате AOL (первую и последнюю наемную работу в своей жизни). На тот момент Джастину было всего 20 лет — неплохое начало для карьеры обычного программиста.
И хотя он уже давно не участвует в создании WinAmp, Джастин по-прежнему очень активно продолжает коммерческую разработку софта (его новая компания Cockos! хоть и не приносит ему былых миллионов, но зато полностью самоокупается и позволяет платить зарплату её нескольким разработчикам). По замечанию самого Джастина, продажа Nullsoft разделила его жизнь на два разных периода — до и после. Сегодня, в годовщину продажи Nullsoft, мы решили взять большое интервью у основателя таких культовых программ, как WinAmp, Shoutcast и пиринговой сети Gnutella, чтобы узнать из первых уст историю этих известных продуктов, а также понять, чего сейчас у Джастина больше в жизни: программирования или всё-таки музыки, которой он занимается не менее серьёзно, чем программированием.
Остается лишь добавить, что это интервью взято специально для компьютерного издания SoftKey.info

Прежде чем мы поговорим о вашей богатой истории, можете сейчас вспомнить, с чего все начиналось? Как вы пришли в программирование? Какие были мотивы?
Я начинал программировать на компьютере Atari 800XL, который просто остался мне от моего старшего брата. Сколько я себя помню, мне всегда было очень интересно программировать. Для меня программирование — это источник хорошего настроения, в более общем смысле — возможность развиваться и работать над собой, возможность проявить себя и свои вкусы. Бизнес-составляющая для меня была всегда в стороне от этого чувства; возможность заработать своим любимым занятием — просто дополнительный, приятный бонус.
Джастин, очень логичный вопрос: что чувствует человек, когда его выгоняют из своего собственного бизнеса? Не то чтобы это уникальная история, но все же, какие чувства вы тогда испытывали, когда вас поставили перед фактом: с сегодняшнего дня WinAmp не имеет к вам никакого отношения?
Ну, во-первых, мне очень хорошо финансово компенсировали эту потерю, во-вторых, это не было какое-то моё сознательное решение, так как первоначально мы договаривались, что, несмотря на продажу, я буду продолжать работу над проектом. Поэтому я не чувствую никакой вины, что я «бросил» свой проект, — так сложились обстоятельства. Тем более я успел вложить в WinAmp практически всё, что собирался там сделать, поэтому уходя я не чувствовал себя уж слишком каким-то подавленным.
В связи с этим вы писали в своем блоге: «Для меня программирование — это форма чистого самовыражения. Компания же (имеется в виду AOL) подавляет наиболее эффективные средства самовыражения из тех, что у меня есть. Это неприемлемо для меня как для личности, поэтому — я должен уйти». Итак, программирование — это для вас искусство или может все-таки обычная работа?
Я думаю, что это смесь всего сразу. Представляю себе технологию любой разработки из трех разноуровневых плоскостей: на высшей — мы рождаем концепцию программы, формируем её индивидуальность, это чистой воды креативность и искусство. На следующем уровне — разработка программы, её написание и проработка алгоритмов и деталей её работы, здесь уже задействована смесь из рабочих навыков и креативности. Низший уровень — отладка и шлифовка программы, для меня это рутина, монотонная техническая работа, лишенная творчества.

Поэтому, как и в обычной жизни, при разработке мы последовательно проходим все эти уровни, но секрет успеха всего, по моему мнению, сокрыт именно в первом уровне — концепции.
Суммируя, можно сказать, что без креативности — ты «посредственный программист»?
В каком-то смысле — да. Ты обречен постоянно работать лишь на низшей плоскости в этой модели. И это — всегда наемная позиция, кстати.
Джастин, извините, я и в самом деле не понимаю, вас очень многие знают, и вы сами говорили о больших возможностях, когда вы могли устроиться во многие крупные корпорации и работать там наемным программистом (или выше), ни о чем не думая, — к чему все этим сложности и риски с собственными проектами?
Потому что это дает совсем другие ощущения. Я работал однажды в America Online (смеется), и вы сами знаете, чем это закончилось. Я понял для себя, что мне очень важно оставаться самим собой и делать в этой жизни то, что я считаю правильным. Работая на корпорацию весь день напролет, ты осуществляешь чьи-то чужие планы, не живешь своей мечтой, неизбежно подавляешь свою креативную составляющую. Очень сожалею, что мне не дано выразить словами, какая это большая разница.
Давайте коснемся и другой актуальной проблемы, через которую вы прошли лично: могут ли одиночки вроде вас противостоять большим корпорациям с большими коллективами разработчиков? Иначе говоря, возможно ли в наше время одиночкам-программистам написать что-то по-настоящему известное вроде вашего WinAmp?
Я понимаю, что вы имеете в виду, но я думаю, что не так все просто. Я работал в очень большом коллективе разработчиков в свое время, и я думаю, что часто больше — не значит лучше. Конечно, я могу сейчас рассуждать об этом лишь теоретически, но я думаю, что у одиночек шансы все ещё есть. Если вы посмотрите на Facebook, Microsoft, Google, Apple и так далее, вы увидите, что, несмотря на их гигантский штат, за ними стоят по-прежнему одиночки, которых вы всех поименно знаете. Кстати, я уже говорил раньше о своей трехуровневой модели разработки — по-прежнему все решает удачная концепция, а для этого хватит и одного талантливого человека. Вот поэтому я уже давно не работаю в корпорациях. (Смеется.)

Интересно, с учетом вашего перфекционизма в отношении программирования как вы лично считаете, нужно ли специализированное высшее математическое образование (или по компьютерным наукам), для того чтобы создавать высококлассные современные программы?
Скажу вам прямо — я не считаю, что сегодня обязательно нужно иметь высшее образование по математике или в CS для разработки успешной программы. Я считаю, что любой может добиться очень многого, самостоятельно учась и пробуя. Тем более сейчас, когда такие большие возможности для получения любой информации, а также есть возможности для удаленной работы в команде с профессионалами очень высокого уровня (например, в многочисленных сетевых проектах open source). Поэтому для какого-то крепкого базиса достаточно упорства и аккуратности, я считаю. И, наоборот, вижу, что у многих дипломированных выпускников часто не хватает элементарного упорства, чтобы добиться чего-то более менее заметного, поэтому не это главное сегодня.
Хорошо, как вполне состоявшийся в сфере программирования человек поделитесь секретом этого успеха. Это просто индивидуальная удача или это результат упорного труда и личных, нестандартных способностей?
Ответ зависит только от того, что вы подразумеваете под понятием «успех». Например, для меня, и я хорошо знаю это, важным условием для будущего успеха программы является возможность самому ежедневно очень плотно пользоваться этой программой. Если ты пишешь софт для других пользователей, а сам им не пользуешься, то, естественно, не знаешь его со всевозможных сторон в реальной жизни — тогда успех будет сложной задачей; сложно добиться по-настоящему глубокого уровня резонанса с потребностями твоего потенциального покупателя в этом случае. Поэтому это очень важно, в конечном счете, все стоящие программы мы пишем прежде всего для самих себя. Разве нет?
Интересно, сегодня вы как-то принимаете участие в разработке WinAmp 5? Общаетесь ли вы с его текущим лидером Беном «Benski» Эллисоном?
Нет, вообще не в курсе, чем они там занимаются. С Беном как-то пару раз пересекались, кроме обмена обычным «привет» никак не общались. Уже пару лет как я полностью с головой ушел в свой проект REAPER.
О'кей, перевернули страницу истории, WinAmp остался позади. Что можете сказать о вашей сегодняшней ведущей разработке — REAPER? Чем она особенна среди подобных ей? И вообще, почему люди пишут новые программы, когда изначально существуют уже подобные аналоги?
REAPER начинался с того, что мне нужно было что-то, что позволяло бы достаточно эффективно и удобно записывать «живое аудио», а затем иметь возможность сразу же подредактировать его хотя бы на каком-то базовом уровне возможностей. На тот момент у меня не было никакого подобного и по-настоящему удобного лично мне инструмента под рукой, и, как это часто случается, «мне было проще написать это самому» (знакомая для программистов фраза, не правда ли?).

Но, конечно, с тех пор программа очень сильно выросла и разрослась, возможно, это во многом субъективно, но я вижу её основные отличия от многочисленных конкурентов в следующем:
- очень продвинутый уровень пользовательской кастомизации программы (возможность создания своих тем, меню, шаблонов, значений по умолчанию и т. д.);
- отсутствие защиты от копирования и взлома, полностью полнофункциональная демоверсия, что для меня очень важно;
- очень гибкая и продуманная открытая архитектура для сторонних плагинов — любой желающий может расширить любую подсистему программы, добавив в неё новую функциональность, новый формат или сферу приложения.
- я также стараюсь очень часто обновлять программу, непрерывно работая над ней. По всему тому обилию программ, которые мне приходилось видеть и писать за свою жизнь, я берусь судить, что REAPER — по-настоящему качественно спроектированная и реализованная программа.
Насколько она коммерчески успешна?
Конечно, у неё нет той миллионной армии пользователей, которая была у других моих разработок, но даже тех несколько тысяч клиентов, что у меня есть сейчас, вполне хватает, чтобы проект был окупаем. Вместе со мной над программой работает ещё пару человек, и мы пока вполне хорошо держимся на плаву.
Конец первой части интервью. Приглашаем прочитать и третью части нашего с ним интервью, где мы поговорим с Джастином уже о более неформальных вещах, таких как музыка и музыкальная индустрия, искусство вообще, об авторских правах и их эффективности в сегодняшнем мире. Также познакомимся с увлечениями Джастина, получим ответы на вопросы: зачем миллионеру лепить горшки из глины, скупать и собственноручно восстанавливать «убитые машины», а также конструировать свои собственные музыкальные инструменты?