Дуглас Энгельбарт: «The Mother of All Demos». Часть 1



    9 декабря 1968 года в Сан-Франциско Дуглас Энгельбарт провел легендарную демонстрацию. Энгельбарт продемонстрировал несколько экспериментальных технологий, которые впоследствии стали общеупотребительными, в том числе первую компьютерную мышь, интерактивный текст, гипертекст, электронную почту, технологию видеоконференции.

    Наряду с мыслями Вэнивара Буша (Как мы можем мыслить /As We May Think) и Джозефа «Lick» Ликлайдера («Интергалактическая компьютерная сеть» и «Симбиоз человека и компьютера»), мысли Энгельбарта легли в основу современных информационных технологий и интерфейсов.

    Знать первоисточники — важно.
    Пускай теперь будет перевод на русский язык.


    Под катом транскрипт первых 15 минут (из 100). За перевод спасибо Щекотовой Яне.
    (Кто готов помочь с переводом дальнейших кусков, пишите в личку.)




    00.01.41
    Надеюсь, вы не будете возражать против такой довольно необычной обстановки и того, что я продолжаю сидеть, пока меня представляют, а также вас не смутит тот факт, что я буду главным образом доносить свои мысли до вас через это устройство до конца шоу. Следует отметить, что мне помогает целая куча людей, начиная с этой студии и заканчивая Менло-Парк, где примерно в 30 милях к югу отсюда расположена штаб-квартира исследовательского центра Стенфорда. И, как мне кажется, если каждый из нас хорошо выполнит свою работу, то из этого всего выйдет нечто очень интересное [Смех]



    Исследовательскую программу, о которой я вам хочу рассказать, кратко можно охарактеризовать следующими словами: если вам в офисе, как работнику умственного труда, предоставили экран вместе с компьютером, который работал для вас весь день и мгновенно регулировал, реагировал… [Смех]

    00.02.32
    Реагировал мгновенно на любое ваше действие, то сколько пользы можно было бы из этого извлечь? В сущности, это описывает то, что мы исследуем вот уже много лет в рамках так называемых исследований по усилению человеческого интеллекта в исследовательском институте Стенфорда. А сейчас весь разговор будет посвящен попыткам описать и представить вам суть данной программы. Но, к несчастью или к счастью, результаты этой программы, ее технология хорошо подходят для ее нетривиального представления, поэтому мы будем очень стараться, чтобы больше показывать, нежели рассказывать.

    00.03.10
    А вот на экране уже видна самая важная в технологическом плане часть наших разработок, и я не буду вдаваться в подробности по поводу данной программы, а просто пробегусь немного по тем действиям, которые она предоставляет. Итак, в офисе у меня есть такая консоль, и еще 12 штук подобных находятся в отделе технического обеспечения, и теперь мы пытаемся на них выполнять свою каждодневную работу. Вот поэтому я могу просто сидеть на месте и находить что мне нужно. «Дайте мне чистый лист бумаги», — именно с этого я начинаю многие из своих проектов. Таким образом, что касается моей системы, то это уже хорошее начало. А пока я сижу, рассмотрим ситуацию, когда, предположим, мне захотелось загрузить данные.
    [Звук нажатия клавиш]

    Прошу прощения!
    [Звук нажатия клавиш]

    00.04.00
    Итак, я ввожу объект под названием предложение, которое состоит из других объектов, называемых словами.
    [Звук нажатия клавиш]

    И если я допущу ошибку, я могу вернуться и произвести замену
    [Звук нажатия клавиш]



    Итак, у меня есть предложение с несколькими объектами словами. Я могу производить некоторые операции над ними и скопировать слово, т.к. это слово подходит для копирования и записи результата аккурат после него. По сути, можно аналогично поступить и с парой слов, и я просто выполню эту операцию несколько раз. Теперь принцип понятен. Есть еще один объект – текст. Допустим, мне бы хотелось скопировать этот объект вон туда. Отметьте нужную точку, и он скопируется. Вот так и появляются данные на моем «чистом листе бумаги». Я бы сказал, что все это гораздо существеннее, чем выглядит. Итак, я бы хотел создать файл. Я указываю машине: «выведи файл», а она в ответ: «необходимо задать имя файла». Я указываю имя, пусть это будет «samplefile».
    [Звук нажатия клавиш]

    00.05.00
    Я пишу: «выведи файл». Появляется сообщение о том, что команда выполнена и затем происходит автоматический возврат управления с выводом изначального предложения или заголовка с указанием имени файла, а также даты, времени и имени того, кто его создал. После этого я всегда могу задать команду наподобие запроса статуса файла, и машина сообщит мне нужную информацию. Сам файл совсем небольшой, владельцем являюсь я, последняя запись была сделана мной совсем недавно. Это довольно интересные сведения. Таким образом, мы увидели, как можно начать работу с «чистого листа» и перейти к работе с файлом. Данный файл состоит из одного предложения с несколькими словами. Давайте создадим еще предложений. Я скажу машине «скопируй это предложение» и, внимание, у меня появляется еще одно, скопируем его – и еще одно. Я даже могу скопировать группу предложений. Можно указать «вот здесь, скопируй группу отсюда досюда» и все скопируется куда надо. При взгляде на все это видно, что, хм… текст уходит за экран.



    00.05.54
    Было бы интересно посмотреть на результат, если бы я мог попросить компьютер свернуть все это. Возможно, показывая только первые строчки каждого из этих предложений. Хорошо, выполни это, пожалуйста. И компьютер выполнил. И это только один подход, которым мы будем использовать снова и снова по ходу презентации, то, что мы называем view control (управление представлением), где не важно, какую часть файла мы смотрим. Мы можем указать любое количество из огромного числа параметров для построения отображения в том месте файла, которое нас в данный момент интересует больше всего. А здесь мы быстро пробежимся. И вот у меня такой результат. Но я не хочу, чтобы все предложения обладали именем one, поэтому я просто заменю слово вот здесь … на two, а это пусть будет three.
    [Звук нажатия клавиш и прерывистый звуковой сигнал]

    Просто чтобы не считать их каждый раз. Итак, вот у меня предложения one, two, three и four. Если мне захочется, чтобы все это выглядело красивее, то можно, хм…
    [Звук нажатия клавиш]

    Можно тут навести небольшой порядок, что я делаю всегда. Ой…
    [Звук нажатия клавиш]

    00.07.03
    Вы же понимаете, что я еще не разогрелся.
    [Смех]

    Надеюсь, вы понимаете.
    [Смех]
    [Звук нажатия клавиш]

    Хорошо. Я тут все выровняю и приведу к нужному виду. Ну и можно сказать пару слов о невидимых строках, например. Я не знаю, отступы это или символы вот тут, но при желании можно поместить эту невидимую … заменить эту невидимую строку всего лишь одним символом. Не этим, а вот этим. Ставим пробел, и все будет выполнено. И вот у меня файлы один, два, три, четыре, пять, шесть, а я бы их так и назвал, но обычно это дело муторное, и поэтому я сделаю запрос на их нумерацию. И вот мы получаем результат в виде списка номеров, поставленных в соответствие каждому предложению. Я также могу все раскрыть или убрать нумерацию по желанию, и потом их можно будет вывести.



    00.07.52
    Таким образом, мы познакомились с довольно быстрыми способами работы с объектами предложениями внутри файла, а также создавать сам файл. Можно удалить этот файл или значительно подпортить его содержимое. Я имел в виду, что, вот хочу я удалить это слово, но вместо этого случайно нажимаю на этом объекте. А теперь смотрите, что получается. Происходит полная замена, и все удаляется. Такое порой происходит, и тогда выход из ситуации следующий: «Ладно, я загружу этот файл заново». Он появится на экране прямо в том виде, в каком я последний раз его сохранил, с указанием даты записи. Но, к сожалению, я сохранил не все. Пожалуй, я завершу разбор этого примера. Давайте перейдем к файлу, который я подготовил сразу после того, как мне позвонила жена по пути домой и попросила сходить в магазин. Как только она это произнесла, я подготовил…
    [Звук нажатия клавиш]

    Свою систему…
    [Долгий звуковой сигнал]

    00.08.47
    И создал список покупок… В нем довольно много пунктов, также можно убедиться, что да, они пронумерованы, а еще можно просмотреть нижнюю часть списка, поставив курсор на пункт 10 и перенести вверх. А можно поставить на пункт 23, где также много всего. Как только я это осознал, я тут же вспомнил, как она говорила про то, чтобы я ей перезвонил, как только соберусь пойти в магазин, и она продиктует мне остальные пункты. Давайте вернемся к началу списка, где проведем небольшую реорганизацию.



    00.09.21
    Ну, допустим, наиболее вероятно, что после бананов я возьму морковь. И так, морковь у нас идет сразу после бананов. А аспирин сюда вообще не вписывается. Полагаю, что аспирин идет после бумажных полотенец. Вот так, довольно скоро мне стало бы… стало бы сложно сохранять такую последовательность. Поэтому позвольте данный список систематизировать
    [Звук нажатия клавиш]

    Введем просто категорию «продукты»
    [Звуковой сигнал]

    Ладно, попробую еще раз
    [Звук нажатия клавиш]

    Я ввел предложение… Эй, тут все правильно.
    [Звуковой сигнал]

    Подозреваю, что тут что-то не так и, я бы позвонил программисту или работнику по техническому обеспечению и сказал бы: «У меня получилось»
    [Смех]

    00.10.20
    Продукты. Что-то я действительно к такому еще не готов. Итак, я укажу какие именно продукты, т.е. разобью пункты на категории. Давайте сменим способ представления и переместим пункт «морковь» в раздел «продукты», где также введем подкатегории. Вот она и переместилась…
    [Звуковой сигнал]

    Вот так. У меня… Эй, вот оно что.
    [Долгий звуковой сигнал]

    00.10.48
    Так, в продуктах у меня находится морковь, и туда же я перенесу бананы.
    [Долгий звуковой сигнал]

    На самом деле, можно было бы и всю группу переместить, например, апельсины и яблоки.
    [Долгий звуковой сигнал]

    00.11.00
    Так я могу и дальше группировать пункты и, если посмотреть на нумерацию, можно увидеть, что… эти элементы образуют подмножество. Понятно, что тут можно много чего напридумывать и ввести еще один пункт…
    [Звук нажатия клавиш]

    Вот…
    [Звук нажатия клавиш]

    Что я только что придумал – очищенные бананы. Но мне…
    [Смех]

    Нужно перейти туда
    [Смех]

    И посмотреть. Вот еще часть возможностей view control (управления представлением) помимо тех, что мы уже показали, позволяющих отображать или убирать нумерацию, а также показывать или нет различные уровни вложенности. Например, мне нужен только уровень С2, или только один уровень, самый нижний, что довольно удобно для изучения. Или можно сделать вот что. Например, когда мне нужно поместить пункт «продукты» наверх. А теперь раскроем один уровень ниже и отображаться будет только он. А потом другой уровень, если захочу. А потом без нумерации. Все эти телодвижения осуществляются с помощью команды перехода к идентификаторам jump to identity…
    [Звуковой сигнал]

    00.12.00
    Тут много разных способов для создания представлений. И это одна из основных функций нашего инструмента. Предположим, я некоторое время над этим поработал, и затем позвонил своей жене, чтобы узнать остальную часть списка. В итоге я бы пришел…
    [Звук нажатия клавиш и звуковой сигнал]

    К…
    [Звуковой сигнал]

    Полноценной структуре и… Бог ты мой, тут была бы куча вещей, и продовольственный магазин, и даже обувной магазин, в который мне придется зайти. Давайте взглянем, что мне понадобится в магазине.
    [Звуковой сигнал]

    Полный набор: продукты, консервы, крупы. Так, а что в крупах? А, крупы, хлеб, лапша. ОК, мне нравится. Вернемся к исходному виду, если понадобится нумерация. Если я захочу раскрыть все уровни, увидеть другую часть или любые другие строчки, то тут много разных способов. Но есть одна интересная вещь, о которой я вам еще не рассказал. Она заключается в том, что, когда нумерация включена, то можно выполнить команду jump to identity и, поставив курсор в нужное место, увидеть его в развернутом виде или вернуться назад с помощью команды jump to return.

    00.13.07
    Можно выполнить команду перехода по имени и ввести 2А4, и машина выполнит ее. Также можно будет вернуться. Таким образом, я могу осуществлять переход в соответствии с нумерацией, просто указывая на номер, или, при желании, написать его.
    [Звук нажатия клавиш]

    Написать в этом месте и выполнить команду jump to name или просто поставив на введенный номер курсор, и машина перейдет на уровень А. И это морковь.
    [Звук нажатия клавиш]

    Пусть будет морковь, 2А4. Я задал имя и могу по нему перейти, а можно задать имена… Нет, не это…
    [Звук нажатия клавиш]

    Я могу запросить переход к первому элементу, которого тут сейчас не видно. Указать номер 1.
    [Звуковой сигнал]

    Разные представления позволяют легко перемещаться и создавать перекрестные ссылки. Оказывается, при необходимости можно также создавать и перекрестные ссылки на места, для которых я задал метку (label) или имя, как в программировании. Назовем это alpha.
    [Звук нажатия клавиш и звуковой сигнал]

    00.14.15
    Ага… Введем команду перехода по имени jump to name и я напечатаю «альфа». Думаю, я допустил ошибку, пока печатал. И вот захотелось мне полностью все переделать.
    [Звук нажатия клавиш и звуковой сигнал]

    Итак…
    [Звук нажатия клавиш и звуковой сигнал]

    Укажем имя «alpha».
    [Звук нажатия клавиш и звуковой сигнал]

    И я перешел к некоторой области с именем alpha.
    [Звук нажатия клавиш и звуковой сигнал]

    Хорошо, можно задавать имена и указывать их.
    [Звук нажатия клавиш и звуковой сигнал]

    Как такие ссылки, так и переходы по имени или позиционирование курсора в соответствующей области, и, внимание, результаты вывода формировались по запросу к области с именем alpha. Поэтому я могу задавать им имена и, при желании…
    [Звук нажатия клавиш и звуковой сигнал]

    Можно отображать имена или скрывать их, в зависимости от этого мы и видим то, что сейчас на экране, когда имена скрыты.
    [Звук нажатия клавиш и звуковой сигнал]



    00.15.22
    Теперь посмотрим, что тут можно еще сделать. Есть структурированный файл, если мне нужно посмотреть, что внутри, можно раскрыть уровень ниже
    [Звук нажатия клавиш и звуковой сигнал]

    В иерархии, ознакомиться с содержимым и вернуться назад.
    [Звук нажатия клавиш и звуковой сигнал]

    Но вот что еще можно сделать. Как я говорил, тут есть маршрут.
    [Долгий звуковой сигнал и звук нажатия клавиш]

    Боюсь, тут мне понадобится ракурс пошире.
    [Смех]



    Вот, что у меня получилось изобразить с помощь инструмента для рисования. Это упрощенная карта. Если начать от работы и проследить путь, по которому я бы пошел, чтобы достать все необходимое. И вот как я сегодня планирую идти домой, но можно обратить внимание на библиотеку. Что мне там понадобилось? Можно просто щелкнуть по ней и увидеть. О, все понятно. Просроченные книги и все такое. Это был объект предложение с соответствующим именем. Вернемся назад. А что мне нужно в аптеке? Ммм… Понятно. Очень интересно. Так, магазин. Ну, это я уже видел. Почему отображается в таком виде?

    [100 минут транскрипции на английском]

    Продолжение следует




    Вместе с компанией Edison продолжаем весенний марафон публикаций.

    Я постараюсь докопаться до первоисточников IT-технологий, разобраться, как мыслили и какие концепции были в головах у первопроходцев, о чем они мечтали, каким видели мир будущего. Для чего задумывались «компьютер», «сеть», «гипертекст», «усилители интеллекта», «система коллективного решения задач», какой смысл они вкладывали в эти понятия, какими инструментами хотели добиться результата.

    Надеюсь, что эти материалы послужат вдохновением для тех, кто задается вопросом, как перейти «от Нуля к Единице» (создать что-то, чего раньше и в помине не было). Хочется, чтобы IT и «программирование» перестали быть просто «кодингом ради бабла», и напомнить, что они задумывались как рычаг, чтобы изменить методы ведения войны образование, способ совместной деятельности, мышления и коммуникации, как попытка решить мировые проблемы и ответить на вызовы, вставшие перед человечеством. Как-то так.

    0 марта. Сеймур Пейперт
    1 марта. Xerox Alto
    2 марта «Позвоните Джейк». История NIC и RFC
    3 марта Грэйс «бабуля COBOL» Хоппер
    4 марта Маргарет Гамильтон: «Пацаны, я вас на Луну отправлю»
    5 марта Хеди Ламарр. И в кино обнаженной сняться и во врага торпедой пульнуть
    7 марта Великолепная шестерка: девушки, которые термоядерный взрыв рассчитывали
    8 марта «Видеоигры, я ваш отец!»
    9 марта С днём рождения, Джеф Раскин
    14 марта Джозеф «Lick» Ликлайдер: «Интергалактическая компьютерная сеть» и «Симбиоз человека и компьютера»
    15 марта Вэнивар Буш: «Как мы можем мыслить» (As We May Think)
    16 марта С днем рождения, Ричард Столлман
    Edison 93,81
    Изобретаем успех: софт и стартапы
    Поделиться публикацией
    Комментарии 2
      +2
      Также рекомендую просмотреть видео от 86го года где (помимо показа самого того демо) Дуглас рассказывает подробности как это демо было организовано, какие там были сложности и т.п. https://www.youtube.com/watch?v=sG3PWet8fDk
        +1
        Спасибо, мне очень пригодится.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое