«Устаревший» или гениальный? Что скрывает язык Паскаль
В мире программирования, где технологии сменяют друг друга с головокружительной скоростью, Pascal представляет собой удивительный феномен долголетия. Созданный еще в 1970 году швейцарским ученым Никлаусом Виртом, этот язык изначально задумывался как учебный инструмент для обучения студентов структурному программированию. Однако его влияние оказалось настолько значительным, что и сегодня, спустя более полувека, Паскаль продолжает жить — как в образовательных программах школ и вузов, так и в некоторых прикладных областях.

Что делает Pascal особенным среди множества современных языков? Почему преподаватели информатики упорно включают его в учебные планы вместо более актуальных Python или JavaScript? И имеет ли смысл изучать Паскаль в 2025 году? Давайте разберемся в феномене programming language, который заслуженно считается одним из самых удобных для обучения и при этом оставил неизгладимый след в истории программирования.
История языка Pascal и его эволюция
Чтобы понять феномен Паскаль, необходимо погрузиться в контекст его появления и проследить эволюцию от чисто академического проекта до programming language, определившего целую эпоху в программировании. История Pascal — это история поиска простоты и структурности в мире, где эти качества только начинали цениться.
Кто и зачем придумал Pascal?
В конце 1960-х годов программирование находилось на критическом этапе развития. Растущая сложность программных проектов требовала новых подходов, а старые методы, основанные на свободном использовании оператора GoTo, приводили к появлению запутанного «спагетти-кода», который было сложно читать, анализировать и тестировать.
Именно в этот момент швейцарский ученый Никлаус Вирт, участвовавший в комитете по разработке стандарта языка Algol-68, увидел необходимость в создании более структурированного и интуитивно понятного programming language. Разочарованный излишней сложностью Algol-68, Вирт решил создать язык, который был бы не только мощным инструментом, но и эффективным средством обучения.
В 1970 году на свет появился Паскаль, названный в честь французского математика и философа Блеза Паскаля. Основная цель Вирта была революционной для своего времени — создать programming language, который бы не просто позволял писать программы, но учил студентов писать хороший, структурированный код.
Ключевые этапы развития
1970: Рождение оригинального Pascal. 1983: Borland представляет Turbo — среду разработки с быстрым компилятором, сделавшую язык доступным для персональных компьютеров. 1986: Появление Object — объектно-ориентированной версии языка, разработанной для Apple. 1990-е: Расцвет Delphi — среды разработки на базе Object, ставшей популярной для создания приложений под Windows. 1997: Появление Free — реализации с открытым исходным кодом. 2000-е: Развитие Lazarus и FPC (Free Compiler) как альтернативы коммерческим решениям. 2007: Южный федеральный университет выпускает PascalABC.NET — реализацию Паскаль для платформы .NET.
Влияние Pascal на другие языки
Значение Паскаль для мира программирования сложно переоценить. Этот язык стал своеобразным мостом между ранними языками и современными решениями, заложив фундамент для множества последующих разработок.
Delphi, выросший из Object Pascal, значительно расширил возможности programming language, добавив мощные инструменты для разработки графических интерфейсов и работы с базами данных. Модульность и структурность Паскаль оказали влияние на дизайн Java и C#, а концепции, представленные Виртом в своих последующих проектах (Modula-2 и Oberon), нашли отражение в языке Go от Google.
Даже в синтаксисе современного Python, который сегодня часто рассматривается как альтернатива Pascal в образовании, можно заметить следы влияния Algol-подобных языков, к которым относится и Pascal.
Таким образом, Паскаль, изначально задуманный как чисто образовательный язык, оказался на перекрестке истории программирования, оказав глубокое влияние на дальнейшее развитие этой области и заслуженно заняв место в пантеоне классических programming language.
Основные особенности языка Pascal
Паскаль выделяется среди многих языков программирования особым набором характеристик, которые делают его одновременно мощным и доступным для освоения. Рассмотрим ключевые особенности, определившие его успех как в образовательной сфере, так и в практическом применении.
Императивность и структурность
Паскаль относится к семейству императивных programming language, что означает последовательное выполнение команд. В отличие от декларативных языков, где программист указывает, «что» нужно сделать, в Pascal, как и в других императивных языках, разработчик должен описать, «как» именно это сделать.
Основа структурности Паскаль заключается в четком делении программы на логические блоки:
- Программа состоит из подпрограмм (процедур и функций)
- Каждая подпрограмма имеет свою область видимости переменных
- Код выполняется строго последовательно, результаты записываются в память
- Каждая следующая команда может использовать данные, полученные при выполнении предыдущей
Именно эта особенность сделала Паскаль идеальным языком для обучения — он приучает программистов к дисциплине и порядку с первых шагов.
Простота и лаконичность синтаксиса
Синтаксис Pascal интуитивно понятен даже начинающим. Вирт намеренно использовал английские слова вместо сложных символов, чтобы сделать код более читаемым:
program SimpleExample; var x: integer; begin x := 10; if x > 5 then writeln('x больше 5') else writeln('x меньше или равен 5'); end.
Обратите внимание на характерные особенности:
- Блоки кода обозначаются словами begin и end, а не скобками
- Оператор присваивания := визуально отличается от оператора сравнения =
- Условные конструкции используют говорящие слова if, then, else
- Программа завершается точкой после end
Эта прозрачность синтаксиса значительно снижает когнитивную нагрузку при обучении и позволяет сконцентрироваться на алгоритмической составляющей.
Строгая типизация
Это язык со строгой (статической) типизацией. Это означает, что:
- Каждая переменная имеет строго определенный тип данных
- Тип переменной не может изменяться в процессе выполнения программы
- Система типов предотвращает многие ошибки на этапе компиляции
Например, следующий код вызовет ошибку компиляции:
var a: integer; b: real; begin a := 10; b := 5.5; a := b; { Ошибка: нельзя присвоить значение типа real переменной типа integer } end.
Такой подход кажется ограничивающим после работы с динамически типизированными programming language, однако он формирует у начинающих программистов правильное понимание типов данных и предотвращает множество потенциальных ошибок.
Модульность и процедурность
Паскаль позволяет разбивать программу на логические блоки — процедуры и функции:
- Процедуры выполняют действия, но не возвращают значения
- Функции, как и процедуры, выполняют действия, но дополнительно возвращают результат
- Каждый модуль имеет свою область видимости переменных
Это разделение способствует созданию более структурированного и понятного кода:
program ModularExample; procedure PrintMessage; var message: string; begin message :='Привет, мир!'; writeln(message); end; function Square(x: integer): integer; begin Square := x * x; end; begin PrintMessage; writeln('Квадрат числа 5: ', Square(5)); end.
Основные версии и диалекты
С момента создания Паскаль породил множество диалектов и реализаций:
- Turbo — коммерческая реализация от Borland, обеспечившая популярность языка на PC. Отличалась высокой скоростью компиляции и исполнения.
- Object — объектно-ориентированное расширение, ставшее основой для языка Delphi.
- Delphi — среда разработки с собственным диалектом, ориентированная на создание приложений с графическим интерфейсом.
- Free — свободная реализация, совместимая с Turbo и Delphi. Поддерживает кросс-платформенную разработку.
- Lazarus — бесплатная среда разработки для Free, напоминающая Delphi.
- PascalABC.NET — современная реализация, интегрированная с платформой .NET, развиваемая Южным федеральным университетом.
Эта многогранность обеспечила языку долгую жизнь и позволила ему эволюционировать вместе с индустрией программирования, при этом сохраняя свои ключевые принципы — простоту, структурность и надежность.
Почему Pascal до сих пор преподают в школах и университетах?
В эпоху, когда рынок труда требует знания Python, JavaScript и других современных языков, факт преподавания в образовательных учреждениях может вызывать недоумение. Однако за этим выбором стоит четкая образовательная логика, которая остается актуальной и сегодня.
Структурное программирование как основа IT-образования
Главная ценность в образовании — его способность формировать правильное алгоритмическое мышление. В отличие от многих современных programming language, которые предлагают множество «магических» решений и абстракций, Паскаль требует от учащихся понимания фундаментальных концепций:
- Последовательность выполнения — понимание того, как инструкции выполняются одна за другой
- Ветвление — освоение логики принятия решений в программе
- Циклы — изучение повторяющихся операций и управления ими
- Модульность — навык разбиения задачи на подзадачи с помощью процедур и функций
Эти базовые концепции составляют основу структурного программирования и являются фундаментом для освоения любых других парадигм. Как метко заметил сам Никлаус Вирт, «программы должны быть написаны для людей, которые будут их читать, а не для компьютеров, которые будут их выполнять».
Почему школы выбирают Pascal, а не Python?
Этот вопрос часто возникает в современных дискуссиях об IT-образовании. Рассмотрим ключевые факторы, которые до сих пор склоняют чашу весов в пользу Паскаль:
Критерий | Pascal | Python |
---|---|---|
Синтаксическая строгость | Требует явного объявления всех переменных, четкого структурирования блоков кода | Позволяет более свободный стиль, переменные не требуют объявления |
Типизация | Строгая статическая типизация обнаруживает ошибки на этапе компиляции | Динамическая типизация может скрывать ошибки до момента выполнения |
Понятность кода | Блоки кода обозначаются словами begin и end, что делает структуру визуально очевидной | Структура определяется отступами, что может приводить к трудноуловимым ошибкам у новичков |
Образовательная ценность | Формирует дисциплину программирования и строгость мышления | Более прагматичен, но может формировать привычку к «быстрым и грязным» решениям |
Исторический контекст | Десятилетия накопленных методических материалов и опыта преподавания | Относительно новый в образовательном контексте |

Диаграмма, сравнивающая Pascal и Python по пяти ключевым критериям, важным в образовательном контексте
Конечно, Python имеет ряд преимуществ, включая актуальность на рынке труда и богатую экосистему библиотек. Однако в контексте базового образования эти преимущества не всегда перевешивают педагогическую ценность Паскаль.
Роль Pascal в олимпиадном программировании
Отдельного внимания заслуживает роль Паскаль в соревновательном программировании. Долгие годы этот programming language был одним из стандартных на олимпиадах по информатике, включая международные соревнования:
- Язык обеспечивает компромисс между скоростью разработки и производительностью выполнения
- Строгая типизация минимизирует количество непредвиденных ошибок во время соревнований
- Простота синтаксиса позволяет сосредоточиться на алгоритмической составляющей задач
Хотя в последние годы C++ и Python значительно потеснили Pascal на олимпиадной арене, многие педагоги продолжают использовать его как первый язык для подготовки школьников к соревнованиям, поскольку переход от Паскаль к C++ гораздо проще, чем прямое погружение в сложности последнего.
В конечном счете, выбор Pascal для образовательных целей — это не дань традиции или результат инертности системы образования. Это осознанный педагогический выбор, основанный на признании того, что programming language, созданный специально для обучения, по-прежнему выполняет эту задачу исключительно хорошо. Как сказал известный информатик Эдсгер Дейкстра: «Изучение программирования имеет мало общего с изучением языка программирования и гораздо больше — с изучением математических моделей и развитием способности создавать абстракции». И в этом контексте он остается превосходным инструментом.
Реальные примеры применения
Распространенное заблуждение гласит, что Паскаль — исключительно учебный programming language, не имеющий практического применения. Однако историческая перспектива и анализ современного программного ландшафта показывают, что это далеко не так. На протяжении десятилетий он и его производные находили применение в самых разных областях разработки программного обеспечения.
Pascal в коммерческом программировании
В 1980-х и начале 1990-х годов он занимал заметное место в индустрии программного обеспечения. Вот несколько исторически значимых примеров его применения:
- Apple Lisa — одна из первых коммерческих систем с графическим интерфейсом была частично написана на Object Pascal. Этот диалект был специально разработан для Apple инженерами под руководством Ларри Теслера в 1986 году.
- TeX — знаменитая система вёрстки, созданная Дональдом Кнутом, использовала Паскаль в качестве основы. LaTeX, основанный на TeX, до сих пор активно используется в научном сообществе для подготовки статей и документов с математическими формулами.
- Ранние версии Skype — популярный мессенджер первоначально был разработан с использованием Delphi (Object Pascal).
- Некоторые модули macOS — Apple активно использовала Object Pascal в своих проектах до середины 1990-х годов.
- Ранние версии Unreal Engine — популярный игровой движок изначально разрабатывался с использованием Delphi, что подтверждает применимость языка для требовательных к производительности задач.
Современное использование: где Pascal живет сегодня?
Несмотря на то, что популярность Паскаль значительно снизилась с появлением более современных programming language, он продолжает использоваться в определенных нишах:
- Total Commander — один из самых популярных файловых менеджеров, многие компоненты которого до сих пор написаны на нем. Программа регулярно обновляется и активно поддерживается.
- FL Studio — популярная цифровая звуковая рабочая станция, разработанная на Delphi, продолжает успешно конкурировать с аналогами, созданными на других языках.
- WinRAR — широко используемый архиватор, также созданный с применением Delphi.
- Промышленная автоматизация — в некоторых отраслях, где требуется программирование микроконтроллеров, различные диалекты Паскаль (особенно Delphi и Object Pascal) продолжают использоваться из-за их надежности и предсказуемости.
- Устаревшие системы — значительный объем «унаследованного кода» (legacy code) на Паскаль все еще функционирует в различных организациях, особенно в сфере бизнес-автоматизации и учета.
Free Pascal и Lazarus: альтернатива для энтузиастов
Особого внимания заслуживает сообщество разработчиков, сформировавшееся вокруг свободных реализаций Pascal. Free Pascal и среда разработки Lazarus представляют собой открытую альтернативу коммерческим продуктам:
- Кросс-платформенность — поддержка более 30 платформ, включая Windows, Linux, macOS, Android, MS-DOS, FreeBSD, Game Boy Advance и даже Nintendo DS.
- Совместимость — высокий уровень совместимости с Turbo Pascal и Delphi, что позволяет относительно легко портировать существующий код.
- Активное сообщество — постоянное развитие и поддержка энтузиастами, регулярные обновления и исправления.
- Возможность создания современных приложений — несмотря на «устаревший» статус языка, с помощью Free Pascal и Lazarus можно разрабатывать вполне современные приложения с графическим интерфейсом, в том числе и для мобильных платформ.
Известные проекты на Pascal и его диалектах:
- Total Commander (файловый менеджер)
- WinRAR (архиватор)
- FL Studio (аудиоредактор)
- Skype (первые версии)
- Кроссплатформенные приложения на Lazarus
- Множество образовательных программ и симуляторов
Таким образом, хотя Pascal и не находится в авангарде современного программирования, он продолжает жить — как в виде наследия, заложенного в действующих программах, так и в активно развивающихся проектах, поддерживаемых энтузиастами. Это лишний раз подтверждает, что хорошо спроектированный язык программирования может оставаться полезным и актуальным на протяжении десятилетий.
Простой пример программы на Pascal
Теоретическое знакомство с Паскаль — это только первый шаг. Чтобы по-настоящему оценить элегантность и понятность этого programming language, давайте рассмотрим практический пример. Напишем простую, но полнофункциональную игру «Камень, ножницы, бумага», которая проиллюстрирует основные концепции программирования на Паскаль .
Напишем игру «Камень, ножницы, бумага»
Логика игры проста: пользователь делает выбор между камнем, ножницами и бумагой, компьютер делает случайный выбор, и программа определяет победителя по классическим правилам (камень бьет ножницы, ножницы режут бумагу, бумага покрывает камень).
program RockPaperScissors; uses crt; { Импортируем модуль для работы с консолью } { Объявляем переменные} var playerChoice, computerChoice: integer; playAgain: char; { Процедура для вывода в консоль меню} procedure ShowChoices; begin writeln('Выберите:'); writeln('1 - Камень'); writeln('2 - Ножницы'); writeln('3 - Бумага'); end; procedure DetermineWinner(player, computer: integer); begin { Выводим ход пользователя и компьютера } writeln('Вы выбрали: ', playerChoice); writeln('Компьютер выбрал: ', computerChoice); { Если выбор равен, то ничья } if player = computer then writeln('Ничья!') { Определяем победителя и выводим сообщение в консоль } else if ((player = 1) and (computer = 2)) or ((player = 2) and (computer = 3)) or ((player = 3) and (computer = 1)) then writeln('Вы победили!') else writeln('Компьютер победил!'); end; { Основной код игры } begin { Инициализируем генератор случайных чисел } randomize; repeat { Очищаем экран для нового раунда } clrscr; { Выводим меню } ShowChoices; { Получаем ход пользователя } write('Ваш ход (1-3): '); readln(playerChoice); { Проверяем, чтобы ввод пользователя соответствовал условию } if (playerChoice < 1) or (playerChoice > 3) then begin writeln('Неверный выбор. Попробуйте снова.'); continue; { Возвращаемся в начало цикла } end; { Генерируем случайный ход компьютера: 1 -- камень, 2 -- ножницы, 3 -- бумага} computerChoice := random(3) + 1; { Определяем победителя} DetermineWinner(playerChoice, computerChoice); { Спрашиваем, хочет ли пользователь сыграть ещё раз} writeln; write('Хотите сыграть ещё раз? (y/n): '); readln(playAgain); { Цикл игры повторяется до тех пор, пока пользователь не введёт n или N } until (playAgain ='n') or (playAgain ='N'); { Благодарим пользователя и завершаем игру } writeln('Спасибо за игру!'); end.
Разбор кода и объяснение ключевых конструкций
Данный пример наглядно демонстрирует ключевые элементы программирования на Pascal:
Конструкция | Пример из кода | Описание |
---|---|---|
Блоки программы | program RockPaperScissors; … begin … end. | Каждая программа имеет заголовок и основной блок, заключенный между begin и end. |
Импорт модулей | uses crt; | Паскаль поддерживает модульную структуру, позволяя импортировать функциональность из внешних библиотек |
Объявление переменных | var playerChoice, computerChoice: integer; | Все переменные должны быть объявлены до их использования, с указанием типа |
Процедуры | procedure ShowChoices; | Процедуры — это блоки кода, которые можно вызывать из разных мест программы |
Параметры процедур | procedure DetermineWinner(player, computer: integer); | Процедуры могут принимать параметры для обработки |
Условные операторы | if player = computer then … else if … else … | Pascal поддерживает стандартные конструкции ветвления |
Составные условия | ((player = 1) and (computer = 2)) or … | Логические операторы and и or для формирования сложных условий |
Циклы | repeat … until (playAgain = ‘n’) or (playAgain = ‘N’); | Цикл repeat-until выполняется до тех пор, пока условие не станет истинным |
Ввод-вывод | readln(playerChoice);, writeln(‘Вы победили!’); | Функции для чтения ввода пользователя и вывода в консоль |
Генерация случайных чисел | randomize;, computerChoice := random(3) + 1; | Инициализация генератора и получение случайного числа |
Этот простой пример демонстрирует, как Паскаль позволяет структурировать код в логические блоки (процедуры), использовать параметры для передачи данных между ними, применять условные операторы и циклы для управления потоком выполнения программы.
Он также иллюстрирует основные принципы структурного программирования: последовательное выполнение (шаги игры), ветвление (определение победителя) и цикличность (повторение игры по желанию пользователя). Все это реализовано с использованием ясного, самодокументируемого синтаксиса, который легко читать и понимать даже начинающим программистам.
Именно эта комбинация структурированности и понятности делает Паскаль идеальным языком для обучения основам программирования и построения алгоритмического мышления.
Альтернативы Pascal: стоит ли изучать этот язык сегодня?
В современном мире, где технологический ландшафт меняется с головокружительной скоростью, важно критически оценивать образовательные инструменты. Pascal, безусловно, имеет историческую ценность и педагогические преимущества, но насколько он актуален в сравнении с другими языками? Давайте рассмотрим его основных «конкурентов» в образовательной сфере и оценим, имеет ли смысл инвестировать время в изучение Паскаль в 2025 году.
Pascal vs Python
Python за последнее десятилетие стал одним из самых популярных языков для обучения программированию, во многом вытесняя Паскаль из образовательных программ. Сравним их ключевые аспекты:
Аспект | Pascal | Python |
---|---|---|
Синтаксис | Структурированный, с чёткими блоками (begin/end) | Основан на отступах, минималистичный |
Типизация | Строгая статическая | Динамическая, «утиная» |
Порог входа | Требует формального объявления переменных и структур | Более низкий, можно сразу писать код |
Применимость | Ограниченное практическое применение | Широко используется в науке о данных, веб-разработке, автоматизации |
Экосистема | Ограниченная, мало современных библиотек | Обширная, тысячи пакетов для любых задач |
Парадигмы | В основном процедурное программирование | Мультипарадигменный (процедурный, ООП, функциональный) |
Python предлагает более гибкий подход и быстрое получение результатов, что делает программирование более доступным и увлекательным для новичков. Однако эта же простота может формировать менее строгое понимание основ программирования, особенно в областях управления памятью и типизации.
Pascal vs C++
C++ часто рассматривается как альтернатива Паскаль для изучения фундаментальных концепций программирования, особенно в контексте олимпиадного программирования:
Аспект | Pascal | C++ |
---|---|---|
Сложность | Проще для начинающих | Более сложный синтаксис и концепции |
Производительность | Хорошая, но уступает C++ | Высокая, прямой доступ к низкоуровневым возможностям |
Управление памятью | Ограниченное, но безопасное | Полный контроль, потенциально опасный |
Распространенность | Падает, в основном в образовании | Широко используется в индустрии |
Современные возможности | Ограничены в стандартном Паскаль, расширены в Delphi | Постоянно обновляется новыми стандартами |
Порог входа для алгоритмов | Низкий, хорошо структурированный код | Выше, но предлагает более мощные инструменты |
C++ предоставляет значительно больше возможностей и востребован на рынке труда, но эта мощь сопряжена с более высокой сложностью и потенциальными проблемами для начинающих программистов.
Стоит ли тратить время на изучение Pascal в 2025 году?
Чтобы ответить на этот вопрос, необходимо понять ваши конкретные цели:
Для педагогических целей: Паскаль остается превосходным первым языком программирования, особенно для младших школьников и тех, кто никогда раньше не программировал. Его структурированность и ясность помогают формировать правильное алгоритмическое мышление и избегать распространенных ошибок начинающих.
Для карьеры в программировании: Сам по себе Паскаль вряд ли откроет двери к трудоустройству (за исключением очень специфических ниш, связанных с поддержкой устаревших систем). Современные работодатели ищут специалистов, владеющих актуальными технологиями — Python, JavaScript, Java, C#, Go и другими.
Для общего развития: Изучение Pascal может дать ценное понимание эволюции языков программирования и концепций структурного программирования, что полезно для общего развития в сфере IT.
Для подготовки к олимпиадам: Хотя Паскаль все еще принимается на многих соревнованиях, большинство современных олимпиадников предпочитают C++ из-за его гибкости и стандартной библиотеки (STL).
Наше мнение: Pascal стоит изучать в 2025 году, если:
- Вы абсолютный новичок в программировании и ищете максимально понятный первый язык
- Вы преподаватель, работающий с младшими школьниками
- Вы интересуетесь историей языков программирования
- Вам необходимо поддерживать существующие системы на Паскаль/Delphi
Для всех остальных случаев более рациональным выбором будет один из современных языков, таких как Python (для быстрого старта), JavaScript (для веб-разработки) или C++ (для высокопроизводительных приложений и алгоритмических соревнований).
Важно помнить, что первый язык программирования — это лишь начало пути. Ключевые концепции, которые вы освоите при изучении — алгоритмическое мышление, структуризация кода, логика программирования — будут полезны при изучении любого другого языка в будущем. В этом смысле, Паскаль остается надежным фундаментом, на котором можно построить успешную карьеру в программировании.
Заключение
Pascal занимает особое место в истории программирования — язык, который был создан специально для обучения, но сумел повлиять на целую индустрию и заложить основы методологий, используемых до сих пор. Мы рассмотрели его путь от академического эксперимента Никлауса Вирта до широко распространенного инструмента разработки и, наконец, до его современного статуса преимущественно образовательного языка.
История Паскаль демонстрирует важный принцип: хорошо спроектированные технологии, делающие акцент на понятности и надежности, могут оставаться актуальными десятилетиями, даже когда индустрия движется в сторону других решений. Строгая типизация, ясный синтаксис и структурный подход Pascal продолжают делать его ценным первым языком для знакомства с программированием.
Значение Pascal выходит далеко за рамки его непосредственного применения. На его принципах строились другие языки, его наследие живет в системах, которые мы используем ежедневно, и самое главное — в методологиях и подходах, которые он помог сформировать. В этом смысле изучение Паскаль в 2025 году — это не просто ностальгическое путешествие в прошлое, а возможность понять фундаментальные принципы, на которых строится вся современная разработка.
Независимо от того, выберете ли вы Pascal в качестве первого языка или предпочтете более современные альтернативы, стоит помнить главный урок его истории: хорошее программирование — это прежде всего ясное мышление, структурированный подход и понимание фундаментальных алгоритмических концепций. А эти навыки остаются ценными независимо от того, какой язык находится на пике популярности сегодня.