На дворе 2023 год. Информационные технологии шагнули далеко. Даже 10 лет назад кажется для нас устаревшей эпохой.

Искуственный интеллект заполняет интернет контентом, графика в играх кажется уже реальной, а айти теперь — самая популярная область. Скорость интернет соединения растет как на дрожжах. Множество IDE, функционал которых невероятно огромен, множество языков программирования.

Но давайте вернемся назад — на 20, 30 и даже больше лет назад. У современных программистов есть мощнейшее программное обеспечение, десятки языков программирования. А всего лет 20–30 назад программисты писали код на каких нибудь калькуляторах при помощи чистого ассемблера!

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

История программирования в СССР

Отечественной вычислительной технике почти 40 лет. Можно выделить несколько этапов в развитии программного обеспечения ЭВМ в СССР.

Первый этап (конец 40-х — середина 60-х годов) был связан со становлением программирования как научной и практической дисциплины. Результаты этого этапа — операторный метод программирования А. А. Ляпунова, адресное программирование Е. Л. Юшенко, крупноблочное программирование Л. В. Канторовича, теория схем программ, первые отечественные трансляторы, получившие название «программирующих программ» и реализованные известными советскими учеными Э. 3. Любимским, С. С. Камыниным, М. Р. Щура‑Бурой, А. П. Ершовым, Л. Н. Королевым, В. М. Курочкиным, С. С. Лавровым. Эти и многие другие результаты первого этапа оказали существенное влияние на развитие программного обеспечения не только в СССР, но и во всем мире.

Второй этап (середина 60-х — конец 70-х годов) развития программирования в СССР был связан с формированием современного облика программного обеспечения ЭВМ и неотделим от мировых тенденций развития программирования. Он характеризуется большим распространением трансляторов АЛГОЛ-60, появлением широкого спектра новых языков программирования, развитием методов и средств автоматизации программирования и автоматического синтеза программ. Появляются и широко распространяются пакеты прикладных программ, банки данных и системы управления базами данных, развиваются основы технологии программирования.

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

Рост потребностей и затрат на программное обеспечение ЭВМ объективно привел в начале 80-х годов к новому этапу развития программирования в СССР — переводу программного обеспечения на индустриальную основу. Основы этого перехода формировались уже с середины второго этапа, когда в 70-е годы начал создаваться Государственный фонд алгоритмов и программ (ГосФАП).

В середине 80-х государство прилагало немало усилий для популяризации информационных технологий. Публиковались научные статьи, в журналах появлялись целые разделы, посвящённые ИТ‑тематике. Для профессионалов (которые в то время были в основном учёными) Академия наук СССР выпускала журнал «Программирование». Не забыли и про любителей. Например, в журнале «Техника — молодёжи» появилась рубрика «Человек и компьютер», которая была посвящена разъяснению новых терминов и обзорам новых устройств. Там же публиковались советы по борьбе с вирусами, использованию носителей и т. п.

Стремясь увеличить скорость интеграции компьютерных технологий в повседневную жизнь государства, власти не делали особых различий между женщинами и мужчинами. Так, журнал «Работница» (тираж ~15 млн) призывал женщин осваивать компьютер наравне с мужчинами, а ещё — учить этой науке дочерей.

Дедовские языки программирования

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

Если мы знаем, что некий язык А первым ввел функцию В, это еще не означает, что А повлиял на В. Например, Absys, возможно, был первым логическим языком программирования, но основной логического программирования считается Prolog, разработанный независимо от него.

Есть только один достоверный способ узнать о связи между языками или их функциями — цитирование.

  • Б цитирует А в своем справочном руководстве

  • Б цитирует статью, в которой цитируется А

  • Автор Б говорит, что «на нас повлиял А»

Иногда в руководстве по языку А упоминается статья о языке Б, в которой говорится, что Б заимствовал идеи из В. В этом случае мы понимаем, что В повлиял на А. Тут работает золотое правило научных исследований — чем больше источников, тем лучше. А чтобы понять, с чего начать, я использовал эвристику.

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

Cobol

Разработчик: Codasyl, 1960.

Cobol возник благодаря тому, что научные и бизнес подразделения IBM использовали разные языки программирования. 70 лет назад высокоуровневые языки предназначались либо для инженерных вычислений, либо для управления данными. Если в научной среде стандартом был Fortran, среди бизнеса единства не было — компании использовали Comtran, Flow‑Matic и другие.

В 1960 году Министерство обороны США организовало комитет по разработке единого универсального языка программирования для бизнес‑задач — им стал Cobol.

Cobol был одним из четырех «материнских» языков, наряду с Algol, Fortran и LISP. Сегодня он почти забыт, но когда‑то был самым популярным языком в мире и на нем по‑прежнему работают многие устаревшие бизнес‑системы.

Вклад: С точки зрения синтаксиса и семантики вклад Cobol в современные языки незначителен. Куда важнее его влияние на концепцию записи данных. В Fortran и Algol единственной структурой данных был статический массив. Cobol может читать структурированные файлы с иерархическими данными — он автоматически деструктурирует их в репрезентативные переменные. Это подход, который предшествовал современным способам записи данных.

Причина смерти: Здесь есть два фактора. Первый: Cobol не пересекается с другими PLT — и его синтаксис практически не пересекается с другими языками. Поэтому языки второго или третьего поколения, созданные на базе своих предков, почти не содержат в своем ДНК Cobol. Причина этого не столько во внутренних проблемах языка, сколько в пренебрежительном отношении к нему в академической среде. Codasyl создавала язык для решения конкретных бизнес‑задач — поэтому научные круги почти не обращали на него внимание.

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

Algol

Разработчик: Комитет Algol, 1960.

Примечание: Algol-58 выпущен двумя годами ранее, но от него быстро отказались. По этой причине я объединяю два этих языка. Разработчики Algol хотели создать хороший язык для исследования алгоритмов. Поэтому язык, по сути, был формализованным «псевдокодом».

Из четырех материнских языков Algol — самый «мертвый». LISP и Cobol до сих пор на слуху, поскольку на них работает множество устаревших систем, а Fortran иногда используется в научных целях. Но я встречал множество программистов, которые ни разу не слышали об Algol — при этом по степени влияния на современные языки с ним может сравнится разве что LISP.

Вклад: Вот несколько примеров: лексическая область видимости, структурное программирование, вложенные функции, языковые спецификации, семантика вызова по имени, грамматики БНФ, блочные комментарии. Следы Algol видны в каждом современном языке программирования.

Причина смерти: Algol разработан для изучения алгоритмов, а не для коммерческого применения. В спецификации не было определено никаких операций ввода‑вывода, что делало невозможным его использование для решения практических задач. Конечно, вы могли бы написать расширение компилятора, но тогда стоило бы добавить и другие вещи. Именно это сделал группа из 70 разработчиков — в 1960 году они добавили в Algol возможности ввода‑вывода и дополнительные структуры данных. Среди них, например, Jovial, Simula, CLU и CPL.

Именно эти расширения, а не оригинальный Algol, легли в основу более поздних языков программирования. Сейчас мы называем С «подобным Algol»‑языком, но правильнее было бы говорить, что он похож на BCPL, который похож на CPL, а уже тот похож на Algol. Такими образом, язык похоронили собственные обновления.

Энтузиасты предпринимали попытки сделать Algol практичнее — в 1968 году группа разработчиков представила Algol-68, который радикально отличался от оригинала, но не имел того же влияния на IT. Стоит отметить, что принципы Algol получили продолжение в Pascal Никлауса Вирта.

APL

Разработчик: Кен Айверсон, 1962.

В оригинале APL — написанная от руки нотация для математических массивов, которую IBM взяла за основу для создания языка программирования. Язык использовался для обработки массивов — и позволял сравнительно короткими командами манипулировать большими блоками чисел.

Если вы раньше слышали об APL, то скорее всего знаете его как «этот странный язык символов». Один из самых известных фрагментов кода на нем — реализация игры «Жизнь»:

APL использует собственные символы, поэтому для него нужна специальная клавиатура. Выглядела она вот так:

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

Вклад: Основная заслуга языка — инструменты для обработки массива. Раньше при добавлении двух списков разработчики использовали цикл или массив, APL позволил работать на весь массив сразу. Например, так:

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

APL лег в основу R, Numpy, Pandas, Matlab и других языков и библиотек для программирования. У него есть и прямые потомки — J, Dyalog, K, Q, — которые оказались менее успешными, хотя до сих пор используются в финансовом секторе.

Причина смерти: Очевидная проблема — клавиатура с символами, которые не используются больше нигде, кроме APL. Кеннет Айверсон исправил этот недостаток с помощью J, который использует диграфы вместо APL‑символов: вместо ~: в нем можно писать ≠. Сделано это было только в 1990 году — слишком поздно для популяризации радикально другого стиля программирования.

Существует и более тонкая проблема — APL и J умеют работать только с однородными данными. Языки не позволяют хранить строки и числа в одной и той же структуре данных.

Дополнительная литература: Notation as a Tool of Thought.

Basic

Разработчик: Джон Кемени, 1964.

Basic — первый демократичный язык программирования. Он был создан как упрощенный аналог Fortran и предназначался для людей, которые не имели отношения к науке, но хотели научиться программировать.

Язык стал популярным в эпоху микрокомпьютеров — у первых устройств было слишком мало памяти для компиляции «настоящих» языков программирования. В то же время урезанному компилятору Basic требовалось всего 2 КБ. Basic стал лингва франка для начинающих программистов: если в 1970-х вы программировали дома, то, вероятно, писали именно на этом языке.

Вклад: Язык оказал сильное техническое влияние на интерпретацию вычислений — Basic был первым языком программирования с возможностью вычисления в реальном времени (Dartmouth Time Sharing System), опередив APL на год. Если APL был доступен только клиентам IBM, а Basic был доступен всем.

Кроме того, он имел большое социальное влияние: Basic сделал программирование доступным для неспециалистов — как для взрослых, так и для детей. Многие влиятельные программисты 80-х и 90-х годов учились программировать на Basic. Многие корпоративные программы были написаны на Basic — вероятно, его популярность ускорила упадок Cobol.

Также на Basic написаны инструменты, которые входят в пакет Office. Со временем Microsoft превратила Basic в Visual Basic — на нем же написаны OpenOffice и LibreOffice. Недавно он уступил место JavaScript и теперь его используют для создания макросов.

Причина смерти: Большинство людей, которые учились писать код на BASIC, считали его «второстепенным» языком. Его можно использовать, если вы учитесь в школе или вам нужно написать простую программу для малого бизнеса — но настоящие программисты использовали «настоящие» языки. Как только компьютеры с оперативной памятью более 16 КБ стали доступны на массовом рынке, Basic начал терять популярность, а Pascal и C — приобретать.

Какое‑то время Basic продолжал существовать как популярный язык программирования для детей и подростков, но похоже, умер и в этой нише.

PL/I

Разработчики: IBM, 1966.

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

Вклад: Авторы Algol-68 насмешливо назвали PL/I устаревшим языком. Но все возможности Algol-68 появились в PL/I раньше и работали лучше. В то время как Cobol первым научился читать структурированные данные, PL/I был первым языком, который реализовал их как тип.

Читайте также: Старикам тут не место: как стать программистом в 50 лет

В Cobol чтение имени пользователя даст вам две глобальные переменные — user и name. В PL/I вы получите одну переменную с полем user.name. PL/I был также первым высокоуровневым языком с указателями для прямого управления памятью, константами и перегрузкой функций.

Многие из идей, впервые использованные в этом языке, вошли в массовое программирование через С, который представлял собой смесь BCPL и PL/I. Например, С в точности копирует синтаксис комментариев PL/I.

Причина смерти: Все программисты, писавшие на Fortran, думали, что PL/I слишком похож на Cobol. Писавшие на Cobol считали, что он почти идентичен с Fortran. IBM пыталась заменить два устоявшихся языка гораздо более сложным. Другая проблема в том, что компания эксклюзивно выпускала компилятор для PL/I — и многим программистам не понравилось, что язык так сильно зависит от корпорации.

К тому времени, когда IBM смогла решить обе этих проблемы, мир уже перешел в эру микрокомпьютеров, где PL/I уступил BASIC.

Дополнительная литература: The Choice of PL/I.

Simula 67

Разработчики: Оле Даль и Кристен Найгаард, 1967.

Simula 67 — расширенная версия Algol для математического моделирования. Первая версия языка (Simula I) имела специальный синтаксис моделирования — разработчикам показалось, что он получился слишком специализированным, а в симуляциях содержалось слишком много дублирований кода. Даль и Найгаард хотели создать более универсальный язык, возможности которого выходили бы за пределы моделирования.

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

Вклад: Хотя Simula 67 не был первым объектно‑ориентированным языком программирования, он впервые использовал правильные объекты и заложил фундамент для языков‑последователей этой методологии. Речь идет о разделении класса/объекта, создании подклассов, виртуальных методах и защищенных атрибутах.

Язык вдохновил подавляющее большинство академических исследований объектов в программировании, которые проводились после 1967 года. Создатели CLU и ML писали, что они вдохновлялись идеями Simula. Бьярн Страуструп защитил докторскую диссертацию по Simula и включил несколько идей из него в C ++.

Причина смерти: В своей докторской диссертации Страуструп утверждал, что Simula — слишком медленный язык для массового использования. «Желаю удачи в выполнении операции, если вы не на мейнфрейме», — комментировал он. Стоит отметить, что Smalltalk-80, который развивал те же идеи, и имел преимущество в 13 дополнительных лет закона Мура — и даже он считался слишком медленным. В Simula реализованы идеи, которые затем были интегрированы в быстрые и простые языки.

Дополнительная литература: Compiling SIMULA: a historical study of technological genesis.

Pascal

Разработчик: Никлаус Вирт, 1970.

Язык был создан на основе Algol-60, идеи которого, по мнению Вирта, не нашли отражения в Algol-68. Сначала Pascal стал популярен как «язык введения в Computer Science», но к 1980 году стал вторым по популярности в компьютерной сети Usenet. Вирт рассматривал все семейство языков — Pascal, Modula и Oberon — как единый языковой концепт.

Вклад: Pascal не привнес в программирование ни одной новой идеи — это был намеренно консервативный язык, целью которого было собрать лучшие идеи языков-предшественников в одном месте. Язык вывел синтаксис Algol настолько далеко за пределы академического круга, что символ :=, который изначально был характерен для Algol, стал считаться «стилем Pascal».

Хотя Pascal не был новаторским языком, Вирт впервые реализовал именно в нем принцип пошаговой детализации (stepwise refinement) в качестве средства для написания надежного программного обеспечения. Это привело к созданию Modulas, который популяризировал модули первого класса, а также Euclid — первого формального языка программирования для написания проверяемых программ.

Причина смерти: В отличие от других языков из этого списка, у Pascal не было серьезных структурных барьеров или сильных конкурентов. Он конкурировал с C, но долгое время оставался таким же популярным. Диалект Pascal, Delphi, до сих пор занимает довольно высокие позиции в индексах TIOBE и PYPA.

Дополнительная литература: Pascal and its Successors

CLU

Разработчик: Барбара Лисков, 1975

Лисков и ее группа хотели реализовать концепцию абстрактных типов данных — так появился CLU.

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

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

Причина смерти: CLU создавался как демонстрационный язык: Лисков хотела, чтобы в сообществе оценили идеи, а не конкретный язык. Это и произошло: сегодня почти каждый язык чем‑то обязан CLU.

После завершения работы над CLU Лисков с группой программистов создала его расширение — Argus, которое должно было продемонстрировать ее идеи по параллелизму. Он оказался менее влиятельным, но идеи Argus можно найти в некоторых современных языках.

Дополнительная литература: A History of CLU

ML

Разработчик: Робин Миллер, 1976.

Прежде чем создать ML, Милнер работал над LCF Prover — одним из первых помощников для доказательства теорем. LCF искал ошибки в доказательстве и проверял, правильно ли оно оформлено. Программист создал для него метаязык, основанный на надежных математических формализмах — строгих статических типах и функциях высшего порядка. Этот язык позже превратился в ML и был стандартизирован как SML.

Вклад: ML — один из самых старых «языков алгебраического программирования». Часто ему приписывают алгебраические типы данных, модули и типизированное функциональное программирование. Однако эти функций появилось не в ML — первая версия языка создавалась только для работы с LCF и не предназначалась для широкого использования. По мере развития ML программисты привносили в него идеи из других исследовательских языков.

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

ML оказал большое влияние на современные средства доказательства теорем: «программные» языки для Isabelle, CVC3 и Coq основаны на ML. Кроме того, на языке было создано множество теорий типов, хотя позже Haskell приобрел большую популярность среди математиков.

Причина смерти: У ML было много интересных функций, но он был языком специального назначения для доказательства теорем. SML вышел в том же году, что и Haskell, который оказался более «чистым» примером языка типизированного функционального программирования.

Smalltalk

Разработчики: Алан Кей, 1972, 1976 и 1980 годы.

История Smalltalk выглядит как движение к цели: в Smalltalk-72 были заложены основы языка, в Smalltalk-76 реализовал концепцию объектно‑ориентированного программирования, а Smalltalk-80 сделал ее популярной по всему миру.

В Smalltalk не было объектов в представлении того времени, но он был первым объектно‑ориентированным языком. Разница в том, что в Simula были объекты в добавление к примитивам — числам и логическим значениям. В Smalltalk логические значения тоже были объектами.

Вклад: Многие думают, что Smalltalk — это настоящее объектно‑ориентированное программирование, а Java и Python — нет. Но это не так: объектно‑ориентированное программирование, как и любая другая парадигма, представляет собой огромную концепцию с множеством разных языков, которые в разной степени повлияли на нее. Однако именно Smalltalk был языком, который популяризировал эту концепцию.

Если открыть любую книгу по общей теории объектно‑ориентированного программирования 80-х или начала 90-х годов, она будет построена на Smalltalk. В некоторых примеры будут описаны на C++ или других языках, но базой в этих книгах все равно остается Smalltalk.

Язык также популяризовал идею об объектах как об общих данных, заложив основу для высокоуровневого языка Cobra и модели акторов.

Причина смерти: Существует распространенное мнение, что Smalltalk проиграл, потому что его предпочли C++. Однако это неверно: у Smalltalk действительно были проблемы (сложность взаимодействия с другими инструментами и низкая производительность), но даже в 90-х годах многие программисты полагали, что он станет доминирующим языком программирования для решения бизнес‑задач.

Но потом появилась Java.

Smalltalk был не единственной жертвой «Явапокалипсиса»: конкуренцию Java проиграли Eiffel, Ada95 и почти все остальные объектно‑ориентированные языки. Действительно интересный вопрос не «почему умер Smalltalk», а «почему выжил C ++». Я думаю, что C ++ имел лучшее взаимодействие с C, и его было легче распространить на легаси‑системы.

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

Программирующая Программа — первый компилятор

Основоположником информатики в СССР, в частности раздела автоматизации программирования, является Алексей Андреевич Ляпунов, первым предложивший рассматривать программу как последовательность чередующихся этапов, на которых выполняется некая обработка данных. Этап Ляпунов предложил назвать оператором, а схемой счета — совокупность операторов и логических условий. Схема и совокупность спецификаций каждого оператора — это программа. Взгляд на программу в таком ключе стал революционным и сразу лег в основу первых трансляторов (компиляторов) или программирующих программ, как их тогда называли.

Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 году. Транслятор ПП-2 (1955 год, 4 в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур.

Первыми программами, принадлежащими системному программному обеспечению, были трансляторы — ассемблеры и автокоды на Западе, программирующие программы (ПП) у нас.

Сотрудники отдела программирования исследовали реализуемость операторных схем и определили основные типы операторов, соответствующие решаемым задачам: Ai — арифметические операторы, Pi — логические операторы, управляющие счетом, Fi — операторы переадресации, позволяющие переходить к следующему значению индекса.

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

Типы операторов соответствовали подавляющему большинству решаемых тогда задач, а именно — вычислительным задачам. Выделялись арифметические операторы Аi, ведущие вычисление по формулам, логические операторы Рi, осуществляющие управление счетом, операторы переадресации Fi, позволяющие переходить к следующему значению индекса (и обратные им операторы восстановления), все же неарифметические вычисления объединялись в так называемые нестандартные операторы Hi, для которых спецификацией был их машинный код. Специального подъязыка описания данных, зачатки которого появились в более поздних ФОРТРАНе и Алголе, не существовало.

Программирующая программа ПП-1 являлась одним из первых в мировой практике трансляторов и, по‑видимому, имела самый высокий уровень входного языка.

Программирующая программа ПП-2, была создана под руководством М. Р.Шура‑Буры в 1955 году для машины Стрела-1, основывалась на ПП-1 как прототипе. В ПП-2 были усовершенствованы алгоритмы трансляции и было уделено заметное внимание оптимизации программ — экономии выражений, оптимальному сочетанию переадресации и восстановления (иначе говоря, наилучшей реализации вычисления индексных выражений), оптимальному отведению памяти для так называемых рабочих ячеек. Это был, по‑видимому, первый оптимизирующий транслятор.

Язык программирования Рефал

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

Общим для всех этих применений является то, что мы заставляем машину совершать сложные преобразования над объектами, определенными в некоторых формализованных языках (алгоритмические языки, язык алгебры, язык исчисления предикатов и т. д.).

Рефал — язык бестиповый. В его основе лежит понятие объектного выражения как универсального типа данных. Все аргументы и результаты всех функций являются объектными выражениями.

Объектное выражение определяется таким образом, что операция конкатенации делается неявной, скрытой. Точнее сказать, что конкатенация на уровне значений выражается конкатенацией на уровне имен. Это свойство вытекает из основной цели Рефала как метаязыка для описания различных языковых объектов. Оно придает особую выразительную силу и остальным средствам языка, таким как образцы и результатные выражения.

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

Язык определения функций Рефала, основанный на понятиях образца и результатного выражения чрезвычайно прост и компактен. Его минимальная версия получила название Базисный Рефал. Диалект Базисного рефала под названием Рефал-2 был реализован на многих типах отечественных ЭВМ и долгое время играл роль де‑факто стандарта языка Рефал.

Язык Рефал-5 содержит Базисный Рефал в качестве подмножества. Расширения языка Рефал-5 качественно меняют стиль программирования.

В настоящее время существует две реализации языка Рефал-5: одна выполнена Д. Турчиным, другая — Н. Кондратьевым и Арк. Климовым. Обе имеют практически один и тот же входной язык, но отличаются рядом особенностей реализации. Вторая известна также под названием Рефал-6, однако следует помнить, что это название не языка, а его реализации.

Был также разработан язык Рефал Плюс, в отличии от Рефал-5 доведенный до концептуальной полноты (расширение рефала средствами обработки неуспехов).

1997 год. Рефал прочно занимает свою нишу, не опасаясь никаких конкурентов. Например, он успешно используется физиками Обнинска, многими математическими центрами в России. Одно из основных применений Рефал — разработка трансляторов с языков программирования, когда сам Рефал используется как метаязык. В ИПМ на нем был очень быстро написан высокоэффективный транслятор Cern Fortran.

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

Еще чуть-чуть (на самом деле больше) о программировани в СССР

В 1986 году, вскоре после введения уроков информатики в школах, на телевидении был показан фильм «Игры с компьютером в СССР». В начале диктор торжественно заявляет «Мы стоим на пороге новой эры! Эры компьютерной грамотности!». А после кратко и по делу разные мудрые и удивительно дальновидные люди объясняют, что это значит для народа.

Заместитель министра просвещения отзывается о компьютеризации школы «Мы готовим нового рабочего, способного освоить информационную технологию» и обещает оснастить компьютерами большую часть школ к конце двенадцатой пятилетки (к 1990 году).

Ученый на семинаре высказывается о текущей ситуации: «Мы взялись за своего рода эксперимент над собой и своими детьми, но отступать нам нельзя», сравнивая текущее время с 1941-м годом.

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

В фильме показан один из первых отечественных гаджетоманов. Композитор Андрей Родионов признается, смущенно опустив глаза: «Люблю эту, свою железку…».

На 16:18 слово берет мудрая пожилая женщина, которая как в воду глядела: «Мой внук теперь будет все время с машиной сидеть? … Он будет нажимать на кнопки, задавать вопросы, значит где‑то уже не будет общаться со мной? А как же его старший брат, с которым он делился своими мыслями? Как же теперь будет?». А ведь не о каких хикикомори тогда еще слышно не было, а она уже все понимала.

Газеты

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

  • «Возьмем на льдину ЭВМ»;

  • «Зачем компьютер ферме»;

  • «Заказ принимает ЭВМ»;

  • «Партнер зодчего — компьютер»;

  • «Нужен врачу компьютер»;

  • «Жду встречи с компьютером»;

  • «На „ты“ с ЭВМ»;

  • «Робот нужен и училищу»;

  • «Музыка электронного века»;

  • «ЭВМ приходит в класс».

Подобные заметки регулярно публиковались в главных изданиях с многомиллионными тиражами. Их содержание не представляет особого интереса, так как их основной целью было просто рассказать людям о том, что существуют компьютеры и как это замечательно. Для примера приведем очерк из «Учительской газеты»:

help_evm

А эта небольшая заметка 1987 года в газете «Труд» о том, как начальник АСУ цементного завода в Приморском вынес деталей с завода для сборки компьютеров на 6 тысяч рублей (стоимость небольшой квартиры), а ему дали за это всего два года исправительных работ:

trud_87

Предполагаю, что многие предприимчивые работники советских заводов, прочитав эту заметку, подумали: «Епт! Че мы то сидим???» и число подпольных сборщиков компьютеров резко возросло по всей стране. Кстати, в этом же году газета «Труд» вошла в книгу рекордов Гиннеса, так как на тот момент имела самый большой в мире тираж среди ежедневных газет — 15,4 миллиона экземпляров.

Сразу возникает вопрос: откуда инженеры тех времен узнавали о том, как собирать компьютеры из деталей, купленных в магазине/заимствованных на работе?

«Радио»

radio_jume_1986

В крупном советском техническом журнале, который издавался тиражом 1 миллион 200 тысяч экземпляров и доставлялся по подписке в библиотеку каждого вуза/ПТУ/школы/завода, публиковались описания схем для самостоятельного сбора персональных компьютеров из подручных инструментов. Выше приведен фрагмент одной такой статьи, опубликованной в июне 1986 года.

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

«Техника Молодежи»

tehnika_molodeji

В июле 1986 года в этом журнале была опубликована статья «Эти профессиональные персональные компьютеры», в которой подробно разъяснялось как устроены современные компьютеры и для чего они могут пригодиться читателю в будущем: чтобы изучать английский язык, играть в нарды, создавать вязальные схемы и работать с документами.

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

«Наука и жизнь»

school_of_young_coder

Это культовое для технической интеллигенции издание с трех миллионным тиражом тоже не обошло стороной новый вид техники. В нем был целый раздел, посвященный IT‑тематике — «Человек и компьютер», в котором публиковались разъяснения новых терминов, обзоры новых устройств (к примеру аппаратов Xerox), советы по борьбе с вирусами («полное перемагничивание дискет») и т. п.

В 1985-м году в журнале был опубликован цикл из семи статей «Школа начинающего программиста», в котором читателя обучали основам создания программ для микрокалькуляторов. Обратите внимание на то, что автор называет программирование искусством. Книга Кнута, первый том который был издан в 1968 году, уже тогда была известна по всему миру.

После этого цикла тема любительского домашнего программирования многократно поднималась на страницах журнала. А для профессионалов (которые на тот момент преимущественно были учеными) с 1975 года Академия Наук издавала журнал «Программирование».

«Юный техник»

young_technik

А вот иллюстрация к статье «Компьютерная оптика», опубликованная в журнале «Юный техник» в январе 1986 года. И снова девушка, сидящая за персональным компьютером советского производства. Это издание уже предназначалось для ребят, выросших из «Мурзилки» и рассказывало о довольно сложных технических аспектах информационных технологий.

Как видите, в советских изданиях для самых разных категорий граждан были статьи о компьютерах. Хотя бы один из этих журналов регулярно выписывался/покупался почти в каждой семьей и общие знания об информационных технологиях быстро распространилось среди населения. Возьмите наугад любой номер вышеперечисленных журналов, изданный в 1985–1990 и в нем обязательно найдется хотя бы пару слов о компьютерах.

Вместо заключения

Иногда, когда общаешься с людьми старше 45 (прежде всего это касается женщин), то возникает четкое ощущение, что их представление об IT‑технологиях осталось на уровне 80-х годов и говоря о компьютерах они употребляют слова, как будто из советских журналов. Они пользуются новыми смартфонами, свежими версиями Windows и MS Office, но основная база знаний не обновлялась у них уже лет 25. Безусловно, есть много сведующих в этой теме людей в годах, но такая тенденция заметна.

UPD. СССР прошел, но Россия не потеряла возможностей улучшать свои технологии и стремится к лучшему. Спасибо Andchir за поправки и остановку моего пыла

UPD. Источники:

  1. Ссылка


Пока это все, с вами был Доктор Аргентум, все удачи, всем до новых встреч!

Комментарии (51)


  1. Andchir
    24.11.2023 12:12

    Но откуда им знать насколько с тех времен изменился мир, если им уже негде об этом прочитать? Журналы, упомянутые в статье в 90-ые закрылись и сократили тиражи.

    Пусть Хабр читают, только без исторических экскурсов. Как они узнают о современных технологиях, если будут читать подобные исторические статьи?

    А популярные газеты, такие как «Комсомольская правда» и «Аргументы и Факты» забыли о своей миссии просвещать население.

    Опять притянуто за уши, лишь бы оправдать появление подобных статей на Хабре. Я не против истории, но не в таких количествах. Есть современные журналы и сайты, посвященные ИТ, при чём тут "КМ" и "АиФ"?

    Похоже на пропаганду от коммунистов.


    1. DrArgentum Автор
      24.11.2023 12:12

      О нет-нет, вы не правы. Я не коммунист, но в конце что то сглупил. Спасибо!


      1. Andchir
        24.11.2023 12:12
        +3

        Не верю. Признайтесь честно заплатил кто-то за эту статью? Можно в личку.

        Советское наследие после развала СССР?

        Уймитесь уже про этот мнимый "развал". У вас самая большая страна в мире, 1/6 часть суши, как была, так и осталась. Кто вам не даёт в этой стране развивать технологии и поднимать уровень жизни людей? Зачем эти вечные воспоминания про времена, когда у стариков с эрекцией был порядок, а значит всё было лучше?


        1. DrArgentum Автор
          24.11.2023 12:12
          +5

          Нет, не платили. Писал под эмоциями и небольшим приливом интереса к истории СССР.

          Вообще, по моему, эти воспоминания идут от того, что в СССР граждане чувствовали себя более менее стабильно. Но сейчас идет какая та сервис-экономика - вместо развития технологий и производства, индустриализации, мы просто занимаемся обслуживанием чего-либо.


          1. Andchir
            24.11.2023 12:12
            +4

            Можно узнать сколько Вам лет? Вы хоть пожили в этом СССР?

            в СССР граждане чувствовали себя более менее стабильно. Но сейчас идет какая та сервис-экономика

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


            1. DrArgentum Автор
              24.11.2023 12:12
              +1

              Мои доводы идут в основном, от компиляции мнений - людей в интернете, антисоветчиков, близких друзей и родственников, знакомых. Попытался найти "золотую середину".

              Про власть я хотел написать, но передумал, ибо не хочу делать политспор.

              Интересно послушать ваше мнение


          1. DvoiNic
            24.11.2023 12:12
            +6

            Чтобы рассуждать о том, "как чувствовали себя граждане в СССР" - нужно не "компилировать мнения", а пожить в СССР...


            1. chechzaets
              24.11.2023 12:12
              +1

              в СССР люди жили счастливо, говорю как 17 лет поживший


              1. DvoiNic
                24.11.2023 12:12

                ну да. Проблемы были только в том, что в сончас спать заставляли, да молоко с пенкой...


  1. SGordon123
    24.11.2023 12:12

    А про советское железо, с именами фамилиями можно, а то как то маловато да по форумам в основном..


    1. DrArgentum Автор
      24.11.2023 12:12
      +1

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

      Могу попробовать создать новую статью про советское железо. Главное - чтобы я смог найти все источники и качественно оформить статью


      1. SGordon123
        24.11.2023 12:12
        +1

        Ну тут полно непонятных минусаторов, но попробовать,я считаю, стоит ....


      1. SIISII
        24.11.2023 12:12
        +2

        Всех источников не найдёте никогда, ну а многие доступны только в архивах. И даже если основываться только на открытых источниках, придётся потратить, наверное, несколько лет, чтобы "войти в тему", а не писать тот бред, что был написан.


    1. SIISII
      24.11.2023 12:12
      +1

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


      1. SGordon123
        24.11.2023 12:12
        +1

        да , приятно почитать про " генеральный директор НЦ Э.Е.Иванов "однажды в эмоциональном порыве предложил разбить ЭВМ о голову Косенкова" , аналоговнет, Особые проблемы были с клавиатурой: она должна быть надежной, технологичной и дешевой. После многочисленных проб остановились на пленочной бесклавишной конструкции. ;-)


  1. AlexeichD
    24.11.2023 12:12
    +12

    Но откуда им знать насколько с тех времен изменился мир, если им уже негде об этом прочитать? Журналы, упомянутые в статье в 90-ые закрылись и сократили тиражи.

    А принципиально что поменялось? Клиент-серверное взаимодействие, протокол TCP/IP, гипертекстовые форматы - все это родом из 70х, как и знаменитый "тетрис"))

    Алгоритмические языки отпочковались от того же Паскаля с Коболом. Объектные - от Смалтолка и C++/Java. Ввод-вывод через USB, Bluetooth - ну я вас умоляю, тот же последовательный порт, только вид сбоку. А вот кто помнит волшебный шнурок LPT-LPT, который позволял переписывать с компа на комп с дикой скоростью по параллельному порту?

    Справляться опять таки с графикой стало проще. Полно библиотек и аппаратного ускорения - хоть жуй одним местом. Что, кто-то сейчас станет писать Z-буфер для отсечения невидимых граней при обратном рендеринге?)) Или перемножать матрицы для вращения графической модели? Вчера слышал разговор двух молодых студентов - возмущаются, что заставляют изучать Паскаль, видите ли. Сынок, если ты выучишь Паскаль то сможешь быстро въехать почти в любой язык программирования! Потому что именно Паскаль это симплификация и алгоритмики, и ООП, и библиотек, и ввода-вывода, и чего угодно! Там можно быстро освоить все принципы программирования, отработать гипотезы, понять области видимости переменных наконец и типизацию! А что этот ваш "Пайтон" новомодный, чему он научит? Не, язык модный, не спорю, там и коллекции джоинить можно и еще много чего интересного делать. Но вряд ли он научит базе, логике, правильности написания кода и архитектуре!

    На МК-61 я передирал с "Науки и жизнь" игру в советского "покемона". Калькулятор моргал циферками и выдавал координаты покемона, а на листе бумаги я отмечал точки карандашом. Это был еще даже не ассемблер, а просто набор чисел, которые рождались из двоичных комбинаций. То же - перфокарты. Все эти "дедовские", как вы их называете, технологии, учили думать, учили строить логические цепи и понимать причинно-следственную связь между входом и выходом. Именно благодаря этой "дедовской" базе сегодня для меня лично почти не существует нереализуемых задач по программированию в ИТ. С современными то мощностями и объемами памяти... да я вас умоляю! Еще бы не глючило Яндекс API и не отклонялся от документации Google, так было бы вообще замечательно. А так по большому то счету, ребят..... особо ничего не поменялось, только легче стало!)


    1. DrArgentum Автор
      24.11.2023 12:12

      Благодарю вас за комментарий, мне интересно услышать мнение взрослых личностей, которые застали стародавние времена.


    1. DMGarikk
      24.11.2023 12:12
      +3

      Ввод-вывод через USB, Bluetooth - ну я вас умоляю, тот же последовательный порт, только вид сбоку

      Вы пробовали через BT последних версий данные передавать? а там профиль SPP выпилили уже...;) и вообще с документацией все очень и очень плохо также как и с библиотеками на попробовать чтото запрограммить адекватное

      и с USB все сильно сложнее чем через просто компорт чтото слать


  1. medvedd
    24.11.2023 12:12
    +3

    Часто упоминается Cobol. Я начал работать в IT, как сейчас говорят, в конце 70-х. Я не виднл ни одного человека, пишущего на Cobol'e. Когда-то я общался с человеком, написавшем компилятор Cobol для Эльбруса. Он тоже не знал никого, пишущего на Cobol'e. Но было велено написать компилятор — написали.

    Вообще на ЕС ЭВМ, как мне помнится, массово использовались 2 языка — Fortran и PL/1. На PL/1 писалось то, что на Fortran'е никак не получалось. Например, я видел программу трассировки печатных плат (в пакетном режиме, да). 50000 строк на PL/1. Все работало.


    1. SIISII
      24.11.2023 12:12
      +1

      Вероятно, работали там, где Кобол не нужен. Я, наоборот, работал там, где только на Коболе и писали -- сплошь экономические задачи.


    1. sshikov
      24.11.2023 12:12

      Давайте не будем сильно обобщать. У нас в наличии на ЕС было порядка 50 компиляторов или систем программирования. Широко использовали например Reduce. Я лично писал примерно на пяти языках достаточно много. Ну да, массовыми были те что вы упоминаете, и кобола я тоже в глаза не видел, но применялось много больше.


  1. PeterFukuyama
    24.11.2023 12:12

    Возьмите наугад любой номер вышеперечисленных журналов, изданный в 1985–1990 и в нем обязательно найдется хотя бы пару слов о компьютерах.

    Возьмите наугад любой журнал 30-х и найдете там хотя бы пару слов про «англичанка гадит», в 60-х — про царицу полей, а в 70-х — про балет и «впереди планеты всей». В обществе, в котором инициативы исходят только строго сверху, это свернули бы уже при следующем генсеке и начали бы писать про, например, вторпродукт. Собственно это в какой-то мере и случилось.


  1. zbot
    24.11.2023 12:12
    +11

    по крайне мере посмеялся насчет предложения сходить в магазин радиотоваров за нужными микросхемами в 1987 году.


    1. SIISII
      24.11.2023 12:12
      +7

      Ну, откуда современному подростку знать, что собрать свой компутер в СССР можно было, только украв детали на родном предприятии? В магазинах были только лампы с транзисторами да несколько типов усилительных микросхем, логики не было вообще, а уж про КР580ВМ80А можно и не вспоминать. Где-то видел воспоминания создателей "Микро-80": к ним в контору случайно отправили совершенно неведомую микросхему К580ИК80 (название первого варианта того самого КР580ВМ80А), которой не было ни в каких справочниках, но, поскольку они по долгу службы имели доступ к забугорной информации, кто-то связал 580 и 80 с интеловским 8080 -- ну, они по интеловской документации и слепили свой компутер. По сути, они для собственного развлечения украли и случайно попавший к ним микропроцессор, и кучу других микросхем, к которым имели доступ по работе.


    1. checkpoint
      24.11.2023 12:12
      +6

      Вы как будь-то Ивана Васильевича не смотрели... куда Шурик за транзистором пошел ? Правильно, в магазин радиотоваров... только приобрел он его из под полы. :)

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


      1. SIISII
        24.11.2023 12:12

        Ну, на самом деле, не так уж и много таких мест было. В Москве и прочих крупных городах -- ещё куда ни шло, а в провинции?


        1. DvoiNic
          24.11.2023 12:12

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


        1. checkpoint
          24.11.2023 12:12

          Не далеко от Свердловска есть город Кировград в которым был завод по утилизации радиоэлектронной продукции. Вот где было раздолье для пионеров... С этого завода снабжали радиолюбителей на всю страну. ;)


          1. Astroscope
            24.11.2023 12:12
            +2

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

            "Доставать" - как единственный доступный способ приобретения товаров, мне кажется плохой практикой. А "доставать" приходилось буквально все, даже самые обыденные вещи кроме тех немногих, которые "выбрасывали" в продажу и за которыми мгновенно выстраивались километровые очереди. Нет, конечно, в стране всеобщего равенства были магазины спецобслуживания для не только лишь всех, но мы об этом стыдливо умолчим, как и о специальной медицине, специальных курортах, не говоря уже о специальном жилье, безусловно убогом по нынешним меркам, но в сравнении с недоступным кроме как по четвертьвековой очереди еще большим убожеством, это выглядело недостижимой (да, реально недостижимой) мечтой.


            1. checkpoint
              24.11.2023 12:12

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

              На счет выписать по почте. Такое было, но выписать можно было очень ограниченное количество товаров.


              1. Astroscope
                24.11.2023 12:12

                Просто рассказываю как было и как радиолюбителям приодилось добывать заветные детали.

                Не нужно, я это хорошо помню и так. Это было отвратительно.

                Была даже такая поговорка: "Не каждый вор - радиолюбитель...".

                Так если нигде ничего нельзя купить, то единственный способ - это что-то принести с работы и обменять на что-то, что кто-то другой принес с работы. Некоторые строили на этом бизнес - их называли "спекулянты" и придумывали им уголовные статьи, а официальная пропаганда всячески их очерняла. Ну, это же проще - очернять "спекулянтов", чем решить проблему дефицита всего. Хотя нет, не всего. Были товары, которые с изредка выбрасываемыми дефицитами давали в нагрузку - помните такое?

                На счет выписать по почте. Такое было, но выписать можно было очень ограниченное количество товаров.

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


                1. DvoiNic
                  24.11.2023 12:12

                   Ну, это же проще - очернять "спекулянтов", чем решить проблему дефицита всего.

                  Дефицит всего - это и был социализм. "отсутствие избыточного предложения". Т.е. "экономика дефицита".


                  1. Astroscope
                    24.11.2023 12:12
                    +1

                    Дефицит всего - это и был социализм.

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

                    "экономика дефицита"

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


          1. DvoiNic
            24.11.2023 12:12

            Было такое. Мешки отечественных светодиодов, из которых зажигалось менее 20%...


      1. medvedd
        24.11.2023 12:12
        +1

        Не каждый вор — радиолюбитель. Но каждый радиолюбитель — вор.


  1. NeoCode
    24.11.2023 12:12

    Что такое "Modulas" и "модули первого класса"?


  1. checkpoint
    24.11.2023 12:12
    +5

    А всего лет 20–30 назад программисты писали код на каких нибудь калькуляторах при помощи чистого ассемблера!

    Не было такого. :)

    В целом статья понравилась, хотя многое про языки программирования надумано.


    1. sshikov
      24.11.2023 12:12
      +1

      Конечно не было. 30 лет назад - это между прочим, 1993 год.

      Фортран - 1957 год, LISP - 1960, Алгол-60 - 60-й. PL/1 - 1964. Ada - 1983. Python - 1991. REXX - 1979. C - 1972 год (и целый Unix на нем уже написан). При этом у C было куча предшественников, в лице B, BCPL, и других, да и C++ уже тоже придуман. Pascal - 1970.

      Блин, да даже Wolfram Mathematica уже лет пять как существовала к 1993. И даже такие экзотические языки, как GPSS, уже тоже лет 20 как были созданы.

      Дальше надо перечислять? В 1993 году у программистов тоже были десятки языков. Да нет, не десятки - скорее сотни.


  1. Areso
    24.11.2023 12:12
    +9

    Также на Basic написаны инструменты, которые входят в пакет Office. Со
    временем Microsoft превратила Basic в Visual Basic — на нем же написаны
    OpenOffice и LibreOffice.
    Недавно он уступил место JavaScript и теперь
    его используют для создания макросов.

    Когда в абзаце три предложения, из которых два неверны, а третье неточное.
    В пакет MS Office входили интерпретатор и редактор VBA - Visual Basic Application, который позволял писать макросы и другую автоматизацию. Возможно, что и сейчас входят, но проверить не на чем.
    На Visual Basic не написаны OppenOffice и LibreOffice. И тот и другой пакеты написаны в основном на C++, с некоторым количеством Java и других ЯПов.


  1. ALexKud
    24.11.2023 12:12
    +1

    В конце 80-х начале 90-x для предприятий писались программы для искра 1030 на разных языках и в том числе на basic. Уже появлялись IBM pc xt/At. В качестве БД использовались файлы dbf. В разработке использовался язык Clipper, Pascal, turbo C. Я на pascal написал прлграмму для редактирования прошивки и программирования ПЗУ с ультра фиолетовым тирание. На Clipper ннаписал несколько программ. Это программы для магазина оптовой торговли, для приёма вкладов от населения и даже программу для учёта зерна на элеваторе(довольно сложная технология). В конце 90 уже перешел на SQL server и delphi., разработал на них целую систему как бы сейчас написали Crm + ERP. Ничего подобного в конце 90 начале 2000 не было в российском софте. Система прожила 10 лет у заказчика и умерла по причине смерти самой конторы.

    30 лет назад уже был и pascal и С. Ассемблер это был уже тогда жесть.


  1. NutsUnderline
    24.11.2023 12:12
    +4

    20 и 30 лет назад это две очень большие разницы. Больше 20 лет назад я писал на asm на zx spectrum во вполне полноценной ide c отладчиком. это не говоря уже про всякие борладнды на x86. да и 30 лет назад были не совсем и не только калькуляторы.

    С тех пор "внутри" эти калькуляторов не так уж и сильно изменилось, только фрейворков накрутили, и фрейворков над фреймворками.. поэтому AMD C-50 тоже уже записан в калькуляторные...

    Я бы сказал что автор данного опуса не в теме и не стремился. Но поглядев его профиль все еще интереснее становиться...


    1. DvoiNic
      24.11.2023 12:12
      +2

       Но поглядев его профиль все еще интереснее становиться...

      юный возраст, помноженный на графоманию?


      1. NutsUnderline
        24.11.2023 12:12
        +2

        не, самое то то в том что там с 18 ноября регитстрация и за это время уже 11 статей на разные темы и даже вроде не графоманские. более того, автор "изучает историю". Козима Пруткоff - не иначе.


        1. DrArgentum Автор
          24.11.2023 12:12

          Я даже боюсь представить, пытаются ли раскритиковать меня или похвалить...


        1. SIISII
          24.11.2023 12:12

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


          1. NutsUnderline
            24.11.2023 12:12

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


  1. Fafhrd
    24.11.2023 12:12
    +1

    30 лет назад уже были Tcl, ABAP, Lisp, Turbo Basic, Brainfick, Erlang, Perl, Haskell, Python, Lua и почти вышли Java, PHP и Ruby.

    30 лет назад уже существовал Linux и пару лет оставалось до PostgreSQL, MySQL и Apache HTTPd

    Так что по факту "основная база знаний не обновлялась у них уже лет 25" обусловлена тем, что принципиально мало что поменялось и всё современное базируется вот на этом всём.


  1. duke_alba
    24.11.2023 12:12
    +2

    Молодость вспомнил, спасибо :-) Шура-Бура, к слову сказать, был автором первого отечественного транслятора с Algol-60. Из его отдела вышел малоизвестный язык ДИПОЛЬ - использовался вместе с системой ПРИС для предполётных испытаний Бурана. Сейчас мало кто помнит про ДИПОЛь, а на нём программировала куча народу...


  1. AnimeSlave
    24.11.2023 12:12
    +2

    А почему в статье в главе «Дедовские языки программирования» чужая статья целиком без упоминания?
    https://ru.hexlet.io/blog/posts/10-samyh-vliyatelnyh-mertvyh-yazykov-programmirovaniya


    1. SIISII
      24.11.2023 12:12

      Всё вокруг колхозное, всё вокруг моё (с)