logo

История программирования: кто и когда создал первый язык

Галина Чепурко
Редактор полезных и длинных текстов в MC.today
Розкажіть про статтю:

В 1822 году английский математик Чарльз Бэббидж начал работу над разностной машиной (механическим аппаратом, который должен был создавать таблицы логарифмов. – Прим. ред.). Он надеялся заменить ею людей, которые вычисляли астрономические, навигационные и математические таблицы и иногда допускали ошибки. Эта машина стала прообразом современного компьютера и дала начало программированию.

Редакция MC.today рассказывает, как появилось программирование и кто стоял у его истоков.


Ада Лавлейс: первый программист в истории

Ада Лавлейс была дочерью английского поэта Джорджа Байрона, но с детства увлекалась математикой, как ее мать Анна Изабелла Байрон. Учителями девочки были лучшие математики: Огастес де Морган, автор законов де Моргана (логические правила, которые связывают пары логических операций при помощи логического отрицания. – Прим. ред.), и Мэри Сомервилль, которая перевела «Трактат о небесной механике» Пьера Симона (книга о разделе астрономии, который применяет законы механики для изучения движения небесных тел. – Прим. ред.). От последней она узнала о Чарльзе Бэббидже. В 1833 году они познакомились и стали хорошими друзьями.

В 1840 году Чарльз Бэббидж ездил в Турин. Там по приглашению итальянских математиков он читал лекции о своей разностной машине. Луиджи Менабреа, будущий премьер-министр Италии, а тогда молодой ученый, опубликовал конспект его лекций на французском языке. Друг Бэббиджа, изобретатель Чарльз Уитстон, попросил Аду перевести конспекты на английский и добавить свои комментарии.

Разностная машина Бэббиджа. Источник

Ада переводила конспект больше года, а ее комментарии составили 52 страницы – больше, чем изначальный текст. Она увидела в машине больше, чем видел сам Беббидж. Именно она назвала ее не разностной, а аналитической и пересмотрела ее функции.

Ада Лавлейс считала: в будущем такая машина сможет не только считать алгебраические формулы, а обрабатывать любую информацию, которую в нее заложат: писать музыку, картины и так далее. В своих комментариях она писала, что аналитическая машина покажет «науке такие пути, какие нам и не снились». Она ввела понятия «ячейка» и «цикл». Еще она описала алгоритм вычисления чисел Бернулли (последовательность рациональных чисел, возведенных в одну и ту же степень. – Прим. ред.) – первую компьютерную программу в истории программирования. Но машину Бэббиджа закончили только после ее смерти, поэтому Ада Лавлейс так и не смогла испытать свой код.

Три поколения языков программирования

Для первых ЭВМ (электронно-вычислительных машин. – Прим. ред.) нужно было писать программы на понятном для них языке – машинном коде. Тогда это выглядело как сочетание единиц и нулей.

Это было неудобно по нескольким причинам:

  • Язык был очень громоздким и неудобным.
  • Люди часто допускали ошибки.
  • Чтобы написать программу, нужно было хорошо знать, как устроена ЭВМ.
  • Для каждой ЭВМ нужно было писать новую программу.
  • Это требовало слишком много времени, труда и внимания.

Вскоре начали применять язык ассемблера. Это понятие включает в себе несколько языков. Кэтлин Бут в 1947 году создала первый язык ассемблера – автокод. Дэвид Уилер в 1948 году написал другой – под EDSAC (тип ЭВМ. – Прим. ред.). Благодаря им программисты могли писать программу в удобном для человека формате: вместо двоичного кода использовали буквы или сокращенные слова, которые отражали суть команды.

Если машинные коды считались первым поколением языков в истории программирования, то язык ассемблера стал вторым. Но и здесь были проблемы. Например, на нем сложно выполнять большие программные комплексы. Так появилось третье поколение – языки программирования высокого уровня.

Первые языки программирования высокого уровня

Языки программирования высокого уровня созданы для быстроты и удобства программирования – они могут коротко описать большие программы. Еще такие языки не привязаны к определенному типу ЭВМ, ведь для каждого из них разработали компилятор (программу, которая переводит текст на языке программирования в машинный код. – Прим. ред.).

Plankalkül, 1946

Неизвестно, как бы появилось и развивалось программирование, если бы не Вторая мировая война. В 1941 году немецкий ученый Конрад Цузе создал механическо-вычислительные устройства Z1, Z2 и Z3. Последнее считают первым программируемым компьютером. Все три были уничтожены во время бомбардировок Берлина в 1944 году.

Реплика Z3. Источник

Уцелел только Z4, усовершенствованная версия Z3 – ученый заранее перевез компьютер в безопасное место. Именно для этой машины в 1948 году Цузе разработал первый язык программирования высокого уровня – Plankalkül.

Из-за войны Цузе был изолирован от научного сообщества Европы и США, поэтому его разработки долго оставались неизвестными. Он полностью их опубликовал только в 1972 году.

Fortran, 1957

Этот язык программирования создали специалисты IBM под руководством Джона Бэкуса для технических и научных расчетов. Ему не нравилось писать программы на ассемблере, и он искал способ «быть ленивым».

Научное сообщество не верило, что появится новый способ программировать быстрее и проще, но восприняло For­tran хорошо. Через три года были версии языка для четырех моделей компьютеров IBM. Он стал настолько популярным, что конкуренты начали выпускать компиляторы For­tran для своих компьютеров.

Язык используется до сих пор, ведь на нем написано много библиотек (сборников подпрограмм и объектов для разработки программ. – Прим. ред.).

ALGOL, 1958

ALGOL разработали в 1958 году как универсальный язык. Над ним работали комитеты из Германии и США. Из-за этого между американцами и европейцами часто возникали споры.

Один из таких – «десятичная буря». Программисты не могли решить, какой символ использовать для разделения целой и дробной части числа. Европейцы хотели использовать запятую, а американцы – точку. Чтобы решить этот спор, разработчики решили, что описание языка будет трехуровневым – подобные мелкие вопросы выносились на второй и третий уровни. Так они сосредоточились на важных вопросах и быстро закончили разработку языка.

Язык стал популярным в научных сообществах от Великобритании до Дальнего Востока СССР.

LISP, 1958

Этот язык разработал Джон Маккарти. LISP применяли для обработки «списков». Поскольку это самый гибкий способ представить информацию в памяти компьютера, язык был очень популярным. За 40 лет его существования у него появилось много диалектов.

COBOL, 1959

Этот язык написали для разработки бизнес-приложений и для работы в экономической сфере. Он максимально приближен к английскому языку и понятен даже неспециалистам. Но на нем нельзя запрограммировать сложные алгебраические вычисления.

Программисты, которые создали ПО и языки программирования

Вот как развивались ПО и языки программирования дальше. Без этих разработок мир был бы другим.

  • Кен Томпсон в 1969 году создал операционную систему UNIX. Это был прорыв для того времени: пользователи могли создавать файловую систему любой глубины, информация выводилась текстом, а не битами и многое другое. Он изобрел язык программирования B, который предшествовал языку С. Еще Кен Томпсон работал в Google, где он стал соавтором языка Go.
  • Деннис Ритчи создал в 1972 году язык программирования С. Если бы не С, то не было бы Win­dows, Lin­ux, C++, Google Chrome, Safari, Fire­fox, MacOSX, PlaySta­tion и Xbox.
  • Дональд Кнут – создатель языка программирования METAFONT, который используют для векторных шрифтов. Он изобрел его в 1979 году.
  • Бьерн Страуструп в 1985 году создал один из самых популярных языков С++.
  • Тим Бернерс-Ли представил в 1989 году World Wide Web. Еще он разработал три фундаментальных технологии: HTML, URL и HTTP.
  • Линус Торвальдс в 1991 году в своей комнате в общежитии Университета Хельсинки создал операционную систему ядра Lin­ux.
  • Расмус Лердорф создал в 1994 году язык программирования PHP. Его используют Face­book и Wikipedia.
  • Брендан Эйч в 1995 году создал язык JavaScript. На нем пишут мобильные приложения.
  • Джеймс Гослинг в 1996 году создал Java, оригинальный компилятор и виртуальную машину, которая перерабатывает код. Благодаря этому существуют Ama­zon, eBay и LinkedIn.
  • Андерс Хейлсберг разработал язык программирования С# в 2001 году. Чаще всего его используют для компьютерных игр и машинного обучения.
  • Гвидо ван Россум в 2008 году, когда работал в Google, создал язык программирования Python. В сообществе Python его называют «доброжелательным диктатором на всю жизнь». Он до сих пор наблюдает за развитием языка и вмешивается там, где необходимо, несмотря на то, что сейчас работает в Drop­box.

Выводы

Вот как появилось программирование: Ада Лавлейс написала первую программу для аналитической машины Бэббиджа, но не смогла ее испытать. Первая работающая программа была написана на машинном коде – двоичной системе из единиц и нулей. Такой код понимала ЭВМ, но для людей он был неудобным. Позже появился язык ассемблера, когда команды нужно было вводить с помощью слов. Но и здесь функционал машин был ограничен, поэтому вскоре появились языки программирования высокого уровня. Благодаря им программирование стали широко использовать в жизни, а не только в научной среде.