Найти тему
Максим Антоныч

Как развивались языки программирования?

Современный мир очень трудно представить без компьютеров и машин, которые упрощают жизни обычных людей. Но ведь не мало важным фактором является то, что, помимо создания самого компьютера, его необходимо ещё и обучить чему-то. Заставить выполнять ту или иную работу. Именно за это и отвечают языки программирования - они упрощают "общение" между человеком и компьютером. Вот про них мы сегодня и поговорим.

Для начала стоит ввести понятие "программы". Это алгоритм решения задачи компьютером, написанный на языке, понятном компьютеру.

Язык программирования, в свою очередь, имеет два определения:

  • формальная знаковая система, предназначенная для записи компьютерных программ.
  • Язык программирования определяет набор правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — компьютер) под её управлением.
Интересный факт: Со времени создания первых программируемых машин человечество придумало более восьми тысяч языков программирования

Для полного погружения я предлагаю отправиться к истокам программирования, а именно в начало 20 века к машине Тьюринга.

-2
Алан Тьюринг — английский математик, логик, криптограф и пионер информатики. Он известен своими работами в области теории алгоритмов, математической логики и криптографии. Тьюринг внёс значительный вклад в развитие информатики и искусственного интеллекта.

Машина Тьюринга — это абстрактная вычислительная машина, состоящая из трёх элементов: бесконечной ленты с ячейками, автомата (головки) для чтения и записи и программы. Головка может считывать содержимое ячейки, стирать, записывать и перемещаться влево или вправо. Лента разделена на квадратики, несущие один знак (нуль или единицу). Её действия определяются программой, записанной в виде таблицы переходов между состояниями. Машина Тьюринга используется для решения математических задач и моделирования работы компьютера.

-3
Грубо говоря, перед нами почти-почти первый компьютер. Правда, эта штука поэтому так и называется - "машина", потому что не является полноценным компьютером. А компьютер, в свою очередь, является физической системой, состоящей из множества компонентов, таких как центральный процессор, оперативная память, жёсткий диск и другие устройства.

Очень важным скачком в программировании стало появление машинного кода.

  • Машинный код — это набор инструкций, которые понимает и выполняет процессор компьютера. Он состоит из определённой последовательности цифр (битов или двоичного кода), например, 10110000 01100001. Каждая команда в машинном коде относится к определённому действию, которое должен выполнить процессор, например, сравнение двух чисел или перемещение числа в определённую ячейку памяти.
  • Команды, поступающие в процессор, являются совокупностью нулей и единиц, т.е. числами, поэтому программа представляет собой последовательность чисел, называемую машинным кодом.
-4

Но ведь этот код с командами нужно как-то и где-то хранить. Поэтому здесь на сцену выходит перфокарта - главная флешка прошлого века.

-5

Кусок картона с дырочками, который использовался в качестве хранилища информации вплоть до 2000-х годов и вмещал около 80 байт данных.
Присутствие или отсутствие дырки в определённых местах на карте - первый аналог единиц и нулей из современных систем счисления. Разное расположение дырок на карте даёт разную информацию, которую потом считывает компьютер.

Теперь мы можем полноценно перейти к самому первому языку программирования.

Ассе́мблер (от англ. assembler — сборщик) — транслятор программы из текста на языке ассемблера, в программу на машинном языке.
Как и сам язык, ассемблеры, как правило, специфичны для конкретной архитектуры, операционной системы и варианта синтаксиса языка, поскольку работают с мнемониками машинных инструкций определённого процессора.

-6
Поэтому много лет назад был создан язык ассемблера, в котором коды операций обозначались буквами и сокращениями английских слов, отражающих суть команды. Например, команда mov ax, 6 означает: «переместить число 6 в ячейку памяти AX».
Уже в 1950 году была разработана первая программа-транслятор, которая переводила в машинный код программы, написанные на понятном человеку языке.

Языки низкого уровня — это языки программирования, которые близки к машинным кодам и напоминают систему номеров, присваиваемых командам компьютерного процессора.
Python — это язык высокого уровня, а ассемблер — низкого. Одна команда Python при выполнении вызывает сразу несколько операций процессора, а каждая команда ассемблера — всего одну операцию.

Ниже будет пример написания одной и той же программы на питоне и на ассемблере:

на Phyton
на Phyton
на Ассемблере
на Ассемблере

После Ассемблера человечество быстрыми темпами начало придумывать всё более новые и совершенные языки программирования. Со временем пришлось даже разделять их на поколения.

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

  1. Первое поколение (1GL): машинные языки, языки программирования на уровне команд процессора конкретной машины.
  2. Второе поколение (2GL): ассемблеры (автокоды), языки программирования, облегчающие переход от машинного кода к более удобным мнемоническим обозначениям команд.
  3. Третье поколение (3GL): языки высокого уровня (ЯВУ), дающие более высокий уровень абстракции по сравнению с ассемблерами.
  4. Четвёртое поколение (4GL): среды разработки четвёртого поколения, предназначенные для реализации крупных проектов, повышения их надёжности и скорости создания, ориентированные на специализированные области применения.
  5. Пятое поколение (5GL): языки программирования, рождённые в середине 90-х годов, включают средства автоматизированного создания прикладных программ с помощью визуальных средств разработки без знания программирования.
-9

Ну и под конец хотелось бы поговорить про самые перспективные на сегодняшний момент языки программирования.

  • Python — универсальный язык программирования, популярный в науке о данных, искусственном интеллекте, веб-разработке и автоматизации. В 2024 году Python будет широко применяться в машинном обучении, квантовых вычислениях и метавселенных.
  • Rust — язык системного программирования, известный своей производительностью, безопасностью и многопоточностью. В 2024 году его будут чаще использовать для разработки операционных систем, игровых и браузерных движков.
  • TypeScript — это суперсет языка программирования JavaScript со строгой типизацией. Он помогает быстро обнаруживать и исправлять ошибки в коде, повышая производительность разработки. TypeScript выбирают для создания масштабных веб-приложений, и его популярность будет расти в 2024 году благодаря интеграции с популярными фреймворками и поддержке современных функций JavaScript.
  • Julia — высокоуровневый язык программирования для математических вычислений, сочетающий гибкость динамических языков с производительностью компилируемых языков. В 2024 году он будет востребован исследователями, инженерами и специалистами по обработке данных, нуждающимися в эффективных инструментах для научных вычислений.
  • Kotlin — статически типизированный язык программирования, используемый в основном для серверной и мобильной разработки. Он был признан Google одним из языков разработки приложений для операционной системы Android. В 2024 году Kotlin будет широко использоваться для создания надёжных приложений для Android.

Самый лучший способ поддержать канал и автора, это поставить лайк под этой статьёй и подписаться. Заранее спасибо!)