0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#подборки</a></p>
1
<p><a>#подборки</a></p>
2
<ul><li>24 июн 2021</li>
2
<ul><li>24 июн 2021</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><h2>Рефал, Эль и Рапира. Куда пропали советские языки программирования?</h2>
4
</ul><h2>Рефал, Эль и Рапира. Куда пропали советские языки программирования?</h2>
5
<p>Если Рапира для вас - оружие, Эль - крепкое пиво, а Рефал - когда кто-то шепелявит, вам срочно надо узнать о советских языках программирования.</p>
5
<p>Если Рапира для вас - оружие, Эль - крепкое пиво, а Рефал - когда кто-то шепелявит, вам срочно надо узнать о советских языках программирования.</p>
6
<p>Пишет об истории IT, разработке и советской кибернетике. Знает Python, JavaScript и немного C++, но предпочитает писать на русском.</p>
6
<p>Пишет об истории IT, разработке и советской кибернетике. Знает Python, JavaScript и немного C++, но предпочитает писать на русском.</p>
7
<p>О советских языках программирования сегодня говорят редко. Машины, которые их понимают, стали экспонатами технических музеев или решают секретные задачи для оборонки и в закрытых НИИ. А ведь некоторые из них не уступали по мощности более популярным аналогам и содержали очень смелые идеи. Посмотрим на самые знаменитые языки программирования Made in USSR.</p>
7
<p>О советских языках программирования сегодня говорят редко. Машины, которые их понимают, стали экспонатами технических музеев или решают секретные задачи для оборонки и в закрытых НИИ. А ведь некоторые из них не уступали по мощности более популярным аналогам и содержали очень смелые идеи. Посмотрим на самые знаменитые языки программирования Made in USSR.</p>
8
<p>В шестидесятые годы в промышленности и науке уже активно применяли высокоуровневые языки. Учёные в США и Канаде писали программы на <a>Fortran</a>, в Европе и СССР - на Algol. Даже у бизнеса был свой язык программирования - COBOL. Все они поддерживали императивную парадигму: программист подробно описывал каждый этап вычислений с помощью переменных и операторов. Императивная парадигма считалась перспективной и единственно верной.</p>
8
<p>В шестидесятые годы в промышленности и науке уже активно применяли высокоуровневые языки. Учёные в США и Канаде писали программы на <a>Fortran</a>, в Европе и СССР - на Algol. Даже у бизнеса был свой язык программирования - COBOL. Все они поддерживали императивную парадигму: программист подробно описывал каждый этап вычислений с помощью переменных и операторов. Императивная парадигма считалась перспективной и единственно верной.</p>
9
<p>На этом фоне декларативный Рефал казался львом Бонифацием в Сибири. Его создал в 1966 году Валентин Турчин - математик, кибернетик, философ, правозащитник и поэт (Тони Старк, ты ли это?).</p>
9
<p>На этом фоне декларативный Рефал казался львом Бонифацием в Сибири. Его создал в 1966 году Валентин Турчин - математик, кибернетик, философ, правозащитник и поэт (Тони Старк, ты ли это?).</p>
10
Валентин Турчин. Фото: Public Domain<p>Идеи Турчина были как будто из далёкого будущего - он опередил своё время на десятилетия и даже предсказал цифровое бессмертие в своём "<a>Кибернетическом манифесте</a>". Он любил мечтать и размышлять о высоком - даже язык программирования писал для потомков.</p>
10
Валентин Турчин. Фото: Public Domain<p>Идеи Турчина были как будто из далёкого будущего - он опередил своё время на десятилетия и даже предсказал цифровое бессмертие в своём "<a>Кибернетическом манифесте</a>". Он любил мечтать и размышлять о высоком - даже язык программирования писал для потомков.</p>
11
<p>Турчин считал, что человек - это кибернетическая система, а сознание - управляющая программа. Наши кожа, кости и другие ткани постоянно обновляются. А значит, когда-нибудь люди заменят этот материал на кремний или металл, а сознание будет жить неограниченно долго.</p>
11
<p>Турчин считал, что человек - это кибернетическая система, а сознание - управляющая программа. Наши кожа, кости и другие ткани постоянно обновляются. А значит, когда-нибудь люди заменят этот материал на кремний или металл, а сознание будет жить неограниченно долго.</p>
12
<p>Чтобы понять концепцию Рефала, необходимо понять философские воззрения его создателя. Для него эволюция - это череда переходов от мелких систем к более сложным, высокоуровневым. Они воспроизводят системы предыдущего уровня, а потом, в свою очередь, объединяются в системы более высокого порядка. Турчин назвал эти превращения "метасистемными переходами".</p>
12
<p>Чтобы понять концепцию Рефала, необходимо понять философские воззрения его создателя. Для него эволюция - это череда переходов от мелких систем к более сложным, высокоуровневым. Они воспроизводят системы предыдущего уровня, а потом, в свою очередь, объединяются в системы более высокого порядка. Турчин назвал эти превращения "метасистемными переходами".</p>
13
<p>Пример из промышленности: раньше у нас были строительные инструменты, потом появились станки для производства инструментов, а потом сделали ПО для проектирования таких станков.</p>
13
<p>Пример из промышленности: раньше у нас были строительные инструменты, потом появились станки для производства инструментов, а потом сделали ПО для проектирования таких станков.</p>
14
<p>Пример из ИТ: раньше сайты писали на чистом HTML и CSS, потом появились конструкторы сайтов, а затем - no-code-платформы вроде Bubble, на которых можно создавать сами конструкторы сайтов.</p>
14
<p>Пример из ИТ: раньше сайты писали на чистом HTML и CSS, потом появились конструкторы сайтов, а затем - no-code-платформы вроде Bubble, на которых можно создавать сами конструкторы сайтов.</p>
15
<p>В программировании Турчин видел ту же тенденцию. Он создавал Рефал как язык для описания языков - надстройку над всеми языками вроде Fortran, Algol и BASIC. На Рефале можно было создавать новые языки для решения узких задач. Например, Турчин написал транслятор с Algol 60 на язык ассемблера.</p>
15
<p>В программировании Турчин видел ту же тенденцию. Он создавал Рефал как язык для описания языков - надстройку над всеми языками вроде Fortran, Algol и BASIC. На Рефале можно было создавать новые языки для решения узких задач. Например, Турчин написал транслятор с Algol 60 на язык ассемблера.</p>
16
<p>Турчин заложил в Рефал прорывные идеи: функциональное программирование, рекурсия и перехват исключений - позже они разошлись по другим языкам. Но советские инженеры не особо задумывались о миссии языка и метасистемных переходах, поэтому писали на Рефале преобразования алгебраических выражений и переводчики для естественных языков.</p>
16
<p>Турчин заложил в Рефал прорывные идеи: функциональное программирование, рекурсия и перехват исключений - позже они разошлись по другим языкам. Но советские инженеры не особо задумывались о миссии языка и метасистемных переходах, поэтому писали на Рефале преобразования алгебраических выражений и переводчики для естественных языков.</p>
17
<p>Приятно, что Рефал до сих пор жив и развивается. Он стал тем самым метаязыком, на котором учёные создают новые языки программирования. Но не удивляйтесь, если не знаете ни одного из них: эти языки создают специально для военных компьютеров, а не для "Hello, World!". Только вот зачем военным ещё одна армия - армия языков программирования, - известно только самим военным. Гостайна :)</p>
17
<p>Приятно, что Рефал до сих пор жив и развивается. Он стал тем самым метаязыком, на котором учёные создают новые языки программирования. Но не удивляйтесь, если не знаете ни одного из них: эти языки создают специально для военных компьютеров, а не для "Hello, World!". Только вот зачем военным ещё одна армия - армия языков программирования, - известно только самим военным. Гостайна :)</p>
18
<p>Информацию о Рефале можно найти в русскоязычном<a>комьюнити</a>.</p>
18
<p>Информацию о Рефале можно найти в русскоязычном<a>комьюнити</a>.</p>
19
<p>В семидесятые-восьмидесятые годы группа советских инженеров разработала серию суперкомпьютеров "Эльбрус". Они параллельно обрабатывали несколько инструкций и даже обзавелись встроенными типами данных. В то время у операционных систем и языков программирования не было типов - и из-за этого постоянно возникали ошибки вроде деления символа на число. Но главной фишкой "Эльбруса" стала работа с высокоуровневыми языками.</p>
19
<p>В семидесятые-восьмидесятые годы группа советских инженеров разработала серию суперкомпьютеров "Эльбрус". Они параллельно обрабатывали несколько инструкций и даже обзавелись встроенными типами данных. В то время у операционных систем и языков программирования не было типов - и из-за этого постоянно возникали ошибки вроде деления символа на число. Но главной фишкой "Эльбруса" стала работа с высокоуровневыми языками.</p>
20
<p>Специально для него учёный Владимир Пентковский с командой Института точной механики и вычислительной техники разработал язык Эль-76. Он был высокоуровневым, но его часто называли автокодом, потому что языка более низкого уровня в "Эльбрусе" не было. Программы на всех остальных языках транслировались в Эль.</p>
20
<p>Специально для него учёный Владимир Пентковский с командой Института точной механики и вычислительной техники разработал язык Эль-76. Он был высокоуровневым, но его часто называли автокодом, потому что языка более низкого уровня в "Эльбрусе" не было. Программы на всех остальных языках транслировались в Эль.</p>
21
Владимир Пентковский. Фото: "Википедия"<p>Эль был полноценным языком программирования с джентльменским набором возможностей и операторами на русском языке (привет<a>1С-программистам</a>и импортозамещению). Что в нём было:</p>
21
Владимир Пентковский. Фото: "Википедия"<p>Эль был полноценным языком программирования с джентльменским набором возможностей и операторами на русском языке (привет<a>1С-программистам</a>и импортозамещению). Что в нём было:</p>
22
<ul><li>структурное программирование;</li>
22
<ul><li>структурное программирование;</li>
23
<li>циклы;</li>
23
<li>циклы;</li>
24
<li>условные операторы;</li>
24
<li>условные операторы;</li>
25
<li>оператор case;</li>
25
<li>оператор case;</li>
26
<li>обработка исключений.</li>
26
<li>обработка исключений.</li>
27
</ul>Пример кода на Эль-76. Фото: Public Domain<p>Инженеры любили Эль за встроенные типы данных. Сейчас трудно понять, насколько это было круто, - типы есть уже во всех языках. А вот раньше программист заботился о том, чтобы машина чётко поняла, с чем имеет дело: целым числом, символом или логическим выражением. И если вдруг машина начинала перемешивать типы как ей вздумается и без предупреждений выдавать непредсказуемый результат, найти источник таких ошибок было очень трудно.</p>
27
</ul>Пример кода на Эль-76. Фото: Public Domain<p>Инженеры любили Эль за встроенные типы данных. Сейчас трудно понять, насколько это было круто, - типы есть уже во всех языках. А вот раньше программист заботился о том, чтобы машина чётко поняла, с чем имеет дело: целым числом, символом или логическим выражением. И если вдруг машина начинала перемешивать типы как ей вздумается и без предупреждений выдавать непредсказуемый результат, найти источник таких ошибок было очень трудно.</p>
28
<p>Идея русскоязычного программирования была заманчивой и идеально встраивалась в политический курс СССР, но история и экономика распорядились иначе. Сегодня не осталось ни одной машины, которая "разговаривает" на Эль-76. "Эльбрусы" производились для внутреннего рынка, а IBM, Microsoft и Apple продавали компьютеры по всему миру. Под их "железо" писали программы на Fortran, BASIC и C. Поэтому Эль, как и многие другие кириллические языки программирования, умер.</p>
28
<p>Идея русскоязычного программирования была заманчивой и идеально встраивалась в политический курс СССР, но история и экономика распорядились иначе. Сегодня не осталось ни одной машины, которая "разговаривает" на Эль-76. "Эльбрусы" производились для внутреннего рынка, а IBM, Microsoft и Apple продавали компьютеры по всему миру. Под их "железо" писали программы на Fortran, BASIC и C. Поэтому Эль, как и многие другие кириллические языки программирования, умер.</p>
29
<p>В 1985 году предмет "Основы информатики и вычислительной техники" вошёл в основную школьную программу, а в советских школах и институтах начали обучаться программированию на Рапире (расширенный адаптированный поплан-интерпретатор, редактор, архив). До этого о языке знала только элита - читатели научного журнала "Квант" и его "Заочной школы программирования", а создали его в начале восьмидесятых выпускники Новосибирского государственного университета под руководством Геннадия Звенигородского.</p>
29
<p>В 1985 году предмет "Основы информатики и вычислительной техники" вошёл в основную школьную программу, а в советских школах и институтах начали обучаться программированию на Рапире (расширенный адаптированный поплан-интерпретатор, редактор, архив). До этого о языке знала только элита - читатели научного журнала "Квант" и его "Заочной школы программирования", а создали его в начале восьмидесятых выпускники Новосибирского государственного университета под руководством Геннадия Звенигородского.</p>
30
Геннадий Звенигородский, один из создателей Рапиры. Фото: архив академика А. П. Ершова<p>Как и в Эль-76, операторы в Рапире - слова русского языка. При этом у Рапиры были и "локализации" - версии на английском, эстонском и грузинском. Школьники и студенты первых курсов писали на ней прикладные программы:</p>
30
Геннадий Звенигородский, один из создателей Рапиры. Фото: архив академика А. П. Ершова<p>Как и в Эль-76, операторы в Рапире - слова русского языка. При этом у Рапиры были и "локализации" - версии на английском, эстонском и грузинском. Школьники и студенты первых курсов писали на ней прикладные программы:</p>
31
<ul><li>калькуляторы;</li>
31
<ul><li>калькуляторы;</li>
32
<li>алгоритмы поиска и сортировки файлов;</li>
32
<li>алгоритмы поиска и сортировки файлов;</li>
33
<li>простые игры вроде костей;</li>
33
<li>простые игры вроде костей;</li>
34
<li>алгоритмы решения математических задач с помощью рекурсии.</li>
34
<li>алгоритмы решения математических задач с помощью рекурсии.</li>
35
</ul>Пример кода на Рапире. Фото: Public Domain<p>К преподаванию Рапиры подошли серьёзно: детей учили не только составлять инструкции, но и искать ошибки. У Рапиры даже была трассировка вызова процедур - разработчик мог посмотреть состояние переменных на каждом шаге программы.</p>
35
</ul>Пример кода на Рапире. Фото: Public Domain<p>К преподаванию Рапиры подошли серьёзно: детей учили не только составлять инструкции, но и искать ошибки. У Рапиры даже была трассировка вызова процедур - разработчик мог посмотреть состояние переменных на каждом шаге программы.</p>
36
<p>Но и Рапира безвременно почила. Московская школа программирования продвигала европейский Algol, а пару лет спустя его заменил BASIC, который в итоге уступил место Pascal. Так что, несмотря на современность и мощность, у Рапиры просто не было шансов остаться даже на школьных компьютерах.</p>
36
<p>Но и Рапира безвременно почила. Московская школа программирования продвигала европейский Algol, а пару лет спустя его заменил BASIC, который в итоге уступил место Pascal. Так что, несмотря на современность и мощность, у Рапиры просто не было шансов остаться даже на школьных компьютерах.</p>
37
<p>СССР не экспортировал вычислительную технику за границу, а ведь именно через неё распространялись языки программирования. Поэтому советские языки проиграли западным. Кодеры до сих пор пишут программы на Lisp и Erlang, а о более мощном Рефале вспоминают только наши учёные.</p>
37
<p>СССР не экспортировал вычислительную технику за границу, а ведь именно через неё распространялись языки программирования. Поэтому советские языки проиграли западным. Кодеры до сих пор пишут программы на Lisp и Erlang, а о более мощном Рефале вспоминают только наши учёные.</p>
38
<p>Конечно, в СССР были и другие языки программирования - те же Сигма, Алмо или Бета. Но для чего их использовали, помнят только стены исследовательских институтов. Если вы любитель компьютерной экзотики или интересуетесь ламповой историей программирования, обязательно познакомьтесь с ними - заложенные в этих языках идеи нередко опережали своё время.</p>
38
<p>Конечно, в СССР были и другие языки программирования - те же Сигма, Алмо или Бета. Но для чего их использовали, помнят только стены исследовательских институтов. Если вы любитель компьютерной экзотики или интересуетесь ламповой историей программирования, обязательно познакомьтесь с ними - заложенные в этих языках идеи нередко опережали своё время.</p>
39
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
39
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>