Языки программирования.

Виктор Кон, . . . 6 мая 2022 года, . . . http://kohnvict.narod.ru

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

Самым первым моим языком был прямой машинный код компьютера М20 в 1968 году. На моем сайте есть статьи об этом. Потом был Алгол, Бейсик, Фортран. Помню, что при переходе на персональный компьютер фирмы IBM пришлось прочитать книгу с описанием операционной системы DOS. Там был свой командный язык программирования. Об этом я тоже писал, он до сих пор используется во всех версиях системы Виндовс. Фортрана мне хватило надолго, но пришлось все таки выучить ассемблер и написать несколько программ, которые расширяли возможности фортрана.

То есть я еще в начале 90-х использовал кросс-платформенное программирование. Тогда же я придумал свой язык программирования, чтобы было проще и быстрее решать задачи. В конце 90-х появился интернет и я выучил язык Javascript, а также HTML, CSS. А в 2003 году поменял свой рабочий язык программирования с Фортрана на Java. Про некоторые другие языки программирования я читал статьи, даже читал описания языков, и даже пробовал их использовать, но все ограничивалось только простыми примерами.

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

Сначала о характеристиках. Языки разделяются прежде всего по типу их использования. Типов два: интерпретируемые (И) и компилируемые (К). Первые исполняются не компьютером а другой программой, называемой интерпретатором, или по современному, виртуальной машиной, вторые исполняются непосредственно компьютером, точнее его операционной системой. Грубо говоря, первые языки содержат приказы (команды), которые выполняются программой, специально написанной для обслуживания этого языка. Вторые языки компилируются в программы как набор команд конкретного компьютера. Бывают и смешанные варианты, когда виртуальная машина компилирует части программы на лету и только потом выполняет их.

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

Actionscript (ИО)
ActiveVFP (ИП)
Ada (КО)
Algol (КП)
Alice (ИП) . . . . . . . http://www.alice.org/ -- интерпретатор на Java
APL (КП)
ASP ()
ASP.NET ()
Assembler (КП)
Basic (КП) . . . . . . . https://ru.wikipedia.org/wiki/Бейсик)
Brainfuck (КП)
C (КП) . . . . . . . . . . http://ru.wikipedia.org/wiki/Си_(язык_программирования)
C# (ИО) . . . . . . . . . https://ru.wikipedia.org/wiki/C_Sharp
C++ (КО) . . . . . . . . http://ru.wikipedia.org/wiki/C++
Ceylon (ИП) . . . . . . http://ceylon-lang.org/ -- использует Java RE
Clarion (КП)
Clipper (КП)
Clojure ()
Cobol (КП)
Coldfusion (КО)
Curry ()
D (КО)
Dart (ИО)
dBase ()
Delphi (КО)
E ()
Erlang (КО)
F# ()
Factor (KO) . . . . . . . https://factorcode.org . автор Слава Пестов
Focal ()
Forth (КП),
Fortran (КП)
Go ()
Hack (ИО) . . . . . . . https://hacklang.org
Haskell ()
IDL (ИП)
Igor Pro (ИП) . . . . . . http://www.wavemetrics.com/products/igorpro
Java (ИО) . . . . . . . . http://www.java.com/ru/download/ - - http://proglang.su/java
Javascript (ИО) . . . . http://javascript.ru/
Kotlin (ИО) . . . . . . . http://javascript.ru/ модификация Java и попытка его улучшения, использует JRE
Lasso ()
Lisp (КП)
Lua (ИП)
Mathematica (ИП) . . https://www.softpedia.com/get/Others/Home-Education/Mathematica.shtml
Mathlab (ИП) . . . . . . https://uk.mathworks.com/products/matlab.html
ML ()
Modula ()
Oberon (КO)
Obj-C (КО)
Obj-Pascal ()
OCaml (КО)
OpenEdge-ABL ()
Pascal (КП)
PHP (ИО)
Perl (ИО)
PL/1 (КП)
PL/SQL (КП)
Postscript (ИП) . . . . . . https://ru.wikipedia.org/wiki/PostScript . . . . . . . http://kohnvict.ucoz.ru/ps/tut/content.htm
Processing (ИП) . . . . . http://www.processing.org/ -- интерпретатор на Java
Prolog (КП)
Python (ИП) . . . . . . . https://www.python.org
R (ИП) . . . . . . . . https://www.r-project.org/ . . ПВ 11 апреля 2025 г.
Racket()
Rust (КО)
Rexx ()
Ruby (ИО)
Scala (ИО)
SQL ()
Scheme ()
Shell (ИП)
Simula (КО)
Smalltalk (КО)
SMX ()
Synergy ()
Swift ()
TCL (КО)
VB (КП)
VBA (КП)
WebDNA ()
X10 (КО)
Zonnon ()

Всего известных многим языков программирования более 200, ну а неизвестных языков в десятки раз больше. Правда неизвестные языки могут стать известными, они есть в интернете, просто их никто не видит. Есть очень хорошие языки, которые так и остались никому не нужны. Существует сайт, который называется Прогопедия, то есть википедия для программ. На сайте приведен список из 171 языков, некоторые из которых имеют разные версии. В частности языки Actionscript и Javascript считаются вариантами языка ECMAScript. Это не совсем так, потому что ECMAScript как язык не существует, это просто стандарт, а техническая реализация языков Actionscript и Javascript все же разная.

В список также включены некоторые языки, которые написаны энтузиастами и выставлены в каталоги программ. Но таких языков намного больше и мой тоже есть в каталогах, правда я не указал его как самостоятельный язык программирования. С другой стороны, там же есть и такие языки, как TeX, GNUPlot. Есть еще визуальные языки программирования, в которых программа пишется не текстом, а кликами мышки. Я не интересуюсь такими методами, хотя, возможно, в будущем это разовьется настолько, что станет удобным в работе. Такие методы хороши для тех, кому надо быстренько написать простую программу. Я для этой цели написал свой язык программирования.

Если реально нужно писать программы, то выбор языка программирования все же имеет значение. Советовать тут сложно, потому что у разных людей разные задачи. Я сам сейчас активно пользуюсь языками Java, Javascript, Postscript. Они очень слабо пересекаются, и у каждого есть своя область наибольшей эффективности. Первый для расчетов и анимации на экране компьютера, второй для интернета, третий для печатной графики без проблем и с большими возможностями. Возможно, для работы с базами данных нужен еще один язык, но я этим не занимаюсь. Все остальные языки делают то же самое, только по другому записывают программы.

.