Как первым программистам (1950-1960-е годы) удавалось создавать столь эффективные программы при таких ограниченных вычислительных ресурсах?

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2025-05-12 14:36

разработка по

Как первым программистам (1950-1960-е годы) удавалось создавать столь эффективные программы при таких ограниченных вычислительных ресурсах? Почему они работали так качественно, что успешно удавалась, например, высадка робота на Луну, или лайв-кодинг на видеоконференции (да-да)? И самое главное, что из их опыта можно взять в современную разработку?

Многовато в последнее время я стал писать на попсовые темы вроде вайб-кодинга, да и архитектурные темы, system/software design, пока они остаются ближе к программной инженерии, а не к computer science, тоже по большому счёту, один сплошной мэйнстрим. Поэтому буду возвращаться к хардкору и олдскулу.

Начнём со свежих апрельских тезисов легендарного Алана Кэя, где он поясняет вопрос, вынесенный в заголовок. Далее краткий пересказ его ответа.

=

Алан Кэй: По сути, сделать задачу "любым способом", который только первые программисты могли придумать в те времена, на самом деле всегда было "сильно мотивировано" крайней ограниченностью вычислительных ресурсов.

Например, я часто демонстрировал (студентам) потрясающий фильм Дугласа Энгельбарта 1968 года "Мать всех демо"...

=

Прим: Кэй имеет в виду первую в мире видеоконференцию, продемонстрированную 9 декабря 1968 года Стэнфордским "Исследовательским центром по развитию человеческого интеллекта" на компьютерной конференции в Сан-Франциско.

Энгельбарт использовал для этого консоль c модемом (понятно, оригинальные разработки): связавшись c компьютером, удалённым на 50 километров от исследовательской лаборатории, он в реальном времени демонстрировал видео на проекционном экране, переключаясь при этом между презентацией и программным кодом. В одном окошке показывалась его физиономия, а в другом он вёл ЛАЙВ-КОДИНГ!

При этом Дуглас впервые в истории использовал для управления придуманную им же "мышь", которая также впервые в истории работала с графическим пользовательским интерфейсом, в котором вдобавок поддерживалась фича drag-n-drop!

К счастью, эта видеозапись сохранилась:

https://www.youtube.com/live/yJDv-zdhzMY

Про ряд других уникальных решений на том выступлении можно было ещё долго рассказывать отдельно.

=

Так вот, данный сервис с *субсекундным* временем отклика работал на компьютере в 24-битной архитектуре с быстродействием 500 тыс.оп./с, поддерживая одновременную работу нескольких человек. Кэй постоянно спрашивал у своих студентов "Как это было возможно?", но только однажды за многие годы он получил правильный ответ от старшекурсника:

"Потому что они *желали* субсекундный ответ?"

Да. Это просто была одна из их главных целей, и они придерживались её, несмотря ни на что.

При этом конечно надо учитывать, что время отклика даже на действительно медленных компьютерах, на которых вдобавок был запущен не компилированный код, а интерпретатор (что приводило к потере в скорости ещё на порядок), всё равно *намного* быстрее, чем нервная система человека. Поэтому даже для пилотных интерактивных систем того времени вполне можно было получить довольно хороший отклик в реалтайме (если бы кто-то действительно этого хотел).

Таковой например вполне могла быть система Laning and Zierler, созданная в 1954-м году для компьютера MIT Whirlwind, (надёжная скоростная ферритовая память, аж 4 килобайта; общая шина; "монитор" катодно-лучевая трубка; 16-разрядный процессор 40 тыс. операций в секунду, способный одновременно выполнять 16 инструкций :).

Эта система была по сути первым в мире алгебраическим пруф-чекером: можно было писать код программы как математические формулы в привычной алгебраической нотации, которые затем автоматически компилировались в машинный код. Система даже умела решать дифференциальные уравнения методом Рунге-Кутта (когда-то этот метод изучали 100% первокурсников во всех советских инженерных вузах, помню его до сих пор; не знаю как сейчас). Что интересно, разработчики Фортрана (появился в 1957-м) категорически отрицали какую-либо связь их разработки с этой системой.

Laning and Zierler также прославилась тем, что это был первый случай в истории программирования, когда программу для решения сложной системы дифференциальных уравнений (целых 97 строк кода!) удалось успешно прогнать с первого раза ! ?

(продолжение следует)


Источник: www.youtube.com

Комментарии: