В диалоге с компьютером: как эволюционировали языки программирования

От машинного кода до высокоуровневых инструментов общения с компьютерами. Менее чем за век существования языки программирования прошли колоссальный путь эволюции, и темпы их развития только нарастают. Каковы основные этапы? И что ожидать в будущем? Об этом рассказал и. о. заведующего кафедрой программной инженерии ПГУТИ Игорь Макаров.

Фото:

С чего всё началось

"Языки программирования создали, чтобы научиться общаться с машиной и заставлять ее выполнять необходимые команды", — объясняет эксперт.

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

"Машинный код — самый низкоуровневый язык. Это последовательность нулей и единиц (битов), которую процессор исполняет напрямую. Но его использование требует больших мыслительных усилий со стороны человека. Поэтому возник запрос на упрощение".

Знаковым событием в стремлении удовлетворить этот запрос стало появление в конце 1940-х годов ассемблера. Он служит "переводчиком" между понятным человеку текстом и машинным кодом. Команды записывают не как нули и единицы, а в виде мнемоник (коротких понятных обозначений) и регистров (быстрых ячеек памяти процессора):

"Ассемблер — штука суровая и сложная. Но его изучение дает понимание архитектуры компьютера на низком уровне: что происходит внутри процессора, как функционируют регистры и так далее. То есть мы взаимодействуем с компьютером на уровне аппаратной части".

Самые влиятельные языки

Однако ассемблер не закрыл потребность в упрощении и ускорении работы с машинами. Поэтому начали появляться высокоуровневые языки — те, что более приближены к человеческому. В зависимости от задач и по мере развития техники, интернета, мобильных устройств специалисты создавали все новые и новые виды. По мнению Игоря Макарова, одним из важнейших для развития программирования стал BASIC:

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

В области системного программирования наибольшее влияние оказал язык C, созданный в 70-х годах прошлого века для написания ОС UNIX. Он сочетал в себе высокую производительность и простоту кода (по сравнению с ассемблером):

"С хорош тем, что у него есть выход на низкий уровень: работу со стеками, функциями. Он считается универсальным языком, существенно повлиявшим на создание С++ и С#, а также на Java, Go, PHP и другие. Порог вхождения у С высокий, как и у С++, а вот на С# уже можно за 5 минут собрать рабочее приложение. На С и его прямых потомках много что написано — тот же Windows".

Продолжает расти популярность Python. Он был создан еще в 1990-х годах, но со временем оброс огромным количеством библиотек, где можно найти решения для различных областей. При этом его легко изучить — синтаксис похож на обычный текст:

"У Python такое большое комьюнити и столько библиотек, что если необходимо отправить ракету на Марс, то скорее всего, вы там найдете нужный алгоритм. С его помощью делают и игры, и роботов, и научные расчеты, и анализ больших данных, и нейросети. Уровень владения оценивается именно по количеству изученных библиотек".

В приоритете — скорость

Игорь Макаров отмечает, что развитие языков программирования обусловлено коммерческой составляющей индустрии. Важнейшим фактором является скорость выполнения задач бизнеса:

"Поэтому на передний план выходят языки программирования, которые позволяют вести разработку быстро, на верхнем уровне. Сейчас в выполнении этой задачи помогает искусственный интеллект. Он хорошо умеет писать шаблонные коды, избавляя программистов от рутины. Сам ИИ создавать новые языки не может. Он лишь повторяет то, что в него заложили".

Впрочем, для использования ИИ требуются языки для описания цепочек рассуждений, формирования промптов. Остается запрос на безопасное системное программирование, ускорение вычислений, в том числе квантовых, и работы с большими данными:

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

В цене — полиглоты

Эксперт ПГУТИ констатирует, что роль разработчика на рынке уже меняется. Сейчас важнее понимать архитектуру данных, а уже на каком языке ты будешь ее реализовывать — второй вопрос. Поэтому в цене — инженерное мышление.

В то же время имеет место тренд на полиглотность. По мнению Игоря Макарова, на его появление повлиял человеческий фактор. По мере развития индустрии разработчики осваивают всё новые и новые языки, опасаясь, что их знания устаревают, и они будут не нужны рынку. Однако такая полиглотность стала востребована в больших проектах.

"Появилось такое понятие, как Fullstack-разработчик, который знает все группы языков, необходимых для выполнения поставленной задачи. Они высоко ценятся. В целом же для рынка нормально, если программист знает 2-4 языка. Однако нужно понимать, что в плане образования уже нет универсальных программ подготовки. Студентов обучают языкам по направлениям, базе, и чтобы не терять время, лучше в параллели изучать и другие языки программирования", — советует эксперт.

Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.

Фото на сайте

Все фотогалереи

Новости раздела

Все новости
Архив
Пн Вт Ср Чт Пт Сб Вс
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 1 2 3 4