Языки программирования: что это такое, зачем нужны и какой выбрать новичку

Разбираемся, как устроены языки программирования, почему их так много и чем они отличаются от алгоритмов.

Что такое язык программирования

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

Вот, например, программа на языке JavaScript:

<script>
alert( 'Это программа на JavaScript' );
</script>

Здесь слово alert — лексика, один из принятых в языке методов обработки текста. Текст в одинарных кавычках, скобки, точка с запятой — правила синтаксиса. А то, что нужно сделать в итоге, — семантика. Получив эти инструкции, компьютер выведет на экран всплывающее окно с кнопкой и сообщением: «Это программа на JavaScript».

Тимур Тукаев

Фанат Free Software Foundation, использую Linux и недолюбливаю Windows. Пишу истории про кодинг и программы на Python. Влюблен в LISP, но пока что не умею на нем программировать.


Чем языки программирования отличаются от алгоритмов

Программы нужны для того, чтобы машина сделала что-то полезное. Это невозможно, если нет чёткого порядка действий и правил их выполнения — алгоритма.

Алгоритм работает как маршрут в навигаторе: «Из пункта А едем в пункт Б, поворот через 150 метров». Англичанин понимает его по-английски, китаец —
по-китайски, а мы с вами — по-русски. Языки разные, а порядок действий один и все должны добраться до нужного места.

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

if (b != 0) {
printf (("a / b = %lg\n"), a / b);
} 
else {
printf ("На ноль делить нельзя");
}

То же самое, но на Python.

if b != 0:
print(‘a / b = ’ + a / b)
else:
print(‘На ноль делить нельзя’)

В программе на Python нет фигурных скобок и точек с запятой, но алгоритм и результат работы такой же, как у программы на C, да и слова похожи.

Перейти с одного языка программирования на другой легко: если знаешь Java — быстро начнёшь кодить, например, на Python или C#.

Как компьютер понимает разные языки программирования

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

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

Внутри компиляторов и интерпретаторов — сложные наборы правил по превращению языка программирования в машинный код, понятный компьютеру. Это тоже программы. Их пишут создатели нового языка — на каком-то другом, уже существующем. Например, интерпретатор Python написан на C, а сам C — на ассемблере, практически машинном коде.

Что такое библиотеки

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

Например, в Python есть модуль — библиотека yandex_translate, которая переводит тексты на разные языки. Программистам не надо создавать программу-переводчик с нуля, достаточно подключить этот модуль и обратиться к нему из любой точки кода.

# подключаем модуль
from yandex_translate import YandexTranslate
# вводим ключ из настроек Яндекс.Переводчика
YANDEX_API_KEY = ‘Ваш API KEI' 
try:
# проверяем, что ключ правильный
translate_obj = YandexTranslate(YANDEX_API_KEY) 
# вызываем модуль, и он переводит текст из string на нужный язык.
t = translator_class.translate(string, 'en-ru') 

Зачем нужны новые языки, если есть много старых

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

Так появился, например, гибкий и мощный язык программирования С, который сейчас используют повсеместно. По одной из легенд — языку уже около 50 лет, — программисты из AT& T Керниган и Ритчи захотели перенести любимую игру с главного сервера компании на офисный компьютер. Но там не было операционной системы, а переписать имеющуюся показалось слишком сложно, потому что она была полностью на ассемблере. Тогда они решили создать свой язык программирования, который назвали C (си).

Сколько живут языки программирования

Языки живут, пока люди пользуются написанными на них программами. Поэтому старички, такие как COBOL, Ada или Fortran, всё ещё в деле.

На языках Ada и Fortran написана часть кода операционных систем семейства Unix, а для COBOL, похоже, вовсе наступил ренессанс: из-за кризиса, связанного с пандемией, приходится вносить изменения в старые бизнес-системы и программы для службы соцобеспечения, которые написаны именно на нём. Кроме того, по данным Reuters, 43% банковских систем и 95% банкоматов США так или иначе используют COBOL. Так что Америка ищет программистов-ветеранов.

А вот Алголу повезло меньше. Он практически мёртв, хотя и был когда-то не менее популярен, чем COBOL.

Что лучше учить новичку

Если интересуют красивые эффекты для веба — попробуйте начать с простейшего набора из JavaScript, CSS и HTML. Со временем подтянете PHP и сможете создавать на нём полноценные сайты. Если же вам интереснее программы, сервисы и скрипты — посмотрите в сторону Python, Java или С#. Для новичка может быть сложновато, зато это мощные универсальные языки, которые подходят практически для любых задач. Под мобильную разработку учите Swift для iOS и Java/Kotlin для Android. Но с ними придется попотеть и лучше, чтобы был хоть какой-то опыт в программировании.

На этот вопрос нет однозначного ответа, как и языка программирования, пригодного на все случаи жизни. Чтобы выбрать какой-то для старта, надо сначала определиться: что вы планируете делать и какую профессию хотите получить.

Где учиться программированию?


У Skillbox — более 40 крутых курсов по программированию. Разработка на Java, PHP, C#, Python и других языках, Data Science, разработка игр на Unity, кибербезопасность, разработка мобильных приложений…

Начать учиться можно сразу, а платить за учёбу — позже. Обучение онлайн, в удобном для вас режиме.

А ещё мы помогаем с трудоустройством. Приходите!

Хочешь получать крутые статьи по программированию?
Подпишись на рассылку Skillbox