Дуглас Енгельбарт: «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 березня З днем народження, Річард Столлман

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.