
Натыкаясь на очередную подборку в духе «Какой язык программирования учить в 2025 году», я вижу каждый раз плюс-минус одни и те же тезисы. Обычно они сводятся к рассуждениям о количестве открытых вакансий, зарплатной вилке или библиотеках и фреймворках, которые обещают изменить вообще все. Python, JavaScript или C++ живее всех живых, и в ближайшие годы им вряд ли что-то грозит. Но ведь не все языки программирования оказались столь успешными. В этой статье я предлагаю вспомнить те из них, которые либо не дожили до современности, либо остались в полузачаточном состоянии. Я постараюсь не просто перечислить мертвые языки, но и описать их идеи, ошибки и причины, по которым они исчезли из истории программирования через короткое время после рождения.
Скоро выпустим новый комикс о путешествиях ИБ-специалиста! Регистрируйтесь, чтобы узнать о публикации первыми. Бонусом сможете выиграть один из 15 комплектов призов.
Почему умирают языки программирования
Причины бывают разные. Некоторые ЯП изначально создавались лишь в качестве эксперимента. Другие оказывались чрезмерно сложными. Третьи разрабатывались под конкретное железо или крайне специфическую задачу и в скором времени необходимость в них просто исчезала. Были и такие, которые пытались заменить собой сразу несколько других языков, но что-то пошло не так.

На ум приходят различные диалекты BASIC (1964), появившиеся вместе с Commodore, ZX Spectrum, Amiga и т. д. Они умерли вместе с софтом, для которого создавались. То же произошло с Flash, на смену которому пришли новые стандарты. То же наверняка произойдет с подмножеством диалекта C++ для Arduino, когда тот устареет.
Язык APL (1964) умер из-за необходимости в специальной клавиатуре. Другие языки, такие как Algol, BCPL и Simula были интересными экспериментами, но умерли, потому что не смогли конкурировать с более современными и популярными альтернативами.
Примеры ниже показывают, что инновация сама по себе не гарантирует успеха. Даже самые продвинутые идеи могут оказаться невостребованными, если язык сложен в освоении, не поддерживается сообществом или просто появляется в неподходящее время.
Но не стоит считать эти языки неудачами. Многие из них послужили источником вдохновения для будущих технологий, а их ошибки помогли разработчикам создавать более удобные и эффективные инструменты. Без экспериментов не бывает прогресса, а значит, даже языки-призраки внесли свой вклад в развитие программирования.

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

Вымершие языки
Есть много языков программирования, которые появились, но почти сразу же оказались ненужными. Вот несколько примеров.
Plankalkül (1940-е)
Разработан Конрадом Цузе, является одним из первых языков программирования, но никогда не применялся на практике.

INTERCAL (1972)
INTERCAL был создан как пародийный язык для демонстрации странных возможностей программирования и изначально не имел никакой практической цели. Вымер естественным образом, так как никто им всерьез не пользовался.

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

Клавиатура APL. Источник.
T (1980-е)
Язык T разрабатывался как альтернатива Lisp, проиграл конкуренцию языкам Scheme и Common Lisp.
(define-predicate pair?)
(define-settable-operation (car pair))
(define-settable-operation (cdr pair))
(define (cons the-car the-cdr)
(object nil
((pair? self) t)
((car self) the-car)
((cdr self) the-cdr)
(((setter car) self new-car) (set the-car new-car))
(((setter cdr) self new-cdr) (set the-cdr new-cdr))))
Eiffel (1986)
Eiffel был объектно-ориентированным языком, но проиграл конкуренцию C++ и Java. Хотя Eiffel ввел концепцию контрактного программирования, его идеи просто заимствовали другие языки. Да, вот еще одна причина вымирания — язык внес в программирование что-то классное, его идеи получили признание, но сам сгинул.
class
HELLO
create
make
feature
make
do
print ("Hello World%N")
end
end
Modula-3 (1988)
Modula-3 пытался предложить улучшенный вариант Pascal, но в то время Pascal уже терял популярность, и индустрия переходила к C++ и Java, так что язык быстро забыли.
MODULE HelloWorld;
IMPORT Io;
BEGIN
IO.Put ("Hello Worldn")
END HelloWorld.
S-Lang (1992)
Разрабатывался как альтернатива Perl, но так и не смог его заменить.
message ("Hello, World!");
F (1995)
Не путайте F с F# и F*. Облегченная версия Fortran для обучения, но его быстро забыли.
Lasso (1995)
Lasso пытался конкурировать с PHP в веб-разработке, но его архитектура оказалась слишком сложной, а производительность — низкой. Хотя код выглядит довольно простым:
'Hello, world.'
// => Hello, world.
COOL (Classroom Object-Oriented Language, 1996)
Учебный язык для Стэнфорда, не использовался вне учебных курсов.
(* hello-world.cl *)
class Main inherits IO {
main() : Object {
out_string("Hello, world.n")
};
};
Microsoft J++ (1996)
Попытка Microsoft создать свою версию Java. Поддержка прекращена после судебного процесса с Sun Microsystems.

REBOL (1997)
REBOL предлагал минималистичный подход к программированию, но из-за нехватки библиотек его никто не воспринял всерьез. Язык не смог конкурировать с Python и Ruby.
Curl (1998)
Curl пытался совместить HTML, CSS и JavaScript в одном языке, но со временем веб-стандарты эволюционировали, и в таком языке просто не стало необходимости.
{Curl 7.0, 8.0 applet}
{text
color = "blue",
font-size = 16pt,
Hello World}
Unlambda (1999)
Язык, созданный ради абсурда — у него нет переменных и функций в привычном понимании. Соответственно практического применения тоже нет.
```s``sii`ki
``s``s`ks
``s``s`ks``s`k`s`kr
``s`k`si``s`k`s`k
`d````````````.H.e.l.l.o.,. .w.o.r.l.d.!
k
k
`k``s``s`ksk`k.*
Alice ML (2002)
Экспериментальный функциональный язык с логическим программированием, который остался только в научной среде.
<<Helloworld.aml>>=
fun iter i 0 f = ()
| iter i n f = (f i; iter (i+1) (n-1) f)
do print "Hello, World!n"
do iter 1 10 (fn i => print(Int.toString i^"n"))
do OS.Process.exit OS.Process.success
Go! (2003)
Язык Go! для искусственного интеллекта. Он не связан с более поздним Go (2009) от Google. Язык должен был завоевать популярность в сфере информационной безопасности, но так и не заинтересовал пользователей.
Objective-J (2008)
Попытка объединить JavaScript и Objective-C, но со смертью Objective-C этот язык тоже исчез.
var myString = "hello world",
reversed = [myString reverse];
alert(reversed); // alerts "dlrow olleh"
Ark (2008)
Ark предлагал безопасную альтернативу C++, но его скорость работы оставляла желать лучшего, и он просто не выдержал конкуренции.
(prn "Hello, World")
OpenCL (2009)
OpenCL от C создавался для параллельных вычислений на GPU и CPU, но его вытеснили более удобные технологии, такие как CUDA и Vulkan.
cl::Kernel kernel(program, "HelloWorld", &err);
Zimbu (2009)
Язык от создателя Vim, который не смог завоевать популярность.
FUNC Main() int
IO.write("Hello Worldn")
RETURN 0
}
Нишевые, но все еще живые ЯП
А вот здесь, на мой взгляд, нужно сделать небольшую ремарку. Мне бы не хотелось ставить знак равенства между популярностью и живостью языка программирования. Есть языки, настолько специфичные и узкоспециализированные, что известность или собственный хаб на Хабре им не грозят. Да и в подборку того, что нужно изучать в 2025 (или любом другом) году, они не попадут. Но они точно не вымерли.
Например, программисты COBOL (1959) не останутся без работы, поскольку этот древний ЯП — основа мировой финансовой и деловой инфраструктуры. Этот язык, возможно, вообще никогда не умрет.

Программисты COBOL 60 лет назад. Источник.

Программисты COBOL в наши дни. Источник.
Точно так же язык C никогда не умрет. Это стержень IT-индустрии, используемый для операционных систем, драйверов устройств, компиляторов и т. д. Как и Java — это стандартный язык программирования для предприятий. В этом он похож на COBOL.
Fortran (1957) никогда не умрет. Он жизненно важен для многих видов научных вычислений, включая прогнозирование погоды.
Языки умирают, когда ими перестают пользоваться. Например, вряд ли много людей пишут код на языке Оккам, для реализации которого был изобретен транспьютер Inmos. И это один из лучших и наиболее известных академических языков.
То есть не важно, насколько старым является ЯП. Пока в нем есть необходимость, он будет жить. К списку выше можно добавить Common Lisp, Erlang/Elixir, Haskell, Smalltalk. Языкам, которые имеют широкое применение, требуется очень много времени, чтобы вымереть.
Я даже не сомневаюсь, что составить исчерпывающий список вымерших языков программирования попросту невозможно. И наверняка вы вспомните несколько таких, которые я не включил в статью. Рассказывайте о них в комментариях.
Автор: El_Gato_Grande