Как было создано первое программное обеспечение для программирования
Обновлено: 20.11.2024
Эта история была написана весной 2000 года, когда я учился в восьмом классе. В течение нескольких лет после того, как я написал его, текст был доступен в Интернете и стал справочным материалом для других статей, статей в Википедии и даже курсов колледжа. Я поместил отчет здесь для потомства и развлечения (как я мог не упомянуть Python??). В 2004 году я сделал два обновления в ответ на критику по электронной почте, но в остальном текст не изменился. Чтобы получить более актуальную информацию, я бессовестно указываю вам на Википедию.
— Эндрю Фергюсон
История языков программирования
С момента изобретения Чарльзом Бэббиджем разностной машины в 1822 году компьютерам требовались средства, позволяющие им выполнять определенные задачи. Это средство известно как язык программирования. Компьютерные языки сначала состояли из серии шагов для подключения конкретной программы; они превратились в серию шагов, введенных в компьютер, а затем выполненных; позже эти языки приобрели расширенные функции, такие как логическое ветвление и объектная ориентация. Компьютерные языки за последние пятьдесят лет прошли две стадии: первые основные языки и вторые основные языки, которые используются сегодня.
Вначале разностную машину Чарльза Бэббиджа можно было заставить выполнять задачи только путем переключения передач, которые выполняли вычисления. Таким образом, самой ранней формой компьютерного языка было физическое движение. В конце концов, физическое движение было заменено электрическими сигналами, когда правительство США построило ENIAC в 1942 году. Он следовал многим из тех же принципов, что и двигатель Бэббиджа, и, следовательно, его можно было «запрограммировать» только путем предварительной настройки переключателей и перемонтажа всей системы для каждого нового « программа» или расчет. Этот процесс оказался очень утомительным.
В 1957 году появился первый из основных языков в форме ФОРТРАН. Его название расшифровывается как FORmula TRANslating system. Язык был разработан в IBM для научных вычислений. Компоненты были очень простыми и предоставляли программисту низкоуровневый доступ к внутренностям компьютеров. Сегодня этот язык считался бы ограничительным, поскольку он включал только операторы IF, DO и GOTO, но в то время эти команды были большим шагом вперед. Основные типы данных, которые используются сегодня, зародились в FORTRAN, к ним относятся логические переменные (ИСТИНА или ЛОЖЬ), а также целые, действительные числа и числа с двойной точностью.
Хотя FORTAN хорошо справлялся с числами, он не очень хорошо справлялся с вводом и выводом данных, что наиболее важно для бизнес-вычислений. Бизнес-вычисления начали набирать обороты в 1959 году, и поэтому был разработан язык COBOL. Он был разработан с нуля как язык для бизнесменов. Его единственными типами данных были числа и строки текста. Это также позволило сгруппировать их в массивы и записи, чтобы данные можно было лучше отслеживать и организовывать. Интересно отметить, что программа на языке COBOL построена так же, как эссе, с четырьмя или пятью основными разделами, которые составляют элегантное целое. Операторы COBOL также имеют грамматику, очень похожую на английскую, поэтому их довольно легко выучить. Все эти функции были разработаны, чтобы упростить их изучение и внедрение для среднего бизнеса.
(Обновлено 11 августа 2004 г.) В 1958 году Джон Маккарти из Массачусетского технологического института создал язык обработки LISt (или LISP). Он был разработан для исследований искусственного интеллекта (ИИ). Поскольку он был разработан для специализированной области, первоначальный выпуск LISP имел уникальный синтаксис: по существу, его не было. Программисты писали код в деревьях синтаксического анализа, которые обычно являются генерируемым компилятором промежуточным звеном между более высоким синтаксисом (например, в C или Java) и кодом более низкого уровня. Другое очевидное отличие этого языка (в исходной форме) от других языков состоит в том, что основным и единственным типом данных является список; в середине 1960-х LISP приобрел другие типы данных. Список LISP обозначается последовательностью элементов, заключенных в круглые скобки. Сами программы LISP написаны в виде набора списков, так что LISP обладает уникальной способностью модифицировать себя и, следовательно, расти сам по себе. Синтаксис LISP был известен как «Кембриджский польский», поскольку он сильно отличался от стандартной булевой логики (Wexeblat, 177):
- x V y — кембриджский польский язык, который использовался для описания программы LISP.
- OR(x,y) - обозначение префикса в скобках, которое использовалось в программе LISP
- x ИЛИ y — стандартная логическая логика
LISP используется и сегодня из-за его узкоспециализированного и абстрактного характера.
Pascal был создан в 1968 году Никлаусом Виртом. Его развитие было в основном из-за необходимости хорошего учебного пособия. Вначале разработчики языка не надеялись, что он получит широкое распространение. Вместо этого они сосредоточились на разработке хороших инструментов для обучения, таких как отладчик и система редактирования, а также на поддержке обычных первых микропроцессорных машин, которые использовались в учебных заведениях.
Паскаль был разработан с использованием очень упорядоченного подхода, он сочетал в себе многие из лучших особенностей языков, использовавшихся в то время, КОБОЛ, ФОРТРАН и АЛГОЛ. При этом многие неточности и странные формулировки этих языков были убраны, что помогло привлечь пользователей (Бергин, 100-101). Сочетание функций ввода/вывода и надежных математических функций сделало его очень успешным языком. Паскаль также улучшил тип данных «указатель», очень мощную функцию любого языка, который его реализует. Он также добавил оператор CASE, который позволял инструкциям разветвляться подобно дереву таким образом:
Pascal также помог разработать динамические переменные, которые можно было создавать во время выполнения программы с помощью команд NEW и DISPOSE. Однако Паскаль не реализовал динамические массивы или группы переменных, что оказалось необходимым и привело к его падению (Бергин, 101-102). Позже Вирт создал преемника Паскаля, Модулу-2, но к моменту его появления С быстро набирал популярность и пользователей.
C был разработан в 1972 году Деннисом Ритчи, работавшим в Bell Labs в Нью-Джерси. Переход в использовании от первых основных языков к основным сегодняшним языкам произошел при переходе от Паскаля к Си. Его прямыми предками являются В и BCPL, но его сходство с Паскалем совершенно очевидно. Все функции Pascal, включая новые, такие как оператор CASE, доступны в C. C широко использует указатели и был разработан, чтобы быть быстрым и мощным за счет того, что его трудно читать. Но поскольку он исправил большинство ошибок Паскаля, он довольно быстро покорил бывших пользователей Паскаля.
Ричи разработал C для новой системы Unix, создаваемой в то же время. Из-за этого C и Unix идут рука об руку. Unix предоставляет C такие расширенные возможности, как динамические переменные, многозадачность, обработка прерываний, разветвление и сильный низкоуровневый ввод-вывод. По этой причине C очень часто используется для программирования операционных систем, таких как Unix, Windows, MacOS и Linux.
В конце 1970-х и начале 1980-х годов разрабатывался новый метод программирования. Он был известен как объектно-ориентированное программирование или ООП. Объекты — это фрагменты данных, которые могут быть упакованы и обработаны программистом. Бьерну Страустроупу понравился этот метод, и он разработал расширения для C, известные как «C с классами». Этот набор расширений превратился в полнофункциональный язык C++, выпущенный в 1983 году.
C++ был разработан, чтобы организовать грубую мощь C с помощью ООП, но сохранить скорость C и возможность работать на разных типах компьютеров. C++ чаще всего используется в симуляциях, таких как игры. C++ предоставляет элегантный способ отслеживать и манипулировать сотнями людей в лифтах или армиями, состоящими из разных типов солдат. Это язык, который выбирают в современных курсах AP Computer Science.
В начале 1990-х интерактивное телевидение считалось технологией будущего. В Sun Microsystems решили, что интерактивному телевидению нужен особый, портативный (может работать на многих типах машин) язык. Этот язык в конечном итоге стал Java. В 1994 году команда проекта Java переключила свое внимание на Интернет, который стал «крутым делом» после провала интерактивного телевидения. В следующем году Netscape лицензировала Java для использования в своем интернет-браузере Navigator. В этот момент Java стал языком будущего, и несколько компаний анонсировали приложения, которые будут написаны на Java, но ни одно из них не вошло в обиход.
Хотя Java преследует очень высокие цели и является примером хорошего языка из учебника, возможно, это «язык, которого не было». У него серьезные проблемы с оптимизацией, а это означает, что программы, написанные на нем, работают очень медленно. И Sun навредила признанию Java, участвуя в политических битвах за нее с Microsoft. Но Java может стать учебным языком завтрашнего дня, поскольку он действительно объектно-ориентирован и реализует передовые методы, такие как настоящая переносимость кода и сборка мусора.
Сегодня Visual Basic часто преподают как первый язык программирования, поскольку он основан на языке BASIC, разработанном в 1964 году Джоном Кемени и Томасом Курцем. BASIC — очень ограниченный язык, и он был разработан для людей, не разбирающихся в информатике. Операторы в основном выполняются последовательно, но управление программой может изменяться на основе операторов IF..THEN и GOSUB, которые выполняют определенный блок кода, а затем возвращаются к исходной точке в потоке программы.
Microsoft расширила BASIC в своем продукте Visual Basic (VB). Сердцем VB является форма или пустое окно, в которое вы перетаскиваете такие компоненты, как меню, изображения и ползунки. Эти элементы известны как «виджеты». Виджеты имеют свойства (например, цвет) и события (например, клики и двойные клики) и играют центральную роль в создании любого пользовательского интерфейса сегодня на любом языке.Сегодня VB чаще всего используется для создания быстрых и простых интерфейсов к другим продуктам Microsoft, таким как Excel и Access, без необходимости написания большого количества кода, хотя с его помощью можно создавать полноценные приложения.
Perl часто называют «изоляционной лентой Интернета», поскольку он чаще всего используется в качестве механизма для веб-интерфейса или в сценариях, которые изменяют файлы конфигурации. Он имеет очень сильные функции сопоставления текста, которые делают его идеальным для этих задач. Perl был разработан Ларри Уоллом в 1987 году, потому что инструменты Unix sed и awk (используемые для работы с текстом) уже не были достаточно сильны, чтобы удовлетворить его потребности. В зависимости от того, кого вы спросите, Perl означает практический язык извлечения и составления отчетов или патологически эклектичный список мусора.
Языки программирования разрабатывались годами и останутся таковыми еще много лет. Они начали со списка шагов, необходимых для подключения компьютера к выполнению задачи. Эти шаги в конечном итоге нашли свое отражение в программном обеспечении и начали приобретать новые и лучшие функции. Первые основные языки характеризовались тем простым фактом, что они предназначались для одной и только одной цели, в то время как сегодняшние языки отличаются способом программирования, поскольку их можно использовать практически для любых целей. И, возможно, языки завтрашнего дня станут более естественными с изобретением квантовых и биологических компьютеров.
Компьютерное программирование играет важную роль в современном мире, так как оно работает практически на каждом устройстве, которое мы используем. Языки компьютерного программирования позволяют нам говорить машинам, что делать. Машины и люди «думают» совершенно по-разному, поэтому для преодоления этого разрыва необходимы языки программирования.
Первый язык программирования был создан в 1883 году, когда женщина по имени Ада Лавлейс работала с Чарльзом Бэббиджем над его самым ранним механическим компьютером — аналитической машиной. В то время как Бэббидж занимался простым вычислением чисел, Лавлейс увидел, что числа, с которыми работает компьютер, могут представлять нечто иное, чем просто количество вещей. Она написала алгоритм для аналитической машины, который был первым в своем роде. Благодаря ее вкладу Лавлейс приписывают создание первого языка программирования. По мере того, как возникали различные потребности и создавались новые устройства, появилось много других языков.
Избранные программы
1883: Алгоритм для аналитической машины. Создан Адой Лавлейс для аналитической машины Чарльза Бэббиджа для вычисления чисел Бернулли. Он считается первым языком программирования.
1949: Язык ассемблера. Впервые широко используемый в электронном калькуляторе с задержкой хранения. Язык ассемблера представляет собой тип низкоуровневого языка компьютерного программирования, который упрощает язык машинного кода, конкретные инструкции, необходимые для указания компьютеру, что делать. .
1952: Автокод. Автокод — это общий термин для семейства ранних языков программирования. Первый был разработан Аликом Гленни для компьютера Mark 1 в Манчестерском университете в Великобритании. Некоторые считают автокод первым скомпилированным языком программирования, что означает, что его можно преобразовать непосредственно в машинный код с помощью программы, называемой компилятором. /p>
1957: Fortran: язык компьютерного программирования, созданный Джоном Бэкусом для сложных научных, математических и статистических работ. Fortran расшифровывается как преобразование формул. Это один из старейших языков программирования, используемый до сих пор.
1958: Алгол: Созданный комитетом по научному использованию, Алгол расшифровывается как Алгоритмический Язык. Алгол послужил отправной точкой в разработке таких языков, как Pascal, C, C++ и Java.
1959: COBOL. Созданный доктором Грейс Мюррей Хоппер как язык компьютерного программирования, который может работать на всех марках и типах компьютеров, COBOL расшифровывается как COMmon Business Oriented Language. Он используется в банкоматах, обработке кредитных карт, телефонных системах, больничных и государственных компьютерах, автомобильных системах и светофорах. В фильме Терминатор фрагменты исходного кода COBOL использовались для отображения терминатора.
1959: LISP: Созданный Джоном Маккарти из Массачусетского технологического института, LISP используется до сих пор. Это означает язык обработки LISt. Первоначально он был создан для исследований искусственного интеллекта, но сегодня его можно использовать в ситуациях, когда используются Ruby или Python.
1964: BASIC: разработан Джоном Г. Кемени и Томасом Э. Курцем в Дартмутском колледже, чтобы студенты, не обладающие сильными техническими или математическими знаниями, могли по-прежнему пользоваться компьютерами. Модифицированная версия BASIC была написана Биллом Гейтсом и Полом Алленом. Это должно было стать первым продуктом Microsoft.
1970: Паскаль. Паскаль, разработанный Никлаусом Виртом, назван в честь французского математика, физика и философа Блеза Паскаля. Он прост в освоении и изначально создавался как инструмент для обучения компьютерному программированию. Паскаль был основным языком, используемым для разработки программного обеспечения в первые годы существования Apple.
1972: Smalltalk. Разработанный Аланом Кеем, Адель Голдберг и Дэном Ингаллсом в Исследовательском центре Xerox в Пало-Альто, Smalltalk позволил программистам изменять код на лету, а также представил другие аспекты, которые сейчас присутствуют в распространенных языках компьютерного программирования, включая Python, Java и Ruby.
1972: SQL: SQL был разработан Дональдом Д. Чемберлином и Рэймондом Ф. Бойсом в IBM. SQL расшифровывается как язык структурированных запросов. Он используется для просмотра и изменения информации, хранящейся в базах данных. SQL использует командные предложения, называемые запросами, для добавления, удаления или просмотра данных.
1978: MATLAB: разработан Кливом Молером. MATLAB расшифровывается как Matrix Laboratory. Это один из лучших языков программирования для написания математических программ, который в основном используется в математике, исследованиях и образовании. Его также можно использовать для создания двух- и трехмерной графики.
1983: Objective-C. Созданный Брэдом Коксом и Томом Лавом, Objective-C — это основной язык программирования, используемый при написании программного обеспечения для macOS и iOS, операционных систем Apple.
1983: C++: C++ — это расширение языка C, разработанное Бьерном Страуструпом. Это один из самых широко используемых языков в мире. C++ используется в игровых движках и высокопроизводительном программном обеспечении, таком как Adobe Photoshop. Большая часть упакованного программного обеспечения по-прежнему написана на C++.
1987: Perl: Perl изначально был разработан Ларри Уоллом в 1987 году как язык сценариев, предназначенный для редактирования текста. Его цель состояла в том, чтобы упростить обработку отчетов. В настоящее время он широко используется для многих целей, включая системное администрирование Linux, веб-разработку и сетевое программирование.
1990: Haskell: назван в честь Хаскелла Брукса Карри, американского логика и математика. Haskell называют чисто функциональным языком программирования, что в основном означает, что он в основном математический. Он используется во многих отраслях, особенно в тех, которые связаны со сложными расчетами, записями и обработкой чисел.
1991: Python. Python, разработанный Гвидо Ван Россумом, легче читать и требует меньше строк кода, чем многие другие языки программирования. Он был назван в честь британской комедийной группы «Монти Пайтон». Популярные сайты, такие как Instagram, используют фреймворки, написанные на Python.
1991: Visual Basic. Visual Basic, разработанный Microsoft, позволяет программистам выбирать и изменять предварительно выбранные фрагменты кода путем перетаскивания через графический интерфейс пользователя (GUI).
1993: R: Разработанный Россом Ихакой и Робертом Джентльменом из Оклендского университета, Новая Зеландия, R назван в честь первых двух авторов. Он в основном используется статистиками и теми, кто выполняет различные виды анализа данных.
1995: Java. Java, изначально называвшаяся Oak, была разработана Sun Microsystems. Он был предназначен для кабельных коробок и портативных устройств, но позже был усовершенствован, чтобы его можно было использовать для доставки информации во Всемирную паутину. Java повсюду: от компьютеров до смартфонов и парковочных счетчиков. Java работает на трех миллиардах устройств!
1995: PHP: Созданный Расмусом Лердорфом, PHP используется в основном для веб-разработки и обычно запускается на веб-серверах. Первоначально это означало «Личная домашняя страница», поскольку Лердорф использовал ее для управления своей собственной онлайн-информацией. В настоящее время PHP широко используется для создания веб-сайтов и блогов. WordPress, популярный инструмент для создания веб-сайтов, написан на PHP.
1995: Ruby: Ruby был создан Юкихиро «Мац» Мацумото, который объединил части своих любимых языков, чтобы сформировать новый язык программирования общего назначения, способный выполнять множество задач программирования. Он популярен в разработке веб-приложений. Код Ruby выполняется медленнее, но позволяет программистам быстро собрать и запустить программу.
1995: JavaScript. Этот язык, созданный Бренданом Эйхом всего за 10 дней, в основном используется для улучшения взаимодействия с веб-браузером. Почти каждый крупный веб-сайт использует Javascript.
2003: Scala: Создано Мартином Одерски. Scala — это язык компьютерного программирования, который сочетает в себе функциональное программирование, являющееся математическим, с объектно-ориентированным программированием, организованным вокруг данных, которые контролируют доступ к коду. Его совместимость с Java делает его полезным в разработке для Android.
2003: Groovy. Разработанный Джеймсом Страчаном и Бобом МакВиртером, Groovy основан на Java и повышает производительность разработчиков, поскольку он прост в освоении и лаконичен.
2009 год: Go. Go был разработан Google для решения проблем, которые могут возникнуть в крупных программных системах. Поскольку сегодня использование компьютеров и технологий сильно отличается от того, когда были введены и введены в действие такие языки, как C++, Java и Python, проблемы возникли, когда огромные компьютерные системы стали обычным явлением. Go был предназначен для улучшения рабочей среды для программистов, чтобы они могли более эффективно писать, читать и поддерживать большие программные системы.
2014: Swift. Разработанный Apple в качестве замены C, C++ и Objective-C, Swift должен быть проще в использовании и допускает меньше ошибок. Он универсален и может использоваться для настольных и мобильных приложений и облачных сервисов.
Языки программирования сегодня
Большинство языков программирования были созданы на основе концепций предыдущих языков программирования. Сегодня, хотя старые языки по-прежнему служат прочной основой для новых, новые языки программирования упрощают работу программистов. Предприятия в значительной степени полагаются на программы для удовлетворения всех своих потребностей в данных, транзакциях и обслуживании клиентов. Наука и медицина нуждаются в точных и сложных программах для своих исследований. Мобильные приложения должны обновляться в соответствии с требованиями потребителей. И все эти новые и растущие потребности гарантируют, что языки программирования, как старые, так и новые, останутся важной частью современной жизни.
Обязательно ознакомьтесь с нашим рейтингом лучших онлайн-колледжей, а также нашим рейтингом колледжей, ориентированным на варианты получения степени в области компьютерных наук.
Историю компьютерного программирования можно проследить до истории самих компьютеров, а возможно, даже раньше. Хотя для некоторых это может стать неожиданностью, многие из первых программистов были женщинами, и почти все они вызывали споры.
Итак, кто был первым программистом и каким был первый язык программирования? Продолжайте читать, чтобы узнать!
Часовой механизм — это первый пример программирования. Система перфокарт Jacquard Loom (1804 г.), вероятно, является первым примером двоичной системы. Ада Лавлейс написала первые компьютерные программы (1840-е гг.). Лавлейс также был первым, кто предположил, что компьютеры могут быть чем-то большим, чем просто калькуляторами. Грейс Хоппер разработала LOW-MATIC, первую систему, которая могла преобразовывать обычный английский язык в компьютерный код (1952 г.).
Кто был первым программистом?
Часовые устройства, вероятно, являются первыми известными первыми примерами «программирования». Самый ранний известный пример - Антикитерский механизм (200 г. до н.э. - 70 г. до н.э.). По этой причине никто не может точно сказать, кто действительно первым запрограммировал машину.
До появления электронных компьютеров были человеческие и механические компьютеры и, конечно же, часовые устройства. Многие часовые механизмы были настолько сложными, что их можно было «запрограммировать» на выполнение ряда сложных задач, таких как танец или письмо.
"Писатель", автомат (механическая кукла), разработанный и построенный в 1770-х годах швейцарским часовщиком Пьером Жаке-Дро, является одним из особенно впечатляющих примеров.
Писатель, «Автоматон» Жаке-Дро, Музей искусства и истории Невшатель-Рама, CC BY-SA 2.0 FR, через Wikimedia Commons
Писатель может быть «запрограммирован» на написание различных букв пером. Каждая шестерня представляет собой другую букву. Writer состоит примерно из 600 различных частей. Невероятно, но это работает и по сей день. Вы можете увидеть его в действии в Музее искусства и истории, Невшатель, Швейцария.
Первая двоичная система и рождение программирования
Система перфокарт Jacquard Loom, запатентованная в 1804 году, вероятно, является первым известным примером двоичной системы или, по крайней мере, формата команд включения/выключения. Система позволила автоматизировать процесс вплетения различных узоров в материал.
Система перфокарт Jacquard Loom.
Как работает система перфокарт Jacquard Loom:
Чтобы ткать ткань на ткацком станке, нить (уток) пропускают над и под другим набором нитей (основой). Для создания разных рисунков нити основы разного цвета располагаются выше или ниже утка. До изобретения системы перфокарт Jacquard Loom помощнику ткача приходилось вручную поднимать и опускать разные нити в каждом ряду, чтобы создать узор. Это отнимало очень много времени!
Система перфокарт Jacquard Loom автоматизировала это. Принцип был очень прост: в ткацкий станок подавалась серия перфокарт. Если в карточке было отверстие, игла поднималась вверх, если отверстия не было, игла оставалась внизу. Затем челнок перемещался по ткацкому станку, создавая узор на ткани.
Дизайн сначала был создан на бумаге в клетку. Затем производитель карт запрограммировал карты на основе дизайна. Возможно, вы удивитесь, узнав, что ни одно отверстие в карточке не указывает на цветной квадрат, а отверстие указывает на пустой квадрат.
Позже перфокарты использовались для хранения других типов данных, а в 1890 году даже для хранения данных переписи населения США. Они легли в основу раннего компьютерного программирования, поскольку давали людям возможность «разговаривать» с компьютером. Постепенно карты трансформировались в перфоленту, в магнитную ленту, в диски…
Молодая женщина работает с перфокартами.
Хотя система была запатентована Жозефом-Мари Жаккардом, на самом деле она была разработана Жаком де Ванкасоном. Система получила свое название от ткацких станков, на которых она использовалась; Жаккардовые станки.
Азбука Морзе
Хотя некоторые люди могут предположить, что азбука Морзе является первой двоичной системой, это неверно. Двоичная система имеет только два «символа» — включено и выключено. В азбуке Морзе используются точки, тире и пробелы. Кроме того, люди обычно отправляют азбуку Морзе с немного более длинными промежутками между буквами и еще более длинными промежутками между словами. Эффективное создание системы с 5 или даже 6 различными «символами».
Кто был первым программистом?
Ада Лавлейс, она же Августа Ада Байрон-1843 или 1850, редкий дагерротип Антуана Клоде. Антуан Клоде, CC BY-SA 4.0, Wikimedia Commons
В 1840-х годах Ада Лавлейс стала первым программистом, несмотря на то, что аналитическая машина (компьютер, для которого она разработала программы) никогда не производилась.
Она также была первой, кто предположил, что компьютер может быть чем-то большим, чем просто огромным калькулятором! Ее радикальная идея заключалась в том, что числовые значения, создаваемые компьютером, можно использовать для представления чего-то другого, кроме чисел: символов, музыкальных нот или чего угодно… не все были в этом убеждены.
5 июня 1833 года Лавлейс (17 лет) впервые встретила пионера компьютерных технологий Чарльза Бэббиджа (40 лет) на вечеринке в Лондоне. У них завязалась маловероятная дружба. Несмотря на невероятную мощь машин Бэббиджа, Лавлейс полностью реализовала их потенциал.
В 1842 году Луиджи Федерико Менабреа написал статью об аналитической машине Бэббиджа. Лавлейс перевела его с французского (8 000 слов) на английский и добавила собственные примечания (20 000 слов). Ее перевод включал в себя первую «компьютерную программу» и был опубликован в 1843 году. Компьютерная программа содержала чертежи серии перфокарт, с помощью которых можно было создать длинную последовательность чисел Бернулли.
Аналитическая машина, задуманная Бэббиджем в 1834 году. Только часть машины была завершена до его смерти в 1871 году. Это часть мельницы с печатающим механизмом.
Хотя были найдены заметки, написанные ее собственным почерком, многие ученые пытались дискредитировать ее. Некоторые предполагают, что это потому, что она была женщиной-математиком.
Новый, обширный и мощный язык разработан для будущего использования анализа, в котором можно использовать его истины, чтобы они могли найти более быстрое и точное практическое применение для целей человечества, чем средства, которые до сих пор находились в нашем распоряжении, стали возможными. Таким образом, не только ментальное и материальное, но теоретическое и практическое в математическом мире приводятся в более тесную и эффективную связь друг с другом. – Ада Лавлейс
Могла ли она представить, где мы будем сегодня?
Алан Тьюринг
Конечно, ни одна статья по истории компьютерного программирования не была бы полной без упоминания самого отца теоретической информатики: Алана Тьюринга!
Алан Тьюринг Изобретатель современных вычислений.
В 1936 году, еще до того, как компьютеры стали способны на такую сложность, Тьюринг (23) написал статью, которая навсегда определила информатику: «О вычислимых числах с приложением к проблеме Entscheidungs». В документе, по крайней мере теоретически, доказано, что «универсальная вычислительная машина» (машина Тьюринга) теоретически может выполнять любые математические вычисления, если ей задан правильный алгоритм.
На протяжении всей своей умопомрачительной карьеры Тьюринг помог сократить время Второй мировой войны примерно на 3 года, написал еще несколько статей, которые до сих пор определяют наше представление о компьютерных науках, и участвовал в разработке многих из первых компьютеров.
>Как и многие первые компьютерные пионеры, он не обошлось без разногласий. Он столкнулся с негативной реакцией и постоянно изо всех сил пытался убедить многих в важности своей работы. Кроме того, его жизнь закончилась трагедией в 41 год. Многие предполагают, что из-за преследования за гомосексуальность он покончил жизнь самоубийством. Однако доказательства неясны.
Первый программист (на электрическом компьютере)
Конрад Цузе, первый программист — на электрическом компьютере.
В 1941 году Конрад Цузе стал, вероятно, первым, кто запрограммировал электрический компьютер, и, в отличие от Лавлейса, компьютер действительно мог выполнять операции!
Пока Алан Тьюринг был занят взломом кода энигмы, его немецкий «двойник»; Цузе разрабатывал Z3; первый в мире работающий электромеханический программируемый, полностью автоматический цифровой компьютер. В компьютер загружались программы с полоски пленки. Как и в случае с жаккардовым ткацким станком, в пленке были пробиты отверстия.
Первые программисты
В 1945 году первыми штатными оплачиваемыми программистами, ответственными за ENIAC (первый электронный универсальный цифровой компьютер), были Кей МакНалти, Бетти Дженнингс, Бетти Снайдер, Марлин Вескофф, Фрэн Билас и Рут Лихтерман, выбранные из группа людей-калькуляторов в Школе электротехники Мура, Пенсильвания. Они снова изо всех сил пытались получить признание за свои достижения при жизни, и их пренебрежительно называли «дамами из холодильника».
Первые платные программисты; Бетти Джин Дженнингс (слева) и Фрэн Билас (справа) управляют главной панелью управления ENIAC в Электротехнической школе Мура. (Фото армии США из архива Технической библиотеки ARL)
Поскольку в то время не было языка программирования, дамы изучили чертежи машины и использовали ряд внешних переключателей и циферблатов для программирования машины.
Первый язык программирования
В 1952 году американский ученый-компьютерщик Грейс Хоппер разработала систему, которая могла преобразовывать простой английский язык в компьютерный код. Позже он стал COBOL, компьютерным языком, который до сих пор широко используется для обработки данных!
Мать компьютерного программирования; Грейс Хоппер за клавиатурой UNIVAC, c. 1960 г. Неизвестно (Смитсоновский институт), CC BY 2.0, через Wikimedia Commons
COBOL был разработан для UNIVAC I (одного из первых крупномасштабных электронных компьютеров). Как и в случае с другими ранними программистами, Хупер столкнулся с негативной реакцией. Когда она впервые предложила эту идею, люди отнеслись к ней с пренебрежением и сообщили, что компьютеры «не понимают английский язык».
Большинству людей гораздо проще написать заявление на английском языке, чем использовать символы.Поэтому я решил, что обработчики данных должны иметь возможность писать свои программы на английском языке, а компьютеры будут переводить их в машинный код. – Хупер
Univac I в Бюро переписи населения с двумя операторами ок. 1 960 сотрудников Бюро переписи населения США, общественное достояние, через Wikimedia Commons
Первый компьютерный вирус
Первый компьютерный вирус под названием Creeper появился в 1971 году. Он был разработан Бобом Томасом.
По сравнению с современными компьютерными вирусами он был относительно безвреден. Он просто копировал себя на жесткие диски и отображал диалоговое окно с надписью «Я крипер: поймай меня, если сможешь». Это не нанесло ущерба данным, уже хранящимся на компьютере.
Первое антивирусное программное обеспечение
В 1972 году появилось первое «антивирусное» программное обеспечение; Жнец был создан как прямой ответ на Крипера. Он был создан Рэем Томлинсоном (человеком, который также разработал первую систему электронной почты). Reaper — это компьютерная программа «противоядие», которая перемещалась между компьютерами, удаляя экземпляры Creeper с жестких дисков.
Будущее компьютерного программирования
В наши дни трудно представить мир без компьютерных программ и компьютерного программирования. От вашего смартфона до пакетов программного обеспечения, используемых для его проектирования, таких как BricsCAD, все, к чему мы прикасаемся, что видим и с чем взаимодействуем, было создано с помощью компьютерного программирования. Удивительно, что первые программисты столкнулись с преследованием и негативной реакцией.
Учитывая, что на заре компьютерного программирования ключевую роль играло так много женщин, удивительно узнать, что в 2020 году только 8 % программистов были женщинами. Женщины-программисты также занимают 8-е место по величине гендерного разрыва в оплате труда. Однако, поскольку многие молодые женщины проявляют интерес к STEM, все может снова измениться. Только время покажет!
Кто был «первым в мире программистом»?
Кто, по вашему мнению, заслуживает звания первого в мире программиста? Ада Лавлейс со своими теоретическими планами? Жак де Ванкасон, изобретатель системы перфокарт? Может быть, даже ученый-компьютерщик Грейс Хоппер? Дайте мне знать, что вы думаете в комментариях.
Все компьютерные программы, от самых простых до самых сложных, полагаются на очень простые инструкции для выполнения основных функций: сравнение двух значений, сложение двух чисел, перемещение элементов из одного места в другое. В современных системах такие инструкции генерируются компилятором из программы на языке высокого уровня, но ранние машины были настолько ограничены в памяти и вычислительной мощности, что каждую инструкцию приходилось расписывать полностью, и математики взялись за карандаш и бумагу, чтобы вручную разработать формулы для настройки машин — еще до того, как появились машины для настройки.
"Если вы действительно хотите заглянуть в прошлое, начните с Чарльза Бэббиджа", – говорит Армандо Солар-Лезама, доцент Лаборатории компьютерных наук и искусственного интеллекта (CSAIL) Массачусетского технологического института. Бэббидж разработал аналитическую машину — механическое приспособление, оснащенное шестернями и рычагами, — которое можно было запрограммировать на выполнение сложных вычислений. Его соратница Ада Лавлейс (дочь поэта лорда Байрона) тоже осознала потенциал машины и в 1842 году написала то, что считается первой компьютерной программой. Ее длинный алгоритм был создан специально для вычисления чисел Бернулли на машине Бэббиджа — если бы она вообще когда-либо была построена.
Однако к началу 20 века уже существовали рабочие компьютеры, состоящие из разъемных плат и кабелей, соединяющих модули машины друг с другом. «У них были гигантские коммутаторы для ввода таблиц значений», — говорит Солар-Лезама. «В каждом ряду был переключатель с 10 положениями, по одному на каждую цифру. Оператор щелкнул переключателями и перенастроил вилки, чтобы установить значения в таблице».
Этот кропотливый процесс ушел в прошлое в конце 1950-х годов с появлением Фортрана, первого автоматизированного языка программирования. «Фортран позволял использовать настоящие формулы, понятные каждому, — говорит Солар-Лезама. Вместо длинной последовательности инструкций программисты могли просто использовать узнаваемые уравнения и лингвистические имена для адресов памяти. «Вместо того, чтобы говорить компьютеру, что он должен использовать значение по адресу памяти 02739, вы могли бы указать ему использовать значение X», — объясняет он.
Современное программное обеспечение для программирования может брать программы, написанные на очень высоком уровне, и компилировать их в последовательности из миллиардов инструкций, понятных компьютеру. Но перед программистами по-прежнему стоит задача специфицировать свои вычисления с должным уровнем детализации, точности и правильности. «По сути, программирование всегда сводилось к выяснению правильной стратегии, позволяющей машине выполнять нужные вам вычисления, — говорит Солар-Лезама. Многие принципы современных языков программирования, таких как Ruby или JavaScript, восходят к работам таких ранних программистов, как Ада Лавлейс, продолжает он. "Удивительно, что люди думали об одних и тех же проблемах программирования еще до того, как появились компьютеры".
Читайте также: