Перевод поста Стивен Вольфрам (Stephen Wolfram) "My Life in Technology—As Told at the Computer History Museum".
Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации
Обычно меня интересует будущее. Однако и история, на мой взгляд, интересна и познавательна, и я много изучаю и ее тоже. Чаще всего это истории жизни других людей. Но Музей компьютерной истории просил меня рассказать сегодня о моей собственной жизни и о технологиях, которые я создал. Именно это я и собираюсь сделать.
Сейчас для меня наступило уникальное время — множество вещей, над которыми я работал на протяжении более чем 30 лет, начали приносить плоды.
В центре моего внимания находится Wolfram Language — новый вид языка, основанный на знаниях (в который встроено огромное количество знаний — как о вычислениях, так и о мире в целом). Wolfram Language максимально автоматизирован для того, чтобы путь от идеи до фактической реализации был максимально коротким.
Сегодня я хочу поговорить о том, как я шел к созданию системы Mathematica и Wolfram|Alpha.
Мне придется много говорить о моей собственной истории: в основном о том, как я провел большую часть своей жизни, занимаясь наукой и технологией. Когда я оглядываюсь назад, многое из того, что случилось, кажется неизбежным и неумолимым. А кое-чего я и не ожидал.
Но позвольте мне начать с начала. Я родился в Лондоне в 1959 году — так что да: я безбожно стар (по крайней мере, по моим текущим стандартам). Мой отец управлял небольшой компанией (международная торговля текстилем) в течение почти 60 лет, а также написал несколько фантастических романов. Моя мать была профессором философии в Оксфорде. В последний раз, когда я был в книжном магазине Стэндфорда, я случайно увидел ее учебник по философской логике.
Вы знаете, я помню, когда мне было лет 5 или 6, я скучал на какой-то вечеринке с кучей взрослых, и вот очень долгий разговор про какого-то очень уважаемого философа из Оксфорда закончился словами: "настанет день, и этот ребенок станет философом". Что ж, они оказались правы. Довольно забавно, что так происходит.
Вот каким я был тогда:
Я пошел в начальную школу в Оксфорде — в место под названием Школа Дракона (предполагаю, что это, вероятно, самая известная начальная школа в Англии). Википедия считает, что самые известные на данный момент люди из моего класса — это я и актер Хью Лори.
Вот один из моих школьных докладов (мне было 7 лет). Это рейтинг класса. Так что я преуспевал в поэзии и географии, но не в математике (и да — это Англия, так что у нас был предмет «изучение Библии»). Но по крайней мере там говорится: "он полон духа и решимости; он должен далеко пойти..."
Был 1967 год, и я изучал латынь и прочее; но что мне действительно нравилось, так это будущее. В то время наиболее ориентированной на будущее была космическая программа. И я очень заинтересовался и начал собирать всю информацию, которую только мог найти, о каждом запущенном космическом аппарате, а маленькие тетрадочки, в которых копил всю информацию, складывал вместе. И я обнаружил, что даже из Англии можно было написать в НАСА и получить весь материал бесплатно по почте.
В то время предполагалось, что на Марсе будут колонии, и я начал делать небольшие проекты для космических аппаратов.
Я заинтересовался двигателями и ионными аккумуляторами, а когда мне исполнилось 11 лет, моим основным интересом стала физика.
И я обнаружил, что можно узнать много и быстро, если просто читать книги (к школе это не имело никакого отношения). Я выбрал различные области физической науки и попытался организовать в систему знания о них. В итоге (когда мне уже было 12) я провел лето, сводя воедино все факты о физике. Я полагаю, вы могли бы назвать кое-что из этого «визуализацией». И, действительно, сейчас это, как и многое другое, легко найти в Интернете:
Несколько лет назад я снова нашел это (во время выхода Wolfram| Alpha) и подумал: "О, черт возьми, я делал то же самое всю мою жизнь!" И тогда я начал набирать числа из тех времен, когда мне было 11 или 12 лет, чтобы увидеть, получится ли то же самое у Wolfram|Alpha: Конечно, все получилось:
Когда мне было 12 лет, я, следуя британской традиции, пошел в так называемую государственную школу, хотя на самом деле она была частной. Я пошел в Итон — самую известную из таких школ, которая была основана за 50 лет до того, как Колумб прибыл в Америку. Я даже получил самую высокую стипендию среди поступивших детей в 1972 году.
Да, все всё время носили фраки, а королевские стипендиаты вроде меня носили также мантии, которые защищали от дождя и т. д. Я думал, что удачно избегал эти ежегодные фотографии в стиле Гарри Поттера, но один раз все-таки меня запечатлели на групповом снимке:
И в то время с его латынью, греческим и мантиями я вел своего рода двойную жизнь, потому что моей настоящей страстью была физика.
Летом, когда мне исполнилось 13, я собрал воедино краткую информацию о физике элементарных частиц:
И я сделал важное открытие: даже ребенок может обнаружить интересные вещи. И тогда я стал пытаться самостоятельно отвечать на вопросы по физике либо искал ответы в книгах, и к тому моменту, когда мне исполнилось 15, я начал публиковать статьи о физике. Никто не спрашивает, сколько вам лет, когда вы отправляете статью в журнал о физике.
Когда мне было 12, случилось кое-что важное: я познакомился со своим первым компьютером. Это Эллиот 903C. Это не совсем тот, которым я пользовался, но похожий:
Он появился в Итоне вместе с моим учителем Норманом Роутледжем, который был другом Алана Тьюринга. У него был 18-битный ферритовый сердечник на 8 килослов, программируемый посредством майларовой ленты, часто — на SIR (ассемблер).
Часто казалось, что одним из самых важных скиллов была обратная перемотка ленты после прохождения оптического считывателя.
Во всяком случае, я хотел использовать компьютер, чтобы заниматься физикой. Когда мне было 12, я получил эту книгу:
Я предполагал, что изображение на обложке — это смоделированные молекулы газа, демонстрирующие возрастающую хаотичность и энтропию. Как это часто бывает, несколько лет спустя я обнаружил, что эта картина была на самом деле своего рода подделкой. Но когда мне было 12, я действительно хотел воспроизвести ее с помощью компьютера.
Это было не так-то просто. Позиции молекулы должны были быть действительными числами; нужно было иметь алгоритм столкновений, и так далее. И, чтобы приспособиться под Elliott 903, я в конечном итоге много упростил — и пришел к тому, что оказалось 2D клеточным автоматом.
Ну, а через десять лет после этого я сделал несколько больших открытий в области клеточных автоматов. Но тогда мне не повезло с моим правилом клеточного автомата, и закончил ими заниматься, так ничего и не обнаружив. И в итоге моим самым большим достижением было написание загрузочных перфолент для Elliott 903.
С майларовой лентой есть одна серьезная проблема: она может получать заряд статического электричества и зажевывать отверстия, так что биты будут читаться неправильно. Ну и для моего загрузчика я придумал коды, исправляющие ошибки, и настроил их так, что, если проверка не удавалась, лента в считывающем устройстве останавливалась, и можно было вытащить ее обратно на пару метров, чтобы потом перечитать.
ОК, так что к тому моменту, когда мне было 16, я публиковал статьи по физике и даже стал узнаваем, оставил школу и пошел работать в британскую правительственную лабораторию под названием Лаборатория Резерфорда, которая занималась исследованиями элементарных частиц.
Теперь вы, возможно, вспомните школьный табель, из которого было ясно, что я не очень силен в математике. Все стало немного лучше, когда я начал пользоваться логарифмической линейкой, а затем, в 1972 году, и калькулятором. Но я никогда не любил заниматься математикой в школе, или заниматься математическими вычислениями в целом. И в физике элементарных частиц присутствует много математики, так что эта моя нелюбовь была проблемой.
В лаборатории Резерфорда мне помогли две вещи. Во-первых, настольный компьютер с плоттером, на котором я мог делать очень красивые интерактивные расчеты. И, во-вторых, мэйнфрейм для вещей, которые я программировал на Fortran.
После лаборатории Резерфорда я учился в колледже в Оксфорде. В течение очень короткого времени я понял, что это было ошибкой, однако в те времена не было необходимости ходить на лекции, так что я просто прятался и занимался своими исследованиями по физике. И в основном я проводил время в хорошо кондиционированном подземном в корпусе ядерной физики с терминалами, подключенными к ЭВМ и ARPANET.
И именно тогда — в 1976 году — я впервые начал пользоваться компьютерами для занятий символьной математикой, алгеброй и др. Фейнмановские диаграммы в физике элементарных частиц включают в себя много алгебры. И в 1962, кажется, году три физика встретились в ЦЕРНе и решили попробовать использовать компьютеры для работы в этом направлении. У них было три различных подхода. Один написал систему под названием ASHMEDAI на Fortran. Другой — под влиянием Джона МакКарти из Стэнфорда — систему под названием Reduce на языке Lisp. И еще один написал систему под названием SCHOONSCHIP на CDC 6000 на ассемблере с мнемоникой на голландском языке. Любопытно, что несколько лет спустя один из этих физиков получил Нобелевскую премию. Это был Тини Велтман — тот, кто писал SCHOONSCHIP на ассемблере.
Во всяком случае, в 1976 году мало кто кроме создателей пользовался этими системами. Я начал использовать их все. Однако моей любимицей была совершенно другая система, написанная на Лиспе в MIT в середине 1960-х годов. Это была система под названием Macsyma. Она работала на компьютере Project MAC PDP-10. И, что было важно для меня как для 17-летнего ребенка из Англии, так это то, что я мог добраться до нее на ARPANET.
Там был хост 236. Так что я ввел что-то типа @O 236 и подключился к интерактивной операционной системе. Кто-то взял логин SW. Так что я стал Swolf и начал использовать Macsyma.
Лето 1977 года я провел в Аргоннской национальной лаборатории — там, где в комнате с мэйнфреймом проверяли некоторые идеи физиков.
Потом, в 1978 году, я пошел аспирантом в Калифорнийский технологический институт. Думаю, что к этому моменту я был крупнейшим пользователем компьютерной алгебры в мире. И было так здорово, что я мог так легко и просто вычислять все эти вещи. Я получал огромное удовольствие, используя витиеватые и сложные формулы в своих работах.
Я получил репутацию великого калькулятора. Конечно, она была на 100% незаслуженной, потому что считал не я, а компьютер. Хотя на самом деле (если уж быть справедливым) кое-что оставалось со мной: занимаясь вычислениями так долго, я заработал новый вид интуиции. Я не слишком хорошо брал интегралы сам; но я мог возвращаться назад и забегать вперед с помощью компьютера, интуитивно понимая, что именно стоит попробовать, а затем проводить эксперименты, чтобы увидеть то, что сработало.
Я писал большие куски кода для Macsyma. И где-то в 1979 году я уперся в стену — было необходимо что-то новое. Обратите внимание на зловещую линию «MACSYMA RELOAD» на диаграмме.
Позже, в ноябре 1979 года и вскоре после моего двадцатилетия, я собрал кое-какие бумаги, назвал их диссертацией и получил свою докторскую степень. А еще пару дней спустя я посетил ЦЕРН в Женеве и стал обдумывать мое будущее в физике (как мне тогда казалось). Единственное, в чем я на тот момент был уверен, так это в том, что для моих вычислений мне понадобится что-то помимо Macsyma. Именно тогда я решил построить систему под свои нужды. И я начал создавать спецификацию.
Сначала это должен был быть ALGY — Алгебраический Манипулятор. Однако я быстро понял, что должен делать гораздо больше, чем просто алгебраические манипуляции. Я знал большую часть компьютерных языков общего назначения вроде Algol, Lisp и APL. Но почему-то они не захватывали ту область, в которой я хотел создавать свою систему.
Думаю, я сделал то, о чем узнал из физики: я шел вглубь для того, чтобы найти атомы и понять, что происходит. Я знал кое-что о математической логике и об истории попыток формулировать нечто, используя логику, даже в то время, когда учебник моей матери о философской логике еще не существовал.
История этих попыток формализации очень интересна и связана со многими известными именами: это и Аристотель, и Лейбниц (см. пост на Хабре "Детальный взгляд на наследие Лейбница"), и Фредж, и Пеано, и Гильберт, и Уайтхед, и Рассел, и т. д. Но это уже другой разговор. Однако в 1979 году мысли привели меня к тому, что я придумал структуру, основанную на идее символьных выражений и их преобразований.
То, что стало у меня получаться, я назвал SMP: Программа Символьных Манипуляций, и для работы над ней я стал привлекать людей со всего Калифорнийского Технологического Института. Ричард Фейнман был на встречах, на которых я обсуждал структуру своей программы, и предлагал различные идеи для взаимодействия с системой. Тем временем физический факультет получил VAX 11/780, и после некоторых пререканий на нем запустили Unix. В то же время молодой студент-физик по имени Роб Пайк — создатель языка программирования Go — убедил меня, что я должен написать код для моей системы на «языке будущего»: C.
Я преуспел в написании кода на C, и некоторое время писал в среднем около тысячи строк в день. И к июню 1981 года при участии нескольких ярких личностей первая версия SMP была готова — вместе с большой книгой документации, которую я написал.
Хорошо; вы можете спросить: можем ли мы увидеть SMP? Когда мы работали над SMP, у меня возникла блестящая идея, что мы должны защитить исходный код с помощью шифрования. И, как вы уже догадались, спустя три десятилетия никто не мог вспомнить пароль. До тех пор, пока некоторое время назад не возникла одна ситуация.
Реализуя другую свою идею, я использовал модифицированную версию программы Unix для шифрования, чтобы сделать более безопасное шифрование. В честь 25-й годовщины системы Mathematica пару лет назад мы реализовали краудсорсинговый проект по взлому шифрования. К сожалению, скомпилировать код оказалось нелегким делом — хотя благодаря помощи 15-летнего добровольца мы наконец получили что-то работающее.
И вот он тут: работает внутри виртуальной машины-эмулятора VAX, так что я могу показать (в первый раз за 30 лет) запущенную версию SMP.
SMP была смесью хороших и не очень идей. Например, плохую идею предложил мне Тини Вельтман, автор SCHOONSHIP: он предложил представлять рациональные числа в виде плавающей точки, чтобы можно было пользоваться более быстрыми инструкциями с плавающей точкой на нескольких процессорах. Однако было много и других плохих идей.
Были и интересные идеи — вроде тех, что я назвал «проекции»: по сути, объединение функций и списков. За исключением некоторых неурядиц они были замечательными. И что-то странное происходило почти со всеми векторами с последовательными целыми индексами.
Но в целом SMP работал очень хорошо, и я, конечно, решил, что это очень полезная вещь. Так что теперь следующей проблемой было решить, что делать с ним. Я понял, что для такой работы нужна настоящая команда, а лучший способ заполучить ее — перевести дело на коммерческие рельсы. Однако в то время мне был 21 год, и я ничего не знал о бизнесе.
Тогда я пришел в университетский офис коммерциализации технологий и спросил их, что мне делать. Но оказалось, что они не знали, потому что "в основном профессора не приходят к нам; они открывают свои собственные компании". "Ну," — сказал я, — "я могу это сделать?". И тут же адвокат вытащил какое-то руководство, посмотрел в него и сказал: "тут говорится, что авторские права на материалы принадлежат их создателям, и программное обеспечение тоже, так что да: вы можете делать все, что вы хотите".
Так что я вышел с тем, чтобы попытаться создать собственную компанию. Хотя в итоге это оказалось не так просто, потому что университет вдруг решил, что я не должен был делать то, что я хотел.
Пару лет назад, когда я был в Калифорнийском Технологическом, я столкнулся с 95-летним парнем, который был в то время ректором, и который, наконец, заполнил для меня остальные детали того, что он называл "делом Вольфрама". Это было более странно, чем можно себе представить. Я не буду рассказывать об этом. Достаточно сказать, что история началась с Арнольда Бэкмана, постдока от 1929 года из Калифорнийского Технологического, который заявил о своих правах на pН-метр и основал Beckman Instruments — а затем, в 1980 году, будучи председателем совета попечителей того же института, огорчился из-за того, что технология генетического секвенирования была открыта в Калтехе, и ушел для того, чтобы создать Applied Biosystems.
Созданная мною компания выдержала шторм, пускай даже в конечном итоге я ушел из Калифорнийского технологического института, а тот, в свою очередь, покончил со странной политикой собственности на программное обеспечение, которая долгое время влияла на их усилия по поиску персонала в компьютерной сфере.
Основав Корпорацию Компьютерной Математики, я не сделал ничего грандиозного. Я пригласил человека (который был вдвое старше меня) на место генерального директора. И довольно быстро все стало уходить в сторону от того, что, как я думал, имело смысл.
Одним из моих любимых моментов безумства была идея попасть в бизнес, связанный с оборудованием, и построить станцию для запуска SMP. Ну, в то время ни одна станция не обладала достаточной памятью, а в процессоре Motorola 68000 не поддерживалась виртуальная память. В итоге была состряпана схема, в которой два 68000-x будут вразнобой запускать команду, и, в случае обнаружения одним из них ошибки на странице, он останавливал бы второй для извлечения данных. Я думал, что это безумие. И так случилось, что в Стэнфорде я встретил аспиранта по имени Энди Бехтольшайм, который демонстрировал сеть Стэнфордского университета — SUN — с рабочей станцией в картонной коробке.
Но хуже всего, что это был 1981 год, а значит, господствовала идея о том, что ИИ — в форме экспертных систем — это горячая тема. Таким образом, компания объединилась с другой компанией, которая делала экспертные системы, образовав то, что назвали Inference Corporation (которая в итоге стала NASDAQ). SMP стала дойной коровой, копия которая продавалась для промышленных и государственных научно-исследовательских лабораторий по 40 000$ за штуку. Венчурные капиталисты были убеждены, что будущее за экспертными системами, и вскоре после этого я ушел.
Между тем я стал большим специалистом по вопросам университетской политики интеллектуальной собственности — и в конце концов перешел на работу в Институт перспективных исследований в Принстоне, директор которого очень мило сказал, что, так как после смерти фон Неймана они "отдали его компьютер", то на данный момент они не претендуют на право интеллектуальной собственности.
Я с головой ушел в фундаментальную науку — работал над клеточными автоматами и находил какие-то вещи, которые казались мне интересными. Вот тут, ниже — я с моей рабочей станцией (SUN) и запущенными на ней клеточными автоматами (и да — моллюск выглядит как клеточный автомат):
Я занимался кое-какой консультационной работой — в основном в рамках технологической стратегии; это было очень познавательно для меня — особенно то, как не надо было делать. Я много работал с Thinking Machines Corporation. Думаю, что моим самым важным вкладом стал просмотр фильма WarGames с Дэнни Хиллис, когда на выходе из кинотеатра я сказал ему: "Может, твой компьютер тоже должен быть с лампочками?". Эти лампочки уже не являются необходимостью для компьютеров Connection Machine, но до сих пор играют важную роль в музеях.
В основном я работал в русле фундаментальной науки, однако я решил ("потому что это должно быть просто") реализовать проект создания интерпретатора для С, который мы назвали Ixis. Я нанял несколько молодых людей, одним из которых был Цутому Шимомура, которого я несколько раз спасал из его хакерских проделок. Я сделал ужасную ошибку, когда самостоятельно начал писать скучный код, который никто другой писать не хотел, так что в результате я написал (впрочем, довольно милый) текстовый редактор, но весь проект провалился.
В то время я взаимодействовал с компьютерной индустрией всеми доступными способами. Я помню Натана Мирволда (ставшего потом аспирантом по физике в Принстоне), который приходил ко мне спросить, что делать с разработанной им системой окон. Мое основное предложение заключалось в том, чтобы "продать его в Microsoft". Вскоре после этого Натан стал техническим директором Microsoft.
И вот к 1985 году я много чего сделал для фундаментальной науки, так что я был очень доволен и пытался использовать все это, чтобы начать работать с тем, что я назвал исследованиями сложных систем. В конечном итоге я оказался вовлеченным в организацию под названием Институт Рио-Гранде, который позже стал Институтом Санта-Фе, где побуждал их проводить подобного рода исследования. Однако я не был уверен в их возможностях, и решил открыть свой собственный научно-исследовательский институт.
Так что я побывал во множестве различных университетов — по сути, чтобы получить ставки. Выиграл Университет штата Иллинойс — отчасти потому, что они думали, что это увеличило бы их шансы получить финансирование от Beckman Foundation, как в результате и вышло. Итак, в августе 1986 года я отправился в университет штата Иллинойс, на нивы Шампейн-Урбана в 100 милях к югу от Чикаго.
Думаю, что я неплохо занимался рекрутингом и настраивал всякие штуки для нового Центра Исследований Комплексных Систем. Но по прошествии нескольких недель я начал думать, что все это оказалось большой ошибкой. Я тратил все свое время на управление и попытки сбора денег, а не на занятия наукой.
Поэтому я быстро придумал план Б. Вместо того, чтобы помогать другим людям заниматься наукой, я должен был так все настроить, чтобы самому заниматься наукой настолько эффективно, насколько это было возможно. Это означало две вещи: во-первых, я должен был иметь наилучшие возможные инструменты; и, во-вторых, мне нужны были максимально благоприятные условия для себя.
Я продолжал пользоваться различными инструментами во время своих занятий наукой. Была SMP. Довольно много C. PostScript, и графические библиотеки. И много моего времени, потраченного на собирание всех этих штук вместе. И я решил, что должен попытаться создать единую систему, которая делала бы все, что я хочу, и которая могла бы развиваться бесконечно.
Тем временем персональные компьютеры достигли такого уровня, который позволял запустить на одном из них такую систему, которая была мне необходима. Из моего опыта с SMP я много знал о том, что делать нужно, а что — нет, так что я начал проектировать и строить то, что впоследствии выросло в Mathematica.
В планах у меня было написать документацию, чтобы определить, что именно создавать. Я написал кучу строк кода, например, для сопоставлений с шаблонами,— удивительно большое количество которого до сих пор в находится системе спустя все эти годы. Структура Mathematica была во многом менее радикальной и менее экстремальной, чем SMP. SMP стоял на использовании идеи преобразования символических выражений — а в Mathematica я видел своей целью разработку языка, который эффективно охватит все возможные парадигмы программирования.
Конечно же, Mathematica не называлась так раньше. Сначала это была Omega. Потом были другие имена. Polymath. И Technique. Вот ниже — список имен. Я ужаснулся, когда понял, сколько из них (даже по-настоящему дурацких) были использованы в последующем для называния продуктов.
Тем временем я начал исследовать, как построить компанию на основе системы. Моя оригинальная модель предполагала что-то вроде того, что Adobe делала в то время с PostScript. Так случилось, что первым человеком, проявившим интерес к тому, чем я занимался, стал Стив Джобс, который занимался компанией NeXT.
Говорили мы со Стивом и о названии продукта. Из всех латинских слов, которые я учил в школе, больше всего мне нравилось "Mathematica", но я думал, что такое название слишком длинное и тяжеловесное. Стив же настаивал на том, что это название подходит — и развил целую теорию об использовании общих слов и их романтизации. В конце концов он меня убедил.
Около 18 месяцев понадобилось для создания первой версии Mathematica. Я все еще был официально профессором физики, математики и информатики в Университете штата Иллинойс. Кроме этого, я тратил все свое время на создание софта, а затем и на заключение сделок.
Мы заключили сделку с Джобсом и установили Mathematica на NeXT:
Мы заключили еще множество сделок: с Sun — благодаря Энди Бехтольшайму и Биллу Джой; с Silicon Graphics благодаря Форесту Баскетту. С Ardent — благодаря Гордону Беллу и Кливу Моулеру. С AIX/RT (часть IBM) — при участии Энди Хеллера и Вики Маркштейна.
И в конце концов мы назначили дату выхода: 23 июня 1988.
Параллельно с подготовкой документации для системы я написал книгу под названием Mathematica: система для математической работы на компьютере. Она должна была быть опубликована издательством Addison-Wesley, и это был самый заблаговременный этап релиза. Закончилось все возникновением серьезных сложностей, потому что в книге было полно PostScript графики, и никто не мог получить достаточно высокое разрешение. Так что в конце концов я просто отдал жесткий диск своему другу в Канаде, у которого была фотонаборная компания, и мы с ним пронянчились с его фотонаборной машиной все выходные, после чего я прилетел в аэропорт Логан в Бостоне и передал готовый фильм сотруднику Addison-Wesley.
Мы решили дать объявление о Mathematica в Силиконовой долине — и, в частности, в месте под название Techmart, Санта-Клара. В то время Mathematica не могла работать под MS-DOS из-за ограничений памяти (640К). Таким образом, единственная клиентская версия была для Mac. И за день до анонса мы складывали диски в коробки для доставки их в ComputerWare — магазин программного обеспечения в Пало-Альто.
Сделать объявление было хорошей идеей. Благодаря ему мы познакомились со Стивом Джобсом, хотя он и был тогда непубличным человеком. Ларри Теслер из компании Apple сам сделал демо. Джон Гейдж из Sun придумал, чтобы все выступающие подписали книгу:
Так была запущена система Mathematica. Книга о Mathematica стала бестселлером в книжных магазинах — и благодаря этому люди начали понимать, как использовать систему Mathematica. Мне было очень приятно наблюдать, что система востребована для всех областей знаний и для каждого возраста — и когда люди, которые никогда раньше не пользовались компьютерами, начинали вычислять что-то самостоятельно.
Было забавно просматривать регистрационные карточки. Множество интересных и известных имен. Были иногда забавные совпадения. Например, когда я только что увидел статью про Роджера Пенроуза и его новую книгу в журнале Time с заголовком "Those Computers Are Dummies", а потом появилась регистрационная карточка для Mathematica на имя Роджера.
В рамках развития Mathematica мы собрали все виды экзотических машин от всех компьютерных компаний. Иногда это было на руку — например, когда червь Морриса проник через интернет, а на нашей диковинной шлюзовой машине фирмы Sony была японская ОС, которую червь не брал.
Были еще разные истории с подключениями. Мои любимые связаны с Cray-2. Тогда с большим трудом мы скомпилировали Mathematica и были готовы к первому вычислению. И кто-то ввел 2 + 2. И — я не шучу — в результате вышло «5». Думаю, что проблема была с целыми числами и плавающей точкой.
Вот прайс-лист 1990 года — небольшая прогулка по переулкам компьютерной памяти:
Выход NeXT в комплекте с Mathematica дал новый толчок для развития. Я думаю, что Стив Джобс сделал хорошее дело, потому что многие и совершенно разные люди получили компьютеры NeXT для запуска Mathematica. В группе Теории в ЦЕРНе администратором системы был Тим Бернерс-Ли, который решил провести небольшой сетевой эксперимент на этих машинах.
Потом пару лет компания росла и развивалась, и у нас было где-то 150 человек. И я подумал: я построил все это, потому что хотел по-своему заниматься наукой, так что не пора ли начать? Кроме того, я вводил новые идеи слишком быстро; я волновался, что компания может просто развалиться. В любом случае, я решил взять творческий отпуск — на полгода или год — чтобы заняться фундаментальной наукой и написать об этом книгу.
Так что я переехал из Иллинойса в Окланд Хиллз — прямо перед большим пожаром, который едва не уничтожил мой дом. И я стал удаленно управлять компанией, используя Mathematica для занятий наукой. Хорошая новость была в том, что я принялся изучать множество наук. Это был момент, когда как будто впервые смотришь на небо через телескоп — только теперь это была вычислительная вселенная возможных программ.
Это было действительно здорово. Но я просто не мог остановиться, потому что продолжал обнаруживать все больше и больше разных вещей. Так прошло больше 10 лет. Я действительно был отшельником, живущим в Чикаго и доступным только виртуально… Хотя за это время родились трое моих старших детей, так что вокруг все же были люди!
Я думал, что, может быть, в компании случился переворот — но нет. Компания продолжала стабильно расти. Мы продолжали реализовывать новые проекты.
Вот наш первый сайт, запущенный 7 октября 1994 года:
Он появился вскоре после того, что мы начали поддерживать вычисления в Интернете:
В 1996 году я сделал перерыв в своих занятиях для завершения новой большой версии Mathematica. Еще в 1988 г. многие люди пользовались Mathematica посредством командной строки. На самом деле, она до сих пор есть. 1989^1989 — основное вычисление, которым я пользуюсь с 1989 года, чтобы проверить скорость на новой машине. Базовый Raspberry Pi хорошо передает ощущение того, как все было в самом начале.
Итак, в 1988 году мы создали документы (включающие в себя не только текст, но и графику, звуки, расчеты) для Mac и для NeXT, и назвали их блокнотами.
Наверное, мне стоит рассказать что-то о разработке программного обеспечения в системе Mathematica. Основной код был написан на C (объектно-ориентированной версии C, которую мы сами разрабатывали, потому что C ++ к 1988 году не был достаточно эффективен). Даже в самом начале часть кода была написана на языке высшего уровня Mathematica, который теперь называется Wolfram Language — за эти годы все больше кода писалось таким образом.
Ну, в начале было очень сложно получить такой фронтэнд, который можно было бы запускать на разных машинах. И мы завели базу из различных видов кода — для Mac, NeXT, Microsoft Windows и X Windows. А в 1996 году мы слили их вместе. И в течение почти 20 лет код был славно слит воедино; а теперь мы снова получили отдельные кодовые базы для браузеров и мобильных, так что история повторяется.
Моя книга Mathematica стала совсем огромной из-за всего того, что мы в нее включали.
Было у нас и несколько «носителей рекламы», которые мы назвали MathMobiles, оформленных как движущиеся рекламные щиты.
Mathematica была везде и использовалась для самых разных задач. И, конечно, иногда происходили необычные ситуации. Например, в 1997 году у Майка Фоэла на космической станции Мир появился компьютер с системой Mathematica. Правда, потом произошел несчастный случай: произошла разгерметизация в той части станции, где остался компьютер. Пока станция кувыркалась, Майк пытался что-то отладить — он хотел сделать это с помощью Mathematica. В итоге он получил новую копию во время следующей поставки и ее установили на российском ПК.
Однако возникла проблема. Наша система DRM немедленно сообщила: "Это русский PC; вы не можете запустить на нем Mathematica с лицензией США!". Мы тогда получили самый необычный звонок в сервисный центр: "Пользователь находится на вращающейся космической станции". К счастью, после простой смены пароля Майк решил уравнения, и космическая станция была стабилизирована.
В 2002 году, после десяти лет работы, я, наконец, закончил свой научный проект и большую книгу:
Во время моего "десятилетия науки" компания стабильно росла, и мы создали потрясающую команду. Однако благодаря тому, что я узнал во время своего периода затворничества, я понял, что компания могла работать более эффективно. Мне было приятно вернуться, чтобы снова сосредоточиться на работе. И я довольно быстро понял, что структуру, которую мы построили, можно применить ко многим другим вещам.
Математика стала первым серьезным приложением системы Mathematica, однако созданный мною символьный язык носил гораздо более общий характер. Было интересно посмотреть, что мы можем с этим сделать. В 2006 году появилась возможность символически представлять пользовательские интерфейсы, а также создавать их (в вычислительном отношении). Это привело к созданию CDF (формата вычисляемых документов), а также проекта Wolfram Demonstrations.
Мы начали экспериментировать. Некоторые эксперименты удались. Некоторые ушли не в ту степь. Мы хотели сделать плакат со всеми фактами, которые мы знаем о математических функциях. Сначала это должен был быть небольшой плакат, однако вскоре его длина составляла 36 футов, так что в конце концов он превратился в The Wolfram Functions Site с 300,000+ формул:
В то время все повально увлекались рингтонами на мобильные телефоны, и я хотел создать собственный сигнал вызова. Мы придумали, как использовать клеточные автоматы, чтобы составлять бесконечно разнообразные мелодии, и выложили их в интернете. Это был интересный опыт ИИ-творчества, и людям нравилась эта музыка. Но после шестимесячной возни с телефонными операторами мы не продали ни одного рингтона.
Если вы перейдете на этот сайт, то увидите, что он не работает с текущими версиями браузера. Это будет исправлено в ближайшее время. Просто сервер webMathematica работал бесконтрольно в течение десяти лет, и теперь никто не знает, как он работает…
Mathematica в течение многих лет была единственным продуктом компании, и теперь мы собираемся не только добавлять к ней новые возможности, но и придумывать всевозможные другие вещи.
Я уже говорил, что, когда я был ребенком, меня интересовало, как "сделать знания вычислимыми": взять имеющиеся знания нашей цивилизации и построить что-то, что может автоматически вычислять ответы на вопросы. В течение долгого времени я предполагал, что для этого потребовалось бы сделать какой-то мозгоподобный ИИ. Так что в 1980 году я работал с нейронными сетями, но не смог сделать с ними ничего интересного. И каждые несколько лет после этого я понемногу обдумывал проблему вычислимости знаний.
Однако позже я обнаружил закономерность, которую назвал принципом вычислительной эквивалентности. В соответствии с ним четкой границы между "интеллектуальным" и "просто вычислительным" нет. В результате я начал думать, что, возможно, мне не нужно создавать "мозг", чтобы решить проблему вычислимых знаний.
В то же самое время мой младший сын, которому было тогда лет шесть, начал немного пользоваться Mathematica. И он спросил меня: "Почему я не могу просто сказать системе, что я хочу, на простом английском языке?" Я начал объяснять, насколько это сложно. Но он продолжал: "существует не так много разных способов сказать какую-либо конкретную вещь" и т. д. И это заставило меня задуматься, в частности, об использовании построенной мной науки для решения проблемы понимания естественного языка.
В то же время я начал проект по работе с большими данными всех видов. Было очень интересно приходить в большую библиотеку и выяснять, что необходимо для того, чтобы сделать все это вычислимым. Алан Тьюринг делал некоторые оценки подобные этой — впрочем, они были несколько сложными. В любом случае, у меня появились эксперты по всем темам. И я начал создавать технологию и систему управления, чтобы сделать данные вычислимыми.
Было не совсем понятно, как это все будет работать, и даже из моей управленческой команды многие были настроены скептически. Все считали, что это будет еще один WolframTones. Хорошая новость была в том, что основной наш бизнес был сильным. Я никогда не сделал бы компанию публичной, и у меня не было никаких инвесторов кроме меня самого. Так что я не отвечал ни перед кем. Я мог просто делать Wolfram|Alpha — так, как я осуществлял все долгосрочные проекты на протяжении всей истории нашей компании.
И, несмотря на все опасения, Wolfram|Alpha сработала. Должен сказать, что, когда демо-версия была наконец готова, мои менеджеры пришли в полный восторг от того, что получилось.
Дело усложняет тот факт, что Wolfram|Alpha является (как и Mathematica и Wolfram Language) бесконечным проектом. Однако мы достигли той точки, после которой мы не могли дальше развиваться без общения с реальными пользователями на реальном естественном языке.
Чтобы идти в реальную жизнь, мы выбрали 15 мая 2009 года. Однако быстро возникла проблема: мы не имели ни малейшего представления о том, как высоко взлетит трафик. И тогда мы не могли использовать Amazon или еще что-нибудь: чтобы увеличить производительность, мы должны были делать параллельные вычисления на голом железе.
Майкл Делл предоставил нам достаточное количество компьютеров. Я стал беспокоиться после разговоров с некоторыми людьми о том, что у них были услуги, которые загнулись еще на старте. Поэтому я решил использовать хитрый прием. Я решил, что мы запустим интернет-ТВ в режиме реального времени, так что если произойдет что-то ужасное, то, по крайней мере, люди будут знать, что происходит, и, возможно, повеселятся немного. Так что я связался с Джастином Каном, который делал тогда justin.tv (и первую компанию которого я был не в состоянии проинвестировать на первом же YCombinator), — и мы договорились начать.
Строить наш «центр управления полетами» было весело, и еще мы сделали несколько хороших приборных панелей, многими из которых мы фактически пользуемся до сих пор. В день запуска я был обеспокоен тем, что это будет самый скучный телевизор в мире: в назначенный час я просто щелкну мышью и мы будем показаны вживую, и это будет конец.
Сразу скажу, что такого не было. Вы знаете, я никогда не смотрел ту трансляцию. Я не знаю, сколько ужасных вещей они фиксируют — особенно с проблемами конфигурации сети, возникающими в последнюю минуту.
Но, пожалуй, самые запоминающиеся вещи были связаны с погодой. Мы находились в центральной части штата Иллинойс. А примерно за час до нашего грандиозного старта пришел отчет о погоде: гигантский торнадо направлялся прямо к нам! Вы можете увидеть всплеск скорости ветра с помощью Wolfram|Alpha (исторические данные о погоде):
Но, к счастью, торнадо прошло мимо. И, конечно, в 9:33:50 вечера по центральному времени 15 мая 2009 года я нажал на кнопку, и началась трансляция запуска Wolfram|Alpha. Многие люди начали пользоваться ею. Некоторые люди даже не поняли, что это не поисковая система.
Затем начали поступать отчеты об ошибках. А вот так мы делали в самом начале, когда что-то не получалось:
И в одном из сообщений об ошибке кто-то сказал: «откуда вы узнали, что меня зовут Дэйв?!". В первую же ночь к нам поступили все виды сообщений об ошибках — вот пара из них:
Не только люди начали использовать Wolfram|Alpha; компании тоже. С помощью Билла Гейтса из Microsoft Wolfram|Alpha подключили к Bing. И небольшая компания под названием Siri подключила его к своему приложению. Спустя некоторое время компания Apple купила Siri, и при участии Стива Джобса (который был тогда уже очень болен) Wolfram|Alpha в конечном итоге стала подпитывать часть знаний Siri.
Итак, мы постепенно переходим к нашему времени. Наиболее значимым проектом на данный момент является Wolfram Language. На самом деле, это не такая уж и современная вещь. Еще в начале 1990-х годов я собирался вытащить языковой компонент системы Mathematica — мы думали называть его M Language. И у нас даже были люди, работающие на нем: например, Сергей Брин, который в 1993 году был стажером. Но тогда мы не совсем поняли, как его распространять.
Однако идея ждала своего часа. До тех пор, пока у нас не появилась Wolfram|Alpha, и облака, и так далее. Надо сказать, что мне надоели люди, которые думают, что у системы Mathematica сугубо математическое предназначение. Она растет и растет с каждой версией:
И хотя мы продолжали укреплять математическую составляющую, в 90% случаев математики не было вообще. Наш подход можно описать как "давайте реализовывать все подряд", и он неплохо сработал. Мы действительно были в ударе, когда изобретали все эти мета-алгоритмы и системы автоматизации. Я понял, что в сочетании с Wolfram|Alpha у нас получился язык, основанный на знаниях о вычислениях и о мире в целом.
Было и еще кое-что — понимание, что наша парадигма программирования может быть использована не только для вычислений, но и для развертывания — особенно в облаке.
Mathematica широко использовалась в НИОКР и в области образования, а с некоторыми исключениями и в финансовой отрасли. Одна из идей Wolfram Language (и нашего облака тоже) — сделать так, чтобы основанное на знаниях программирование можно было применять везде — от суперкомпьютеров до встраиваемых устройств. Об этом еще так много можно сказать…
Мы сделали еще множество других вещей. Здесь, на графике, показан рост системы Mathematica за первые 10000 дней:
С нашей технологией мы делали множество разных вещей. Я не знаю, почему у меня здесь эта картинка, но я в любом случае должен ее показать: она была на памятной футболке нашего проекта идентификации изображений, которым мы занимались год назад. В нашем идентификаторе изображений этот зверь определялся как муравьед, потому что мы потеряли изображенного здесь трубкозуба:
И только в последние несколько недель мы открыли Wolfram Open Cloud, чтобы позволить всем желающим пользоваться Wolfram Language в интернете — это событие стало кульминацией 30 или даже 40 лет работы.
Почти 30 лет я упорно трудился, чтобы Wolfram Language был хорошо продуман — и вот он становится все больше, а различные его части все лучше работают вместе. Должен сказать — здорово видеть, что все вложенные в него усилия окупились.
Это очень классно. У нас совсем другой вид языка, пригодный для общения не только о вычислениях, но и о мире с компьютерами и с людьми. Вы можете писать крошечные программы. Например, Tweet-a-Program:
Или же вы можете писать большие программы — такие, как Wolfram|Alpha, состоящие из 15 миллионов строк кода Wolfram Language.
Очень приятно видеть, что промышленные компании начинают основывать свои технологии на Wolfram Language. Думаю, что с помощью Wolfram Language можно учить детей вычислительному мышлению. Недавно я даже написал об этом книгу:
Я не могу представить, как все сложилось бы, если бы у меня, 12-летнего, первым компьютерным языком был Wolfram Language, а не машинный код Elliott 903. Думаю, что на многие мои вопросы вроде ИИ был бы уже дан ответ.
Но на самом деле я очень счастлив, что жил именно в то время и стал частью этих десятилетий эволюции невероятно важных идей, а также открыл некоторые вещи, которые помогли их становлению и развитию.
Запись выступления Стивена Вольфрама (на англ. языке):
Комментарии (16)
napa3um
29.08.2016 13:17+2Похоже на наработку текста буклетов и листовок, которые будут раздавать у входа в мавзолей, в котором похоронят автора. (Не умаляя заслуг автора и любопытности освещаемых в статье исторических фактов не удержался от претензий к формату повествования и его чрезмерно самолюбовательному мотиву.)
masai
29.08.2016 16:14+2Я тут заметил, что Стивен в своих статьях вообще не упоминает своего брата, который тоже довольно много делает для Wolfram Research.
«откуда вы узнали, что меня зовут Дэйв?!»
Супер! :)
OsipovRoman
29.08.2016 16:24+2Просто его брат занимается лишь техническим продвижением продуктов и отвечает за европейский офис.
Его собственное начинание — ComputerBasedMath.masai
29.08.2016 17:13+2Что-то я с ответом промазал, он ниже.
А по поводу брата — тоже интересный дядька. Вот выступление на TED как раз по образовательному проекту, если кто не видел.
upsilon
31.08.2016 12:18>Или же вы можете писать большие программы — такие, как Wolfram|Alpha, состоящие из 15 миллионов строк кода Wolfram Language.
А я так и не понял, как делать большие программы на WL. Полноценной IDE нет. Чтобы изменить название переменной, например, приходится использовать Ctrl+F по документу.
Как организовывать блокноты, блоки внутри блокнотов -лично мне непонятно. А потом — как объединить эти блокноты в одну программу?OsipovRoman
31.08.2016 12:20Для профессиональной разработки кода существует специальная официальная IDE — Wolfram Workbench.
Также есть плагин для IntelliJ IDEA для разработки на Wolfram Language.upsilon
31.08.2016 13:11Спасибо за ответ, плагин для IDEA попробую.
А вот за Workbench доплачивать совсем не хочется, Mathematica и так дорого стоит…
А может быть есть статьи по поводу того, как стоит организовывать файлы?
OsipovRoman
31.08.2016 13:18Workbench идет в комплекте к Mathematica при покупке по premier service.
А может быть есть статьи по поводу того, как стоит организовывать файлы?
Вы имеете ввиду внутреннюю организацию пакетов (Mathematica Packages) или рабочих файлов (Mathematica Notebooks)?
Vjatcheslav3345
У Вольфрама был весьма успешный старт в жизни, хорошие, достаточно состоятельные родители. Всю жизнь он занимался тем, что любил.
Поэтому его жизнь даже мало напоминает и продолжение историй Джоан Роулинг (Поттер вырос и стал преподавателем в небезызвестной школе), как ни крути (там, в основе всего, лежит трагедия) — его биография просто хорошая находка для семейного чтения в семье академиков — в назидание дитю в духе: вооот вырастешь и будешь ученым (а не "дворникогастарбайтером").
Но, лично мне куда интереснее, скажем истории, где человек пробивался к высокой мечте сквозь жизненные шторма, например, биография Цандера.
Даже история Ады Лавлейс, пожалуй, интереснее.
dmrt
Абсолютно с Вами согласен, только почему Вы написали в пример Цандера, у которого отец был врачем, доктором медицины? Я не говорю уж об отце Ады.
А вот попробовали бы они все добиться чего-нибудь, если бы родители были без высшего образования и вообще не далекого ума люди, мягко говоря и родился в провинциальном маленьком городке.
Дети всегда смотрят как бы поступил отец на его месте и если в этом случае, ты понимаешь, что отец твой просто сбежал бы от проблем и ты кричишь ему в след: «ах ты ж, куда ж ты побежал на полусогнутых?», вот тогда очень сложно пробиться в жизни и добиться реальных успехов.
OsipovRoman
Ада Лавлейс (Байрон) также была не бедной девушкой. Не понимаю я таких рассуждений. Про нее можно было бы написать (относительно того времени), что если бы она была не из богатой и известной семьи, то ей как раз в то время, когда женщинам и так было крайне тяжело пробиться куда-то, вообще не пробилась бы, если бы родилась в семье какого-нибудь рабочего завода. Она даже образования бы банально не получила.
Хорошие родители и семья являются просто хорошим стартом, которым многие вообще не пользуются. Умалять достижения человека только потому, что его семья лучше чем у других — это как-то очень сомнительно, мягко скажем. К тому же вы забываете, что за кажущимся благополучием, могут скрываться очень большие проблемы.
dmrt
Может быть вы и правы.
Мать Ады хотела, чтобы она не занималсь математикой, а делала то, что она велит, это тоже боль.
С другой стороны, человеку из простейшей семью вообще ничего не светило, без шансов, за очень редким исключением.
OsipovRoman
Тем не менее, этот небольшой диалог заставил меня задуматься над тем, чтобы получить какую-то статистику о родителях и детях. Если что-то удастся получить на эту тему за не очень большое время, напишу в эту ветку обсуждения.
dmrt
Я тоже думал на хабре провести опрос (сейчас опросник вроде нельзя запостить?) какое образование у их родителей?
Благодаря или вопреки родительской воли они счастливы или несчастливы.
OsipovRoman
Я могу запостить опрос к этот статье и сейчас, но, к сожалению, поток людей уже небольшой. Возможно, на основе того небольшого анализа, что я сейчас готовлю стоит написать маленький пост и добавить туда такой опрос.