Для появления языков программирования само существование ЭВМ не было нужно, посему появились языки программирования задолго до появления ЭВМ, их создали для программирования создания рисунка на ткани.
Жаккардовые станки, изобретенные в 1804 году, нуждались в программе, содержавшей перечень инструкций по автоматизированному созданию крупноузорчатых тканей.
Каждая перфокарта означала один проход челнока — какие из нитей разного цвета приподнять, чтобы они в рисунке стали видны, а какие оставить внизу, чтобы их не было видно. Чтобы нарисовать узор на ткани, нужно было сделать набор из тысяч перфокарт. Перфокарты соединялись гибкой лентой в одну длиннейшую полосу, первую перфокарту соединяли с последней, и получалось длиннейшее кольцо программы создания цветного рисунка на ткани. А жаккардовый станок выполнял, бесконечно повторяя, один и тот же цикл операций. Когда станок заканчивал создание ткани с данным рисунком — программа станка тут же снова начинала ткать тот же самый рисунок.
Аналитическая машина Чарльза Бэббиджа тоже нуждалась в программах для работы, поэтому в начале 1840-х графиня Ада Лавлейс написала для нее несколько программ — в том числе для вычисления чисел Бернулли. Эта программа тоже была написана на перфокартах.
Первый язык программирования для компьютеров «Plankalkul» (расчет планов) был разработан Конрадом Цузе в 1943—1945 гг. для его компьютера Z4. С компьютером не получилось, зато был создан первый язык программирования.
Первые ЭВМ программировали в машинных кодах. В наше время эти двоичные языки принято называть языками первого поколения.
Программы, написанные в машинных кодах, не имеют лишних инструкций, а потому работают быстро, но писать их было очень сложно и долго. Да к тому же, даже если набор машинных команд у них одинаков — практически все компьютеры имеют различный набор внешних устройств: дисков, принтеров, устройств ввода — и потому одна и та же программа, написанная в кодах, не могла работать даже на разных компьютерах одного типа, различавшихся своей структурой и количеством устройств ввода и вывода. Она нуждалась в переработке — и сделать ее мог только автор или программист очень высокого уровня.
Тогда как для переноса программы в машинных кодах на машину с другой системой команд ее просто надо было переписывать заново, используя старую программу в качестве указания, что именно надо делать. В итоге созданная реализация ПО для нового компьютера была бы совсем не похожа на старое ПО. Все языки первого уровня — мертвые языки, ими давно никто не пользуется. Вымерли вместе с компьютерами первого поколения, для которых их создавали.
Во избежание лишних проблем, придумали общие стандарты языков программирования и компиляторы с них в машинные коды. Программист пишет, скажем, «разделить А на Б», а компилятор (для данного типа ЭВМ) пишет реализацию деления. Программист пишет «распечатать результат», а компилятор задает подпрограмму подготовки результата в виде строки символов и распечатки этой строки на таком-то принтере (именно на том, который на данной ЭВМ предназначен для распечатки результатов задач).
Языки Ассеблера называют языками второго поколения. Языки Ассемблера, созданные в 50-е годы для древних ЭВМ являются мертвыми, но их принципы работы стали основой для новых языков, к каждому новому семейству процессоров создается язык ассемблера для данной системы команд. Эти языки используются при создании драйверов и подпрограмм ядра операционных систем.
В 1950-е начали создавать языки третьего поколения. Эти языки, их еще называют «языками высокого уровня» (ЯВУ), в зависимости от компилятора, могут работать на разных типах ЭВМ, в исполняемый машинный код их приводит свой компилятор для каждого типа ЭВМ.
В конце 50-х появился Алгол-60 (Algol — от ALGOrithmic Language), на трансляторах для него писали программы в 60-е и в 70-е годы. Впоследствии Алгол-60 породил Алгол-68, значительно более продвинутый инструмент программирования. Ныне этот язык уже практически не используется, но на его основе было создано много других языков — Паскаль, Ада. Паскаль впоследствии дал толчок в создании Делфи (Delphi).
Так что если Алгол-60 сегодня язык мертвый, то его правнук Delphi — живее всех живых. Его умение создавать GUI и работать с базами данных, а более того — бесплатное распространение упрощенных версий компилятора, снискали ему славу среди пользователей. Сегодня существуют компиляторы Delphi
Во второй половине 50-х кроме Алгола появились еще Фортран (FORmula TRANslator — переводчик формул), Лисп (LISt Processing language — язык обработки списков) и Кобол (COmmon Business Oriented Language — Обобщенный бизнес-ориентированный язык).
Фортран существует и по сей день, в начале 60-х были созданы трансляторы Фортрана, работавшие на многих компьютерах семейства IBM, и, ввиду его распространенности, начали создавать компиляторы Фортрана для других компьютеров — в 60-е Фортран де-факто стал одним из стандартов программирования. Впоследствии после Фортрана-4 были Фортран-66, Фортран-77… последний на сегодняшний день стандарт Фортрана — Фортран-2008.
Лисп — язык обработки списков. Разработан целый спектр разнообразных версий языка для исполнения разных типов задач.
Кобол — в 90-е годы на Коболе производилась обработка примерно 90% всех финансовых транзакций мира.
Являются ли вышеназванные ЯВУ живыми? Определенно — да. Достаточно совершить поиск в базах данных работодателей, чтобы убедиться, есть вакансии и для программистов и на Форатране, и Лиспе, и на Коболе. А уж программисты на Delphi — дорогой и очень востребованный товар.
Когда в 70-е годы появились персональные ЭВМ (они же ПЭВМ), число новых языков программирования начало увеличиваться в геометрической прогрессии. Все началось с С.