5 древних языков программирования, которые все еще живы

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

2К открытий5К показов

В начале 2024 TIOBE опубликовал новый рейтинг языков программирования. Внезапно Fortran поднялся с 27 на 12 место, обогнав, например, Swift, Kotlin и Ruby. В топ-20 вошел и COBOL, поднявшись в 31 на 20 место. Рассказываем, почему они оказались в топе и какие еще «мертвые» языки программирования до сих пор используются.

Fortran

FORTRAN (FORmula TRANslation) — это один из самых старых высокоуровневых языков программирования. Первую версию выпустила IBM в 1957 году.

Язык появился как конкурент «Ассемблера» — для научных и инженерных расчетов (особенно для работы с матрицами и массивами). И благодаря скорости и эффективности быстро завоевал популярность. В начале шестидесятых создали десятки компиляторов Fortran.

			! Print matrix A to screen
subroutine print_matrix(n,m,A)
  implicit none
  integer, intent(in) :: n
  integer, intent(in) :: m
  real, intent(in) :: A(n, m)

  integer :: i

  do i = 1, n
    print *, A(i, 1:m)
  end do

end subroutine print_matrix
		

Постепенно он отошел на второй план и уступил C++, Python, и Java и прочим современным языкам. Они оказались более гибкими, с более простым и понятным (и не таким громоздким) синтаксисом (и не таким громоздким) и куда лучше отвечали запросам. Люди стали разрабатывать все больше мобильных и веб-приложений, игр и прочего — а Fortran для этого не подходит.

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

  • Программы для моделирования погоды и климата, такие как модели Межправительственной группы экспертов по изменению климата (IPCC), часто написаны на Fortran.
  • Пакеты для моделирования в области химии и биоинформатики, например, GROMACS для молекулярной динамики, используют Fortran для проведения сложных вычислений, связанных с химическими и физическими свойствами молекул.
  • Язык используется в астрономических расчетах и разработке программного обеспечения для космических исследований. Например, на нем написано много астрофизического программного обеспечения для моделирования звезд и галактик.
  • Частично на Fortran написаны приложения для механического и структурного моделирования, например, ANSYS и прочие CAD/CAE системы.

COBOL

COBOL (Common Business-Oriented Language) — это высокоуровневый язык программирования, созданный в 1959 году для работы с данными в финансовой сфере и статистике. Его разработали, чтобы сделать написание программ проще — особенно для людей, неглубоко погруженных в информатику. Какое-то время он оставался самым популярным языком в мире, и на нем по-прежнему работают многие устаревшие бизнес-системы.

			$ SET SOURCEFORMAT"FREE"
IDENTIFICATION DIVISION.
PROGRAM-ID.  ShortestProgram.

PROCEDURE DIVISION.
DisplayPrompt.
   DISPLAY "I did it".
   STOP RUN.
		

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

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

ADA

Ada создали в конце 1970-х — начале 1980-х годов по заказу Министерства обороны США для разработки бортовых систем военных объектов, авиа- и космических систем, медицинских приложений и прочего софта, от которого требуют в первую очередь надежности и безопасности.

			h Interfaces; use Interfaces;
with System.Machine_Code; use System.Machine_Code;
with Ada.Text_IO;
 
procedure Asm_Test is
    Left, Right : Unsigned_32;
begin
    Left := 1; Right := 2;
 
    Asm("addl %1, %2",
        Inputs => (Unsigned_32'Asm_Input ("a", Left),
               	Unsigned_32'Asm_Input ("b", Right)),
        Outputs => Unsigned_32'Asm_Output ("=b", Right));
 
    Ada.Text_IO.Put_Line (Unsigned_32'Image (Right));
end Asm_Test;
		

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

  • оборонные системы, особенно в США и Европе;
  • системы управления полетами, спутниковые системы и программное обеспечение для космических аппаратов (например, на нем разрабатывали по да Boeing 777 и шаттлов NASA);
  • системы управления железными дорогами и некоторые системы безопасности автомобилей;
  • медицинские устройства.

APL

APL (A Programming Language) появился в 1960-х годах для обработки массивов и обращения с большими блоками чисел в целом. Он отлично подходил для решения математических, статистических и логических задач — с помощью сравнительно короткого кода.

			L←(Lι':')↓L←,L       ⍝ drop To:
 L←LJUST VTOM',',L    ⍝ mat with one entry per row
 S←¯1++/∧\L≠'('       ⍝ length of address
 X←0⌈⌈/S
 L←S⌽(−(⍴L)+0,X)↑L    ⍝ align the (names)
 A←((1↑⍴L),X)↑L       ⍝ address
 N←0 1↓DLTB(0,X)↓L    ⍝ names)
 N←,'⍺',N
 N[(N='_')/ι⍴N]←' '   ⍝ change _ to blank
 N←0 ¯1↓RJUST VTOM N  ⍝ names
 S←+/∧\' '≠⌽N         ⍝ length of last word in name
		

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

5 древних языков программирования, которые все еще живы 1

Кеннет Айверсон постарался исправить этот недостаток с помощью J, который использует диграфы. Но только в 1990 году — поздновато, чтобы популяризировать старый и весьма специфический стиль программирования.

Сейчас APL используется в редких проектах:

  • в некоторых финансовых учреждениях и для анализа больших объемов данных.
  • в науке для обучения концепциям обработки массивов и функционального программирования;
  • некоторые программы, написанные на APL, продолжают использоваться в специфических областях, требующих поддержки и обслуживания.

PL/I

PL/I (Programming Language One) представила IBM в 1960-х годах — в ответ на появление COBOL. Он задумывался как универсальный язык, объединяющий Fortran (для научных расчетов) и Comtran (для бизнес-приложений). В результате получили смесь двух языков — со множеством дополнительных функций и тонной синтаксического сахара.

			CTOF:
 PROCEDURE OPTIONS (MAIN);
 DCL (F, C) FLOAT;
 DO C = 0 to 100 UNTIL (F>100);
  F = C * 1.8 + 32;
  PUT SKIP EDIT (C, ‘C = ‘, F, ‘F’) (F(4,1), A, F(5,1), A);
  END;
END CTOF;
		

Но пытаясь сделать универсальный язык, IBM выпустила нечто слишком сложное и для поклонников Fortran, и для поклонников Cobol (да и зачем учить что-то новое, когда уже есть прекрасный язык под конкретные задачи). И пока компания пыталась решить все проблемы языка, появился более удобный и современный BASIC.

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

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий5К показов