Родом из семидесятых
// текст 2019.04
Пожалуй, 1970-е с излётом в 1980-х (да и то 80-е — это больше художественный и культурный рывок, чем инженерный) — период, на котором у компьютерного человечества закончились идеи. Буквально всё, что нас окружает в виртуальном мире, было озвучено, если не сделано в хоть какой-то мере ещё в прошлом столетии. Те люди провели съёмки, картографировали, указали места залегания полезных ископаемых, ну а мы роем, роем, роем.
Правильно рыть, совершенствуя методы добычи, — тоже хорошая работа. Но…
Прелюдия
В размышлениях на такие темы полезно раздробить идеи и реализации на разные категории. Иначе легко впасть в нелепость. Скажем, полёты в космос. Если не вдаваться в более точные и корректные детали (и оставаться в рамках популярной истории), можно вывести следующую цепочку:
- Жюль Верн, «С Земли на Луну прямым путём за 97 часов 20 минут», 1865 год — идея в массы.
- Циолковский[ и Оберт], теория полётов и реактивных штуковин, 1920-е.
- Нехорошие немцы с их Фау-ракетами, практика в продакшене, 1940-е.
- СССР, Спутник-1, начало практики в космосе, 1957 год.
- Ну и т.д.
Если всё-таки вдаваться в детали (скажем, о полётах на Луну в худлите до Жюля нашего Верна писали Фрэнсис Годвин (1638) и Сирано де Бержерак (1650)), получится невероятная каша, из которой не вычленить именно того автора именно той идеи, что подстегнула прогресс. Или же автора, который сформулировал идею так, что она предстала в реализуемом виде, а не фантазией сельского священника, от чего в другой стране в другом столетии другой чувак воспрял и вдруг на заднем дворе наваял реактор.
Ясно, что всё очень связано и на условную точку истории могут оказывать влияние силы из множества других точек. Ясно, что от появления идеи до её полной практической реализации могут пройти столетия, а количество людей на этом пути может исчисляться тысячами, и каждый уложил свой кирпич, все они молодцы.
Только вот всё-таки в компьютерном мире всё как-то компактнее на шкале времени. Я вижу очень плотный период, внутри которого вслух выдали буквально все «ЧТО можно / нужно делать с компьютерами», не оставив нам ничего для самостоятельной работы, кроме как миллиона задач «КАК сделать то, ЧТО диды указали».
Хочу подчеркнуть важное: не просто фантазировали, но довольно ясно указали, описали, а порою и показали. Мне поначалу казался несколько нелепым тот ажиотаж футуризма вокруг «Star Trek» (1966+, правда, как по мне, после TNG уже фигню снимали) и «Star Wars» (1977+), но потом узнал (по интервью, мемуарам и упоминаниям в книгах) о том, как часто вместе работали создатели фильмов и инженеры. Помните всякое шагающее имперское? Привет из 1969 года: The GE Cybernetic Anthropomorphous Machine (CAM)
Собственно, список ниже в основном про такие идеи и про первые реализации. То, что приходит на ум, когда в наше время читаешь о чём-то созданном вот буквально на днях или про новую возможность языка, а в голове всплывает «угу, ещё одни чуваки реализовали идею Пупкина, которую он опубликовал в 1964 году, окей».
Людия
Абсолютно всё не перечислю, конечно, в список ниже разбросом войдёт то, о чём помню, знаю, что привлекло внимание.
Идея компьютерной реальности с погружением и целых виртуальных миров? Уже в 1981 году Виндж публикует рассказ «True Names», в котором описано вот это вот всё. До Винджа виртуальные миры широко обсуждались в прессе и на тусовочках.
Дополненная реальность? С конца 1960-х для ВВС США шли работы по созданию шлемов, на экранах которых информация визуализировалась слоями поверх реальной картинки. А вообще вот хорошая статья с краткой историей идей и реализаций: The History and Science of Virtual Reality Headsets
Модное разномастное программирование вообще родом из древности:
- функциональное — даже если убрать теорию, останется LISP (1958 год);
- объектно-ориентированное — здесь на раннем этапе конфликт идеологий (Кэй подразумевал другое ООП), но Simula (1967) и Smalltalk (1972);
- логическое — Planner (1969) и Prolog (1972);
Компьютерные сети и бигдата не новость, SAGE — Semi-Automatic Ground Environment, развесистый комплекс большущих ангаров по всему миру, чтобы отслеживать воздушное пространство, оперативно сводить и обрабатывать данные обо всех самолётах, передавать в ПВО и т.д. 1958+ гг, ага.
Устройства ввода тоже сплошь античность (клавиатуру даже не упоминаю): мышка (1964), световой пистолет (1958, кстати, тот же SAGE, полюбуйтесь на штуковину), световое перо (1955, проект Whirlwind), перчатки (1977, Sayre Glove).
Или вот в конце 90-х в рекламе Java часто говорили про виртуальную машину и байт-код, мол, вон чего сделали, вона теперь как! Ясен пень, ещё в 1960-х был сделан (даже не придуман) O-code для виртуальной машины.
Историю компьютерного машинного перевода можно отсчитывать от Georgetown–IBM experiment — 1954 год.
В истории OCR (распознавание символов) ногу сломать можно, но на массовом рынке распознавали уже с 1970-х.
Нейронные сети (точнее, ИНС)… ну… не понять, с чего отсчитывать. Пусть будет момент, когда в 1957 году Розенблатт придумал перцептрон, ещё и нейрокомпьютер Mark I Perceptron соорудил.
То, что данные надо хранить и получать с помощью специальных программ, поняли рано, потому уже в 1960-х на рынке были системы баз данных CODASYL и IMS. Также за 1960-е Кодд проработал свою «Relational Completeness of Data Base Sublanguages» (1970) и мир надолго погрузился в RDBMS.
Оконные интерфейсы с милыми кнопочками и менюшечками общее место. Назову даже не начало разработок, но самое известное: система Xerox Alto, 1973 год.
Упомяну также и социальные сети. В самой идее ничего нового (ну да, люди взаимодействуют посредством очередных достижений прогресса), но первая публичная BBS (bulletin board system) появилась уже в 1978 году: Computerized Bulletin Board System
А, компьютерные игры. Классическая точка отсчёта: Spacewar!, 1962 год.
Чёт уже выдыхаюсь вспоминать. Вот последний мешок из выжатого мозга:
- киборг — 1960 г.;
- принтер — 1953 г.;
- сканер — 1957 г.;
- ЧПУ — ну… пусть 1950-е;
- сжатие данных — широкая тема, обрежу до первых lossless-алгоритмов, 1977 г.;
- цифровая фотография — 1975 г.;
- цифровая картография — 1970-е;
- графический планшет — вот именно с планшетностью было сложно по понятным причинам, но посмотрите на Stylator 1957 года;
- многоядерность — проистекает из многопроцессорности, идеи которой начали прорабатывать уже в начале 1950-х, а одной из известных реализаций стал ILLIAC IV (1972), например.
Уф, всё, хватит.
Постлюдия
Повторю, всё это не означает, что люди занимаются фигнёй и паразитируют на предках. Глупо было бы так считать.
Скорее, я о том, что в наше время уже невероятно сложно хотя бы в общих фантастических чертах описать что-либо, что не было бы описано ранее (покрыто патентами, сделано прототипами, продаётся в пятом поколении на рынках и т.д.). Те идеи, что проходят под грифом «новое», нередко являются развитием старого (что норм) и / или перекраской старого (что маркетинг). Действительно прорывного, открывающего новые горизонты… да чёт не особо (квантовые вычисления? 1970-е и начало 1980-х).
Наиболее заметно это в языках программирования. Вообще ничего нового не придумали. Каждый язык последних… ну, лет двадцати, пожалуй… перепаковка того, что либо уже было сделано ранее, либо описано было в модели какого-нибудь гипотетического языка. Эволюция современных языков — подтягивание полезного из готового набора. Простой пример:
- в 2017 году вышла версия C# с pattern matching, но…
- в 1987 году вышел Erlang с pattern matching, но…
- в 1968 году вышел Refal с pattern matching, но…
- в 1962 году вышел SNOBOL с pattern matching, но…
- в 1957 году вышел COMIT с зачатками pattern matching.
И ещё стопка языков. Да, это не полностью идентичные матчинги. Но… Ну вы поняли.
Всё это не плохо и не хорошо. Просто занятно наблюдать за тем, как появление чего-то действительно нового (компьютеры и транзисторы) взрывает цивилизацию буквально в 10..20 лет, затем долгий этап разработки открытых месторождений, а под финал некоторый застой в ожидании чего-то действительно нового (биокомпьютеры, например).
Дожить бы.