самый первый код программирования
Краткая и на 146% точная история языков программирования
Жозеф Мари Жаккар учит ткацкий станок читать перфокарты, создавая первый многопоточный процессор. Изобретение в штыки приняли ткачихи, которые уже тогда что-то подозревали.
Ада Лавлейс, устав от положенного по социальному классу безделья, делает наброски в блокноте, которые станут известны как первая компьютерная программа. С поправкой, конечно, на то, что компьютеров тогда ещё не было.
Алан Тьюринг изобретает вообще всё, королева очарована им, но Тьюринг предпочитает ей мужскую компанию, что заканчивается для него печально.
Позже королева, конечно, остыла и простила Тьюринга, но тот, к сожалению, уже давно был мёртв.
Алонзо Чёрч тоже изобретает вообще всё вместе с Тьюрингом. Но будучи по другую сторону пруда избегает расположения королевы и его последствий.
Джон Бэкус создаёт Фортран — первый язык, который «используют настоящие программисты».
Грейс Хоппер, устав от спарринга с Чаком Норрисом, изобретает первый бизнес-ориентированный язык программирования. Ну а так как всё связанное с бизнесом должно иметь длинное и скучное название, она нарекает его «бизнес-ориентированным языком общего назначения» или COBOL для краткости.
Джон Кемени и Томас Курц решают, что программировать слишком сложно, и им нужно вернуться к базовым принципам. Так что они разбрасывают повсюду номера строк и называют своё детище BASIC.
Никлаус Вирт создаёт Паскаль и пару других языков программирования. Да, кому-то нравится марки собирать, а его хобби было создавать языки программирования.
Никлаус также изобретает Закон Вирта, который делает закон Мура устаревшим, так как разработчики будут писать настолько раздутые программы, что никакие мэйнфреймы не успеют за ними. Как мы знаем, это предсказание сбылось — посмотрите, например, на Electron.js и на его абстракции.
Деннис Ритчи от скуки, нагрянувшей в разгар напряжённого рабочего дня в Bell Labs, решает изобрести «C», который окажет ошеломительное влияние на индустрию: с этого момента все новые языки будут использовать фигурные скобки. «C» так же ввёл ошибки сегментации и другие инновации в программировании.
Так как до конца напряжённого рабочего дня оставалась пара свободных часов, Деннис и его приятели из Bell Labs решили создать пример программы на «C» и случайно создали операционную систему под названием Unix.
Алан Кэй изобретает объектно-ориентированное программирование и называет его Smalltalk. В Smalltalk всё является объектом. Даже объект является объектом.
Ларри Уолл становится проповедником и делает Perl доктриной.
Жан Ишбиа решает создать язык, посвящённый Аде Лавлейс и носящий её имя.
Брэд Кокс и Том Лав решают создать специальную, плохочитаемую версию «C» на основе Smalltalk. Своё детище они назовут Objective-C. И по сей день не нашлось ни одного человека, способного понять синтаксис этого языка.
Бьёрн Страуструп отправляется на своем DeLorean назад в будущее, где замечает, что «C» слишком уж быстро компилируется. Когда же в таком случае будут отдыхать разработчики? Чтобы как-то решить проблему, он добавляет в новый язык всё, что только может придумать, и называет своё детище C++.
Программисты повсеместно используют его, чтобы им не мешали читать xkcd на работе, в то время пока «ещё компилируется».
Роберту Иерузалимски и его друзья решают, что им нужен местный язык сценариев — Lua. Трагическая ошибка при переводе с бразильского приводит к тому, что индексы начинают считать с 1.
Расмус Лердорф создает язык шаблонов для своей персональной страницы в интернете.
Но мир решает использовать язык вообще для всего в вебе, так что Расмус добавляет биндинги к базе данных, и на свет появляется PHP.
Юкихиро Мацумото несчастен и замечает несчастье окружающих. Он создаёт Ruby, чтобы сделать окружающий мир чуточку счастливее. Это работает, и все становятся счастливы.
Брендан Эйх на выходных разрабатывает язык, который позже будет использоваться в каждом браузере в мире и, в конечном итоге, в Skynet.
Первоначально Брендан пошел в Netscape и сказал, что новый язык называется LiveScript, но Java стала популярной как раз во время код ревью, поэтому все решили, что лучше использовать фигурные скобки и переименовать язык в JavaScript.
Из-за проблем с товарными знаками JavaScript был переименован в ECMAScript во время стандартизации, но это уже никому не важно, все продолжают называть язык JavaScript.
Джеймс Гослинг изобретает Java, первый по-настоящему очень подробный объектно-ориентированный язык программирования, в котором шаблоны проектирования преобладают над прагматизмом.
В обиходе появляются фразы вроде «шаблон поставщика менеджера службы поставщика провайдера диспетчера контейнеров».
Андерс Хейлсберг заново изобретает Java и называет её C #, ведь программирование на «C» круче, чем на Java. Все любят новую Java за то, что она совсем непохожа на Java.
Дэвид Хансен создает фреймворк для Ruby под названием Ruby on Rails. Люди не могут понять, что это две разные вещи, и вновь становятся несчастными.
Джон Резиг пишет вспомогательную библиотеку для JavaScript. Почему-то каждый думает, что это новый язык, и целыми днями копипастит сниппеты JQuery из интернета.
Кен Томпсон и Роб Пайк решили создать новый С, но с меньшим быстродействием и большим количеством талисманов в виде сусликов.
Грэйдон Хор тоже хочет создать новый «C». Если другим можно, почему ему нельзя? Он нарекает детище Rust.
Люди требуют, чтобы каждый фрагмент любого программного обеспечения был переписан на Rust СЕЙЧАС ЖЕ. Грейдон не хочет этим заниматься и уходит работать над Swift для Apple.
Андерс Хейлсберг хочет писать на C# в браузерах, так что изобретает TypeScript, который как JavaScript, но с большей долей «Java» и меньшей «Script».
Джереми Ашкенас хочет быть счастливым, как разработчики Ruby, поэтому создает CoffeeScript, который компилируется в JavaScript, но больше похож на Ruby. Но Джереми никогда не становится так же счастлив, как были когда-то разработчики Ruby.
Крис Латтнер делает язык с целью — не быть как Objective-C. В результате Swift похож на Java.
Опережая время: какой язык программирования считается первым
Мы решили разузнать, какой язык программирования был самым первым. Чтобы разобраться в вопросе, начали с зарождения информатики в XIX веке.
Первый программист Ада Лавлейс
Говоря о первом языке, сложно умолчать о первом программисте. Графиня Ада Лавлейс, дочь лорда Байрона, всю свою жизнь посвятила математике и механике, трудилась в свое удовольствие без зарплат и дедлайнов. Результатом ее любви к точным наукам стали описание первой в мире вычислительной машины и создание программы для нее.
Аду Лавлейс часто упоминают вместе с Чарльзом Бэббиджем. Он изобрел первый прототип современного компьютера — логарифмическую машину. Но реализовать ее не удалось: проект разрастался на бумаге, а финансирование от английской короны заканчивалось. Ада познакомилась с ученым при дворе, и с этой встречи началось ее глубокое увлечение его работами.
В 1840 году изобретение Бэббиджа привлекло внимание профессоров из Турина. Он получил приглашение от итальянского правительства, где военный инженер Луиджи Менабреа взял у него интервью о принципах работы разностной машины и издал статью на французском.
В то же время Ада занялась переводом статьи на английский язык, параллельно переписываясь с Бэббиджем. Она не только перевела принцип работы, но и сопроводила его обширным комментарием. В нем она описала алгоритм для вычисления последовательности Бернулли с помощью машины. Кстати, его используют до сих пор, поэтому программа опередила себя на несколько десятков лет. Аду Лавлейс по праву считают первым программистом в истории человечества. В 1980 году в США новый язык назвали в ее честь.
Я не считаю, что структуры головного мозга менее подвластны математикам, нежели движения и свойства звезд и планет; вполне, если выбрать для их рассмотрения правильную точку зрения. Я хотела бы оставить последующим поколениям вычисляемую модель нервной системы.
Машинный код и языки ассемблера
Масштаб работы Бэббиджа и Лавлейс оценили только в ХХ веке, когда научно-технический прогресс шагнул вперед и математики нового поколения увидели, что все это уже было до них.
В 1940-х годах инженеры начали конструировать первые электронно-вычислительные машины — громоздкие, неудобные и с перфокартами. Вот такие:
Для передачи команд использовали цепочки нулей и единиц — машинный код. Мягко говоря, не самый удобный вариант для программистов: приходилось «разговаривать» с компьютером на его языке, хорошо знать составляющие ЭВМ. А еще легко было допустить ошибку при записи кода.
Процесс создания программ требовал автоматизации, и в пятидесятых годах появились первые языки программирования низкого уровня — ассемблеры. Низкий уровень означает, что язык все еще близок к машинному коду, но уже становится проще для восприятия человеком.
Первый высокоуровневый язык Планкалкюль
Часто можно услышать, что первым языком высокого уровня был Fortran (1957). Но еще в разгар Второй мировой войны немецкий ученый Конрад Цузе создал Plankalkül — первый высокоуровневый язык. Он написал на нем49 листов программ для оценки шахматных позиций и документацию в отдельной брошюре. Работы Цузе увидели свет только после войны, в 1972 году.
Планкалкюль — электромеханический язык, так как разрабатывался для компьютера Z4. Автор не создал для него аппаратной реализации. Первый компилятор для Планкалкюля написали в Германии в 2000 году: он называется Plankalkül-2000. Его разработали в Свободном университете Берлина спустя пять лет после смерти Цузе. Это интерпретатор диалекта Планкалкюля — он чуть проще самой первой версии языка. Если вам захочется почувствовать дух истории, на нем даже можно написать простенькую программку.
Plankalkül не нашел практического применения, но вполне соответствует современным стандартам высокоуровневых языков. В нем есть четыре вида переменных, массивы, циклы, кортежи, подпрограммы и условные конструкции. С помощью языка можно выполнять простые арифметические операции и сортировку чисел.
Fortran — первый язык с компилятором
В 1957 году в компании IBM группа программистов, возглавляемая Джоном Бэкусом, представила первый работающий высокоуровневый язык Fortran. В его основе лежит принцип анализа всей строки.
Сегодня Фортрану61 год, но он до сих пор востребован и популярен в Data Science. За это время вышло множество версий, язык эволюционировал и обрел четкие стандарты. Благодаря огромному наследию кода он используется для различных вычислений в научных разработках, геологических изысканиях и астрофизике.
Если вам интересна история, взгляните на потрясающую схему развития языков программирования, начиная с Фортрана.
Как видите, однозначного ответа на вопрос, какой язык программирования придумали первым, не существует. Первую абстрактную программу написала Ада Лавлейс, первым высокоуровневым языком был Plankalkül, но эру высоких информационных технологий начал Fortran. Все они первые в личном зачете, и каждый важен для того или иного этапа развития информационных систем.
Если программирование вас вдохновляет, предлагаем пройти курс «Веб-разработчик». Вы получите представление об основах JavaScript и PHP, примените их на практике и освоите востребованную специальность.
Автор в сфере IT, digital, экономики и финансов. Ведет некоммерческий проект для начинающих писателей «ЛитЦех».
История языков программирования
Первый язык программирования
Знаете ли вы, что первый в мире язык компьютерного программирования был изобретен еще в 1843 году? Ада Лавлейс изобрела первый в истории машинный алгоритм для одной из первых вычислительных машин, который она записала на листе бумаги, потому что в то время компьютеров не существовало! С тех пор языки программирования, очевидно, прошли долгий путь, но для того, чтобы понять историю языков, нужно сначала понять их происхождение.
История языков программирования: хронология
Ниже приведен график истории языков программирования. Первые известные языки были сложными машинными кодами, которые вручную вводились в первые вычислительные машины. Как вы понимаете, компьютерное программирование быстро превратилось из машинных кодов в полностью автоматизированный, читаемый человеком код.
1843: Машинный алгоритм Ады Лавлейс
Ада Лавлейс изобретает первый в истории машинный алгоритм для разностной машины Чарльза Бэббиджа, который закладывает основу для всех языков программирования.
1944-45: Планкалкюль
Где-то между 1944-45 годами Конрад Цузе разработал первый «настоящий» язык программирования под названием Plankalkül (Расчет плана). Язык Zeus (помимо прочего) позволял создавать процедуры, в которых хранятся фрагменты кода, которые можно было вызывать снова и снова для выполнения рутинных операций.
1949: Язык Ассемблера
Ассемблер использовался в автоматическом калькуляторе с электронным запоминанием задержки (EDSAC). Ассемблер был разновидностью низкоуровневого языка программирования, который упростил язык машинного кода. Другими словами, конкретные инструкции, необходимые для работы с компьютером.
1949: Shortcode
Шорткод (или сокращенный код) был первым языком высокого уровня (HLL), предложенным Джоном Макколи в 1949 году. Однако именно Уильям Шмитт реализовал его для компьютера BINAC в том же году и для UNIVAC в 1950 году.
1952: Автокодирование
Автокод был общим термином, используемым для семейства языков программирования. Autocode, впервые разработанный Аликом Гленни для компьютера Mark 1 в Университете Манчестера, был первым в истории скомпилированным языком, который был реализован, что означает, что он может быть переведен непосредственно в машинный код с помощью программы, называемой компилятором. Автокод использовался на первых вычислительных машинах Ferranti Pegasus и Sirius в дополнение к Mark 1.
1957: Fortran
FORmula TRANslation или FORTRAN был создан Джоном Бэкусом и считается старейшим языком программирования, используемым сегодня. Язык программирования был создан для научных, математических и статистических вычислений высокого уровня. FORTRAN до сих пор используется в некоторых из самых передовых суперкомпьютеров в мире.
1958: ALGOL (Алгоритмический язык)
Алгоритмический язык или АЛГОЛ был создан совместным комитетом американских и европейских компьютерных ученых. Алгол послужил отправной точкой для разработки некоторых из наиболее важных языков программирования, включая Pascal, C, C ++ и Java.
1958: LISP (обработчик списков)
Процессор списков или LISP был изобретен Джоном Маккарти в Массачусетском технологическом институте (MIT). Первоначально предназначенный для искусственного интеллекта, LISP является одним из старейших языков программирования, которые все еще используются сегодня, и его можно использовать вместо Ruby или Python. Такие компании, как Acceleration, Boeing и Genworks, по-прежнему используют LISP в своих технических стеках.
1964: BASIC (универсальный символьный код инструкций для начинающих)
Универсальный код символических инструкций для начинающих или BASIC был разработан группой студентов Дартмутского колледжа. Этот язык был написан для студентов, которые плохо разбирались в математике или компьютерах. Этот язык был разработан основателями Microsoft Биллом Гейтсом и Полом Алленом и стал первым товарным продуктом компании.
1970: ПАСКАЛЬ
Названный в честь французского математика Блеза Паскаля, Никлаус Вирт разработал язык программирования в его честь. Он был разработан как средство обучения компьютерному программированию, что означало, что его легко освоить. Apple предпочитала его на заре своей деятельности из-за простоты использования и мощности.
1972: Smalltalk
Smalltalk, разработанный в исследовательском центре Xerox в Пало-Альто Аланом Кей, Адель Голдберг и Дэном Ингаллсом, позволял программистам изменять код на лету. Он представил множество аспектов языка программирования, которые сегодня являются видимыми языками, такими как Python, Java и Ruby. Такие компании, как Leafly, Logitech и CrowdStrike, заявляют, что используют Smalltalk в своих технических стеках.
1972: C (Си)
Разработан Деннисом Ричи из Bell Telephone Laboratories для использования с операционной системой Unix. Он был назван C, потому что был основан на более раннем языке под названием «B». Многие из ведущих в настоящее время языков являются производными от C, включая; C #, Java, JavaScript, Perl, PHP и Python. Он также использовался / до сих пор используется такими крупными компаниями, как Google, Facebook и Apple.
1980/81: Ада
Изначально Ada была разработана командой во главе с Джин Ичбиа из CUU Honeywell Bull по контракту с Министерством обороны США. Названный в честь математика середины 19-го века Ады Лавлейс, Ada представляет собой структурированный, статически типизированный, императивный, объектно-ориентированный язык программирования высокого уровня с широким спектром возможностей. Ада была расширена из других популярных в то время языков программирования, таких как Паскаль. Ada используется в системах управления воздушным движением в таких странах, как Австралия, Бельгия и Германия, а также во многих других транспортных и космических проектах.
1983: Objective-C
Objective-C, разработанный Брэдом Коксом и Томом Лавом, является основным языком программирования, используемым для написания программного обеспечения для операционных систем Apple macOS и iOS.
1991: Python
Названный в честь британской комедийной труппы «Монти Пайтон», Python был разработан Гвидо Ван Россумом. Это универсальный язык программирования высокого уровня, созданный для поддержки различных стилей программирования и приятный в использовании (ряд руководств, примеров и инструкций часто содержат ссылки на Monty Python). Python по сей день является одним из самых популярных языков программирования в мире, который используют такие компании, как Google, Yahoo и Spotify.
1991: Visual Basic
Visual Basic, разработанный Microsoft, позволяет программистам использовать стиль перетаскивания для выбора и изменения предварительно выбранных фрагментов кода через графический интерфейс пользователя (GUI). В наши дни этот язык не используется слишком часто, однако Microsoft частично использовала Visual Basic для ряда своих приложений, таких как Word, Excel и Access.
1995: JavaScript
JavaScript был создан Бренданом Эйхом, этот язык в основном используется для динамической веб-разработки, документов PDF, веб-браузеров и виджетов рабочего стола. Почти каждый крупный веб-сайт использует JavaScript. Gmail, Adobe Photoshop и Mozilla Firefox включают несколько хорошо известных примеров.
2000: C #
Разработанный в Microsoft с надеждой на объединение вычислительных возможностей C ++ с простотой Visual Basic, C # основан на C ++ и имеет много общего с Java. Этот язык используется почти во всех продуктах Microsoft и используется в основном при разработке настольных приложений.
2009: Golang (Go)
Go был разработан Google для решения проблем, возникающих из-за больших программных систем. Благодаря своей простой и современной структуре Go завоевал популярность среди некоторых крупнейших технологических компаний по всему миру, таких как Google, Uber, Twitch и Dropbox.
2014: Swift
Разработанный Apple в качестве замены C, C ++ и Objective-C, Swift был разработан с целью быть проще, чем вышеупомянутые языки, и оставлять меньше места для ошибок. Универсальность Swift означает, что его можно использовать для настольных, мобильных и облачных приложений. Ведущее языковое приложение Duolingo запустило новое приложение, написанное на Swift.
Какие старые языки программирования все еще используются?
Не все языки программирования существуют вечно. Будь то результат развития технологий или просто замена более сложным языком. С учетом сказанного, ИТ специалисты по-прежнему используют некоторые старые языки программирования:
FORTRAN
Первоначальная версия FORTRAN была предложена в IBM Джоном Бэкусом еще в 1953 году. Это был первый компилятор-оптимизатор, который широко использовался в научной работе, поскольку его оптимизированный код выгодно конкурировал с написанным вручную кодом ассемблера. Этот язык до сих пор используется на некоторых из самых быстрых суперкомпьютеров в мире. С 1953 года была выпущена серия обновлений, последняя версия которых была выпущена в 2018 году.
COBOL
COBOL был разработан еще в 1959 году и был одним из первых языков программирования высокого уровня. Несмотря на то, что COBOL был изобретен так давно, он по-прежнему широко распространен. В одних только США 43% банковских систем построены на COBOL, что составляет 95% операций с банкоматами и 80% транзакций, совершаемых лично.
Вывод
История языков программирования увлекательна. Кто бы мог подумать, что алгоритм середины 19 века проложит путь для технологического общества, в котором мы живем сегодня. От ранних машинных кодов до сложного, удобночитаемого кода, на котором сегодня работают наши любимые технологии, языки программирования прошли долгий путь. Несомненно, компьютерное программирование продолжит развиваться, как это происходило в течение последних 150 лет, и интересно смотреть, что принесет будущее.
Если вам нравится iPhone, скажите спасибо ткацкому станку. Краткая история программирования
Код. Сегодня он везде: в светофорах, в наушниках, в вашем чайнике, в автомобиле — куда не покажи пальцем, это будет работать благодаря коду.
Программисты создают настоящее и делают огромный вклад в будущее. Для многих программирование до сих пор кажется чем-то загадочным, сложным и даже странным.
В этом материале вы узнаете, откуда появился код, как он работает, кто стал первым программистом и причём здесь ткацкие станки.
У всех компьютеров общий предок — ткацкий станок
Их считывание происходило двумя методами: электромеханическим и фотоэлектрическим.
Для кого-то это может стать неожиданным фактом, но пра-прадедушкой современных компьютеров являются ткацкие станки. Со стороны так и не подумаешь: что может объединять потрясающие тонкие MacBook с этими огромными махинами.
Общий предок — перфокарты. Да, в компьютерах Mac они не использовались, но зато отлично применялись в компьютерах первого поколения. На них записывались программы.
Только в ЭВМ это были математические задачи, а в станках — картины.
На фотографии изображён рабочий образец Жаккардового станка.
Идею применять перфокарты в ткацких станках впервые реализовал французский изобретатель Жозеф Жаккар в 18 веке. В каждое из отверстий проходила отдельная игла. Благодаря этому появилась возможность создавать полотна с невероятной детализацией.
Некоторые из таких полотен можно сравнить с настоящими картинами, написанными профессиональными художниками.
Это портрет Жозефа Жаккара, сотканный на его изобретении.
Правда, для математических вычислений тогда ещё использовались счёты, которых хватало только для сложения и вычитания. Людям требовалось что-то большее.
Первый «компьютер» придумали в 19 веке
Пускай при жизни Бэббидж не успел реализовать свой проект, вместо него это сделали сотрудники Музея науки в Лондоне. Сборка заняла два года в период с 1989 по 1991 год.
Взяв за основу Жаккардов станок, в 19 веке британский учёный Чарльз Бэббидж придумал машину с физическим механизмом. Перфокарты в ней использовались в трёх сценариях.
Перфокарты операций переключали машину между режимами сложения, вычитания, деления и умножения.
Перфокарты переменных управляли передачей данных из памяти в арифметическое устройство и обратно.
Числовые перфокарты могли быть использованы как для ввода данных в машину, так и для сохранения результатов вычислений, если памяти было недостаточно.
Цитата из описания машины на Википедии.
Как и в ткацком станке, аналитическая машина использовала иглы: когда они проходили через отверстия – механизм внутри приходил в действие. Если отверстий не было, иглы просто отталкивались. По сути эти перфокарты стали первыми программами.
К сожалению, при жизни реализовать своё изобретение ему не удалось.
Портрет Ады.
Идею вычислительных машин подхватила его ученица Ада Байрон. Она, кстати, написала первые в истории компьютерные программы.
Одна из них была сделана для вычисления значений тригонометрической функции с многократным повторением заданной последовательности вычислительных операций. Здесь же Ада ввела понятие «цикла» в программировании. Другая разработка предназначалась для вычисления чисел Бернулли.
Также она выдвинула теорию, что при помощи аналитических машин можно будет решать не только математические задачи, но ещё создавать музыку, картины и тексты. Как она говорила в одной из своих записок:
«аналитически машины укажут науке такие пути, какие нам и не снились». Что же, она предугадала будущее.
Табулируюшая машина сделала работу с данными проще
Компьютеры и табуляторы действительно сделали людей продуктивнее во многих аспектах.
Все эти разработки тогда были уделом сообщества учёных. Массово перфокарты, кроме ткацких станков, нигде особо не использовались. Но всё поменяла табулирующая машина Германа Холерита. Американский учёный придумал её с целью ускорить процесс переписи населения.
Данные о возрасте, количестве детей, роде деятельности, расе и прочем записывались в ячейки на перфокартах. Ручной анализ всех этих данных занял бы значительно больше времени, а машина с этим справилась эффективнее. После этого на табулятор обратили внимание власти, военные, бухгалтеры, и перфокарты стали более массовыми.
Россия тоже внесла свой вклад в развитие компьютеров и программирования
Теперь набор перфораций стал нести в себе не только математические задачи, но и список симптомов у больных.
Стоит сказать ещё одно невероятное крутое устройство придумал в 1832 году российский учёный Семён Корсаков. Без шуток, это была, пожалуй, первая машина для интеллектуального поиска информации.
В основном она использовалась в медицинских учреждениях: пациент вводил информацию о своих симптомах, а машина по ним подбирала вероятное заболевание и список лекарств, необходимых для лечения. Симптомы вводились на перфокарты и поступали в считывающий блок машины.
Перфокарты работают просто, но программистов они сильно ограничивали
Все электронные вычислительные машины работают по бинарному принципу: на глубинном уровне все данные представляют собой набор единиц и нулей. 1 — заряд есть, 0 — заряда нет.
В перфокартах вырез представлял собой единицу. Все программисты тогда, по сути, занимались тем, что вырезали дырочки на картонных листах, и это было намного сложнее, чем писать код сейчас.
Ведь сегодня есть удобные среды для программирования с инспекторами. Если вдруг при компиляции кода случится ошибка, компьютер на неё укажет и предложит вариант исправления. Раньше такого не было.
Одна лишняя перфорация и всё — программа работает совсем иначе. Либо наоборот, где-то перфорации не хватает, и программа тоже будет «крашиться». Позднее программисты придумали компиляторы, которые переводят команды из понятных человеку слов на «язык» компьютера.
Компиляторы упростили работу с кодом
Да-да, так и работает код. Поэтому, кстати, под новые процессоры требуется оптимизировать софт, потому что у всех платформ свои инструкции.
Для более удобной работы с кодом инженеры во всём мире принялись за разработку компиляторов — это специальные алгоритмы для перевода команд, написанных на привычном нам языке, в бинарный код.
Процессоры содержат в себе блоки с числовыми командами, которые отвечают за то, что выполнить. Когда программист принимается за компиляцию написанного им кода, процессор знает, как перевести на понятный ему язык команды, написанный человеком.
Так появился Ассемблер — язык программирования низкого уровня. Низкого, потому что он сочетал в себе элементы привычного человеческого языка и машинного кода. За ним стали развиваться уже языки программирования высокого уровня. В них теперь задействовались только команды, соответствующие нашему привычному человеческому языку.
Языки высокого уровня сделали работу с кодом понятной для всех
Даже в наше время ошибка в коде может привести к плачевным последствиям. Сливы паролей, фотографий и других данных тому пример.
Повышенные требования к компьютерам стали основной причиной, по которой языки ВУ появились. Теперь на ЭВМ создавались сложные вычислительные алгоритмы, которые содержали тысячи строчек кода.
Немудрено, ведь человечество стало запускать ракеты и отправлять людей в космос. Код таких программ в рамках языков программирования низкого уровня был бы слишком сложным для человеческого ума. Найти какие-то ошибки в них было бы невозможно, а их наличие могло бы привести к катастрофическим последствиям.
Языки программирования высокого уровня привели к важному этапу в этой истории. Теперь код стал более понятным, изучать и писать его стало значительно проще.
Компьютеры стали превращаться в устройства для всех.
Благодаря играм появились графические интерфейсы
Недавно попробовал поиграть в ним с компьютером, вообще не представляю, как можно обыграть в этом машину.
Самая первая компьютерная игра появилась в начале 1940-х годов, её создал американский инженер Эдвард Гордон. Однажды за обедом вместе со своими коллегами он обсуждал идею того, что датчики, которые используются в счётчиках Гейгера для калибровки, могут научить компьютер играть. Они решили проверить гипотезу. Скажу заранее — у них всё получилось.
За основу была взята математическая игра «ним», в которой игроки должны брать из кучки неограниченное число предметов за один ход. Проигрывает тот, кто взял последний предмет.
Так появился Nimatron — игровой автомат, весом в тонну, который показали на Всемирной выставке в Нью-Йорке. Он произвёл фурор: на ниматроне было сыграно порядка 100 тыс. партий. Забавно, что 90 тыс. из них выиграла машина.
С этого момента стало ясно, что компьютеры могут не только решать математические задачи, но и развлекать.
Без игр современная техника была бы совсем другой. Правда, компьютерные игры не появиться не могли.
В 1962 году появилась Spacewar! — это первая компьютерная игра в нашем привычном понимании. Она имела двухмерную графику и возможность кооператива для пары участников. Всё, что нужно было делать — это уничтожать космические корабли противника.
Spacewar! создали программисты из Массачусетского технологического университета. Группой руководили Стив Рассел и Мартин Гретц. Игры показали, что компьютеры могут быть понятными многим. Да-да, дело было в графике. Непосредственно сами системы компьютеров того поколения управлялись при помощи ввода команд в терминале.
Карл держит в руках самую первую компьютерную мышь.
Это было дико неудобно. Для игр задействовались манипуляторы — джойстики, с помощью которых пользователи управляли виртуальными объектами. Инженеры переняли некоторые эти принципы при создании элементов человеко-машинного интерфейса.
В 1968 году американский изобретатель Дуглас Карл Энгельбарт представил миру курсор. Он разрабатывался совместно с командой инженеров из Стэнфордского исследовательского института, и эта вещь изменила то, как люди пользуются компьютерами.
В 1972 году в исследовательском центре Xerox PARC началась работа над Xerox Alto — первым компьютером с графическим интерфейсом. Теперь в разработке программного обеспечения появилось понятие «графический интерфейс пользователя» (Graphic user interface).
Разработка программного обеспечения перешла на новую ступень развития. Теперь программисты могли знать, как будет выглядеть софт, и понимать, как пользователи будут с ним взаимодействовать. Более того, существуют среды для визуального программирования.
Apple тоже внесла огромный вклад в развитие компьютеров.
Это способ, в котором создание софта осуществляется при помощи манипулирования графическими объектами. Для проектирования каких-то сложных сервисов они, конечно, не подходят, но для простеньких программ или для ознакомления — в самый раз.
Следом за Xerox Alto в 1980-х вышли Apple Lisa и Macintosh — первые массовые компьютеры с графическим интерфейсом на рынке. Теперь компьютеры научились решать не только научные задачи, но и повседневные.
Интернет — самое масштабное, что было создано с помощью кода
Самым глобальным продуктом, который появился благодаря программированию, однозначно является интернет. Технологию «Всемирной паутины» придумал Тим Бернерс-Ли и Роберт Кайо.
Официальным днём рождения интернета считается 1989 год, тогда Тим работал в CERN над внутренней сетью организации, в которой сотрудники могли бы обмениваться информацией. Он предложил прокачать изначальную идею и создать глобальный гипертекстовый проект. Все документы находящиеся в его пределах должны были связываться между собой гиперссылками.
NeXTcube был выбран не случайно. Система обладала невероятно удобным софтом для разработки.
Для реализации идеи были буквально с нуля изобретён протокол передачи данных HTTP и язык гипертекстовой разметки HTML. В 1990-м началась работа над созданием первого в мире гипертекстового браузера «WorldWideWeb». Самый первый веб-сервер Бернерс-Ли создал на основе компьютера NeXTcube.
Теперь сеть стала способом передачи информации и других цифровых продуктов, созданных при помощи кода. Наступила эпоха интернет-сервисов.
В итоге все привело к интернет-сервисам и искусственному интеллекту
Сегодня вся наша жизнь сфокусирована в одном устройстве, которое помещается в кармане.
В конце 20-го века компьютеры всё равно были устройствами, к которым люди обращались только в крайней необходимости. Потом появились смартфоны, вычислительная мощность росла, в итоге это привело к тому, что интернетом мы стали пользоваться каждый день часами.
Instagram, YouTube, Netflix, Facebook, признавайтесь, кто где дольше сидит? Влияние программистов и сервисов на нашу жизнь стало огромным. По-сути, круглые сутки мы живём с нескончаемом потоке информации. И теперь те принципы программирования, которые были заложены в прошлом веке, стали определять то, как мы едим, путешествуем, отдыхаем, одеваемся и живём.
Некоторые задачи мы вовсе стали доверять компьютерам, начав развивать нейросети. Благодаря искусственному интеллекту, сегодня мы имеем технологию автопилота, и Tesla тому пример, алгоритмы рекомендаций в музыкальных сервисах и даже такие необычные эксперименты, как нейросеть Зелибоба от «Яндекса».
ИИ может выполнять даже творческую работу: Студия Артемия Лебедева имеет собственную нейросеть, которая называется «Николай Иронов» — она создаёт логотипы и дизайн.
Фишка нейросетей состоит в том, что они могут совершенствовать сами себя. Следующим шагом в истории программирования будет этап, когда искусственный интеллект сможет реплицироваться, придумывать новые алгоритмы и писать код. Кто-то боится, что компьютеры вовсе заменят людей и лишат их большинства профессий. Но я больше склоняюсь к мнению историка Юваля Ной Харари:
Исчезновение многих традиционных профессий в самых разных областях от искусства до здравоохранения, отчасти будет скомпенсировано созданием новых. Семейного врача, который занят в основном диагностикой известных болезней и выпиской знакомых лекарств, вероятно, заменит искусственный интеллект.
Но благодаря этому у нас останется больше денег на врачей и лаборантов, которые проводят революционные исследования, разрабатывают новые лекарства или хирургические процедуры.
Искусственный интеллект будет способствовать созданию новых профессий и другим путем. Вместо того, чтобы соревноваться с искусственным интеллектом, люди могут сосредоточиться на его обслуживании и совершенствовании.
Цитата из книги «21 урок для XXI века», глава: «Новый профессии?»
Вот так одна идея использовать перфокарты в ткацких станках смогла создать будущее.