20 Най-големи изобретения в компютърното програмиране
В един от разговорите, който имах с нашия старши редактор, ме зададоха въпроса, “Как е първата програма програмисти?” Това доведе до дискусия за Бъбидж и Ада Лавлейс, в края на която бях назначен за изследвания как то всичко започна - това е многото първи в изчислителната история.
Вкопах книги и уебсайтове и бях посрещнат с много откровения: Бъбидж не е технически изобретател на компютъра, FORTRAN определено не е първият език за програмиране на високо ниво и ние използвахме стилуси за CRT екрани (наистина).
Бях изненадан да разбера колко съществени са войните в подхранването на бързия напредък в компютърното развитие, както и за приноса на много жени, които нашите учебници са пренебрегнали. Следователно, за да запълним празнините в историята на компютрите и програмите, събрах 20 първи в света на компютрите, от топки за боулинг до Втората световна война и всичко, което е между.
1. Първи компютър: “Различен двигател” (1821)
Най- “Разлика на двигателя” е предложен механичен компютър, който да се използва за извеждане на математически таблици. По поръчка на британското правителство, Чарлз Бабидж (известен още като отец на компютъра) започна работа по него, но поради високата си производствена цена финансирането беше спряно и машината никога не е била завършена.
2. Първи компютър с общо предназначение: “Аналитичен двигател” (1834)
Най- “Аналитичен двигател” също така беше предложен механичен компютър, чийто вход е трябвало да бъде перфориран, с програми и данни, прекарани върху тях. Друго въплъщение на Чарлз Бабидж, тази машина също не е завършена.
3. Първа компютърна програма: алгоритъм за изчисляване на числата на Бернули (1841 - 1842)
Ада Лавлейс (първият в света компютърен програмист) започва да превежда записите на италианския математик Луиджи Менабреа за аналитичния механизъм на Babbage през 1841 г. По време на превода тя се интересува от машината и оставя бележки с превода си. Една от бележките - бележка Ж., съдържа алгоритъма за изчисляване на числата на Бернули от аналитичния двигател, считан за първата компютърна програма.
4. Първи работен програмируем компютър: Z3 (1941)
Konrad Zuse (Изобретателят на компютрите) вече имаше работещ механичен компютър Z1, но работеше само за няколко минути. Използването на различна технология - релета, доведе до Z2 и евентуално до Z3. Z3 е електромагнитен компютър, за който програмата и данните се съхраняват на външни щанцовани ленти. Това е таен проект на германското правителство и е пуснат в употреба от Германския институт за научни изследвания на въздухоплавателните средства. Оригиналната машина е била унищожена при бомбардировките на Берлин през 1943 година.
5. Първи електронен компютър: Компютър Атанасов-Бери (ABC) (1942)
Създаден от Джон Винсент Атанасов и Клифорд Бери, оттам именуваният компютър Atanasoff-Berry или ABC беше използван за намиране на решение за едновременни линейни уравнения. Това беше първият компютър, който използваше двоичен код за представяне на данни и електронни ключове вместо механични. Компютърът обаче не беше програмируем.
6. Първи програмируем електронен компютър: Colossus (1943)
Колосът, създаден от Томи Цветя, е машина, създадена, за да помогне на британците да декриптират германските съобщения, които са били криптирани от шифъра на Лоренц, още през Втората световна война. Програмиран е с електронни ключове и контакти. Колос донесе време да дешифрира криптираните съобщения от седмици до няколко часа.
7. Първи Програмируем електронен компютър с общо предназначение: ENIAC (1946)
Финансиран от американската армия, ENIAC или Електронен цифров интегратор и компютър е разработена в Електрическия факултет на Мур, Университета на Пенсилвания от Джон Маучли и Дж. Преспер Екерт. ENIAC е широк 150 фута и може да бъде програмиран да извършва сложни операции като примки; програмирането е направено чрез промяна на електронните ключове и кабели. Използват се четци на карти за входни и картови удари за изход. Той помогна с изчисления за осъществимост на първата в света водородна бомба.
8. Първи тракбол: (1946/1952)
Защо двете години за първия тракбол? Позволете ми да обясня.
Първата година беше годината, дадена от Ралф Бенджамин, който твърди, че е създал първия в света тракбол, когато е работил върху система за мониторинг на самолети с ниско ниво на полет през 1946 година. на курсора на екрана. Дизайнът е патентован през 1947 г., но никога не е бил освободен, защото се счита за “военна тайна”. Вместо това военните избраха джойстика.
Вторият претендент за първия в света тракбол, използван в системата DATAR на канадския флот през 1952 г., е изобретен от Том Кранстън и ко. Този дизайн на тракбола имаше макет, който използваше канадска топка за боулинг “въздушни лагери” (вижте изображението по-долу).
9. Компютър от първата запазена програма: SSEM (1948)
За да се преодолеят недостатъците на паметта за забавяне, Фредерик К. Уилямс и Том Килбърн са разработили първото цифрово устройство за съхранение на произволен достъп на базата на стандартния CRT. SSEM (Манчестър Малка експериментална машина) е използван за реализиране на това устройство за съхранение за практическо използване. Програмите бяха въведени в двоична форма с помощта на 32 комутатора и неговата продукция беше CRT.
10. Първи език за програмиране на високо ниво: Plankalkül (1948)
Въпреки че Конрад Зюзе започва да работи на Планкалкул от 1943 г., едва през 1948 г. той публикува книга за него. За съжаление не привлече много внимание. Щеше да отнеме близо три десетилетия по-късно, за да се приложи компилатор, създаден от Йоахим Хоман в дисертация.
11. Първи асемблер: “Първоначални поръчки” за EDSAC (1949)
Асемблер е програма, която преобразува мнемониката (ниско ниво) в числово представяне (машинен код). Първоначалните поръчки в EDSAC (Електронен калкулатор за задържане на съхранение) е първата от подобна система. Той е бил използван за сглобяване на програми от входяща хартиена лента в паметта и работа на входа. Програмите бяха в мнемонични кодове вместо машинни кодове “начален код” първият асемблер, обработващ символен програмен код от ниско ниво в машинен код.
12. Първи персонален компютър: “Simon” (1950)
“Simon” от Edmund Berkeley е първият достъпен цифров компютър, който може да изпълнява четири операции: добавяне, отрицание, по-голямо от и избор. Входът беше набит с хартия и програмата се изпълни на хартиена лента. Единственият изход беше през пет светлини.
13. Първи съставител: A-0 за UNIVAC 1 (1952)
Компилаторът е програма, която преобразува езика на високо ниво в машинен код. Системата A-0 е програма, създадена от легендарния Grace Hopper, за да преобразува програма, определена като поредица от подпрограми и аргументи в машинен код. A-0 по-късно се превърна в A-2 и беше пусната на клиентите с изходния код, правейки го възможно най-много първи софтуер с отворен код.
14. Първи автокод: автокод на Глени (1952 г.)
Автокодът е език за програмиране на високо ниво, който използва компилатор. Първият автокод и неговият съставител се появиха в университета в Манчестър, за да направят програмирането на машината Марк 1 по-разбираемо. Той е създаден от Алик Глени, откъдето идва и името на автокода на Глени.
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 г., докато седя на конференция по компютърна графика. Той си измисли устройство с чифт малки колела (единият се върти хоризонтално, а другият вертикално), който може да се използва за преместване на курсора на екрана. Прототип (виж по-долу) е създаден от неговия водещ инженер Бил Английски, но и английският, и Engelbart никога не са получавали хонорари за дизайна, защото технически е принадлежал на SRI, работодателят на Engelbert..
18. Първи търговски настолен компютър: Програма 101 (1965)
Също известен като Perottina, Programma 101 е първият търговски компютър в света. Тя може да извършва събиране, изваждане, умножение, деление, квадратен корен, абсолютна стойност и фракция. За всичко, което можеше да направи, цената му беше $ 3200 (беше много различно време) и успя да продаде 44 000 единици. Perottina е изобретен от Pier Giorgio Perotto и е произведен от Olivetti, италиански производител.
19. Първи сензорен екран (1965 г.)
Не изглежда много, но това беше първият сензорен екран, който светът някога е познавал. Това е капацитивен сензорен панел, без чувствителност на натиск (има контакт или няма контакт) и регистрира само една точка на контакт (за разлика от мултитъч). Концепцията е приета за използване от ръководителите на полети във Великобритания до 1990-те години.
20. Първи обектно ориентиран език за програмиране: Simula (1967)
Основавайки се на концепцията на клас A. R. Hoare за класовите конструкции, Ole-Johan Dahl & Kristen Nygaard актуализира своите “СИМУЛА I” език за програмиране с обекти, класове и подкласове. Това доведе до създаването на SIMULA 67, който стана първият обектно-ориентиран език за програмиране.
Заключителни мисли
Доколкото този пост е за това, което можем да научим за многото първи неща в историята на компютрите, е трудно да се потопим в самата история. В резултат, поне за мен, ние станете по-благодарни за работата, извършена от поколения преди нашата, и ние можем по-добре да разберем какво движи многото промени, които оформят света, в който живеем днес.
Надявам се този пост да ви вдъхновява толкова, колкото ме вдъхнови. Споделете мислите си за тези първи неща и ако съм пропуснал някое от тях, което съм сигурен, че съм направил, добавете ги в коментарите.