20 величайших изобретений в компьютерном программировании
В одной из бесед с нашим старшим редактором мне задали вопрос, “Как программировали первые программисты?” Это привело к дискуссии о Бэббидже и Аде Лавлейс, в конце которой я был назначен на исследование. как Это все началось - это много первых в компьютерной истории.
Я копался в книгах и на сайтах, и меня встретили много откровений: Бэббидж технически не изобретатель FORTRAN определенно не был первым языком программирования высокого уровня, и у нас были стилусы для ЭЛТ-экранов (на самом деле).
Я также был удивлен, узнав, насколько важными были войны, способствующие быстрому прогрессу компьютерных разработок, плюс вклад многих женщин, которыми наши учебники решили пренебречь. Поэтому, чтобы заполнить пробелы в истории компьютеров и программ, я собрал 20 первых в мире компьютеров: от шаров для боулинга до Второй мировой войны и все, что находится между.
1. Первый компьютер: “Разница двигателя” (1821)
“Разница Двигатель” был предложен механический компьютер, который будет использоваться для вывода математических таблиц. По заказу британского правительства Чарльз Бэббидж (он же «Отец компьютера») начал работать над ним, но из-за высокой стоимости производства финансирование было остановлено и машина так и не была завершена.
2. Первый компьютер общего назначения: “Аналитический двигатель” (1834)
“Аналитический двигатель” был также предложен механический компьютер, на входе которого предполагалось использовать перфокарты с программами и данными, перфорированными на них. Еще одно детище Чарльза Бэббиджа, эта машина тоже не достроена.
3. Первая компьютерная программа: алгоритм для вычисления чисел Бернулли (1841 - 1842)
Ада Лавлейс (первый в мире программист) начала переводить записи итальянского математика Луиджи Менабреа на аналитическом движке Бэббиджа в 1841 году. Во время перевода она заинтересовалась машиной и оставила записи со своим переводом. Одна из заметок - примечание G, содержал алгоритм вычисления чисел Бернулли с помощью аналитического движка, который считается самой первой компьютерной программой.
4. Первый работающий программируемый компьютер: Z3 (1941)
Конрад Цузе (изобретатель компьютеров) уже имел работающий механический компьютер Z1, но он работал всего несколько минут за раз. Использование другой технологии - реле, привело к Z2 и в конечном итоге Z3. Z3 был электромагнитным компьютером, для которого программа и данные хранились на внешних перфорированных лентах. Это был секретный проект правительства Германии, который был использован Немецким институтом авиационных исследований. Оригинальная машина была уничтожена при бомбардировке Берлина в 1943 году.
5. Первый электронный компьютер: Atanasoff-Berry Computer (ABC) (1942)
Созданный Джоном Винсентом Атанасоффом и Клиффордом Берри, следовательно, названный Atanasoff-Berry Computer или ABC использовался, чтобы найти решение для одновременных линейных уравнений. Это был самый первый компьютер, который использовал двоичные данные для представления данных и электронных ключей вместо механических. Компьютер, однако, не был программируемым.
6. Первый программируемый электронный компьютер: Колосс (1943)
Колосс, созданный Томми Флауэрсом, был машиной, созданной для того, чтобы помочь британцам расшифровать немецкие сообщения, которые были зашифрованы шифром Лоренца еще во Второй мировой войне. Он был запрограммирован электронными переключателями и штекерами. Колосс сократил время расшифровки зашифрованных сообщений с нескольких недель до нескольких часов.
7. Первый программируемый электронный компьютер общего назначения: ENIAC (1946)
Финансируется армией США, ENIAC или Электронный числовой интегратор и компьютер был разработан в Школе электротехники Мура, Университет Пенсильвании Джоном Мочли и Дж. Преспером Эккертом. ENIAC имел ширину 150 футов и мог быть запрограммирован для выполнения сложных операций, таких как петли; программирование было сделано путем изменения его электронных выключателей и кабелей. Он использовал кард-ридеры для ввода и карточные удары для вывода. Это помогло с вычислениями для возможности первой в мире водородной бомбы.
8. Первый трекбол: (1946/1952)
Почему два года для первого трекбола? Позвольте мне объяснить.
Первый год был годом, данным Ральфом Бенджамином, который утверждал, что создал первый в мире трекбол, когда он работал над системой мониторинга для низколетящих самолетов в 1946 году. Описанное им изобретение использовало шар для управления координатами XY. курсора на экране. Дизайн был запатентован в 1947 году, но так и не был выпущен, потому что он считается “военная тайна”. Вместо этого военные выбрали джойстик.
Второй претендент на первый в мире трекбол, использованный в системе DATAR канадских ВМС еще в 1952 году, был изобретен Томом Крэнстоном и его коллегами. У этого проекта трекбола был макет, который использовал канадский шар для боулинга, вращающийся на “воздушные подшипники” (см. изображение ниже).
9. Первый сохраненный программный компьютер: SSEM (1948)
Чтобы преодолеть недостатки памяти с задержкой, Фредерик Уильямс и Том Килберн разработали первое цифровое запоминающее устройство с произвольным доступом на основе стандарта CRT. SSEM (Манчестер Малая Экспериментальная Машина) был использован для реализации этого устройства хранения данных для практического использования. Программы были введены в двоичном виде с использованием 32 переключателей, и ее вывод был CRT.
10. Первый язык программирования высокого уровня: Plankalkül (1948)
Хотя Конрад Цузе начал работать над Plankalkül с 1943 года, только в 1948 году он опубликовал статью об этом. К сожалению, это не привлекло большого внимания. Потребуется почти три десятилетия спустя, чтобы для него был реализован компилятор, созданный Йоахимом Хоманом в диссертации..
11. Первый Ассемблер: “Начальные заказы” для EDSAC (1949)
Ассемблер - это программа, которая преобразует мнемонику (низкоуровневую) в числовое представление (машинный код). Первоначальные заказы в EDSAC (Электронный Калькулятор Задержки Хранения) была первой из такой системы. Он использовался для сборки программ из бумажной ленты, введенной в память, и запуска ввода. Программы были в мнемонических кодах вместо машинных кодов, делая “исходный код” первый в мире ассемблер, обработавший символьный программный код низкого уровня в машинный код.
12. Первый персональный компьютер: “Саймон” (1950)
“Саймон” Эдмунд Беркли был первым доступным цифровым компьютером, который мог выполнять четыре операции: сложение, отрицание, больше чем и выбор. На входе была перфорированная бумага, и программа работала на бумажной ленте. Единственный выход был через пять огней.
13. Первый компилятор: A-0 для UNIVAC 1 (1952)
Компилятор - это программа, которая преобразует язык высокого уровня в машинный код. Система A-0 была программой, созданной легендарной Грейс Хоппер для преобразования программы, заданной в виде последовательности подпрограмм и аргументов, в машинный код. Позже A-0 превратился в A-2 и был выпущен для клиентов с его исходным кодом, что делает его, возможно, очень первое программное обеспечение с открытым исходным кодом.
14. Первый автокод: автокод Гленни (1952)
Автокод - это язык программирования высокого уровня, использующий компилятор. Первый автокод и его компилятор появились в Манчестерском университете, чтобы сделать программирование машины Mark 1 более понятным. Он был создан Alick Glennie, отсюда и название Glennie's Autocode.
15. Первый компьютер с графическим дисплеем в реальном времени: AN / FSQ-7 от IBM (1951)
AN / FSQ-7 был основан на одном из первых компьютеров, которые показали производительность в реальном времени, Whirlwind. Это стало спасательным кругом для американской системы ПВО, известной как полуавтоматическая наземная среда (SAGE). Компьютеры показывали треки для целей и автоматически показывали, какая защита находилась в пределах досягаемости. AN / FSQ-7 имел 100 системных консолей; вот один из них (изображение ниже), ситуационный дисплей OA-1008 (SD), со световым пистолетом, используемым для выбора целей на экране для получения дополнительной информации.
16. Первый широко используемый язык программирования высокого уровня: FORTRAN (1957)
Если вы проверите учебники, вы найдете FORTRAN в качестве первого языка программирования высокого уровня. Придуманный Джоном У. Бакусом, который не любил писать программы и решил создать систему программирования, которая значительно упростит процесс, использование FORTRAN значительно сократило число программных операторов, необходимых для работы машины. К 1963 году уже было доступно более 40 компиляторов FORTRAN..
17. Первая мышь (1964)
Во время заседания на конференции по компьютерной графике идея мышки пришла к Дугласу Энгельбарту в 1964 году. Он придумал устройство с парой маленьких колесиков (одно поворачивается горизонтально, а другое вертикально), которое можно использовать для перемещения курсор на экране. Прототип (см. Ниже) был создан его ведущим инженером Биллом Инглишем, но английский и Энгельбарт так и не получили лицензионных отчислений за дизайн, потому что технически он принадлежал SRI, работодателю Энгельберта.
18. Первый коммерческий настольный компьютер: Программа 101 (1965)
Programma 101, также известный как Perottina, был первым в мире коммерческим ПК. Он может выполнять сложение, вычитание, умножение, деление, квадратный корень, абсолютное значение и дробь. За все, что он мог сделать, он был оценен в 3200 долларов (это было совсем другое время), и ему удалось продать 44 000 единиц. Perottina была изобретена Pier Giorgio Perotto и произведена итальянским производителем Olivetti..
19. Первый сенсорный экран (1965)
Это не очень похоже, но это был первый сенсорный экран, который когда-либо знал мир. Это емкостная сенсорная панель, без чувствительности к давлению (есть контакт или нет), и она регистрирует только одну точку контакта (в отличие от мультитач). Эта концепция была принята для использования авиадиспетчерами в Великобритании вплоть до 1990-х годов..
20. Первый объектно-ориентированный язык программирования: Simula (1967)
Основываясь на концепции классовых конструкций С. А. Р. Хоара, Ole-Johan Dahl & Kristen Nygaard обновили свои “SIMULA I” язык программирования с объектами, классами и подклассами. Это привело к созданию SIMULA 67, который стал первым объектно-ориентированным языком программирования..
Последние мысли
Как бы ни был этот пост о том, что мы могли узнать о многих нововведениях в компьютерной истории, трудно погрузиться в саму историю. В результате, по крайней мере для меня, мы стать более благодарным за работу, проделанную поколениями до нашей, и мы можем лучше понять, что движет многими изменениями, которые формируют мир, в котором мы живем сегодня.
Я надеюсь, что этот пост вдохновляет вас так же сильно, как и меня. Поделитесь своими мыслями об этих новинках, и если я что-то пропустил, что, я уверен, я сделал, добавьте их в комментарии.