Существует около 8500 языков программирования (данные не преувеличены), однако, несмотря на такое разнообразие, число языков, на которых пишет большинство, с трудом переваливает за десяток. Причин, почему тот или иной язык не стал популярным, ничуть не меньше, чем самих языков. Это и распри между их создателями, и плохо организованный процесс продажи, и появление новых технологий, и просто откровенная "недоработка". Перечислим основные языки программирования в алфавитном порядке.
Ада, АПЛ, Ассемблер, ActionScript. ABAP/4, AutoIt, AWK, BASIC, C, Кобол, C++, C#, Cw, Clarion, Cloiure, ColdFusion, CommonLisp, D, dBase, Delphi, Eiffel, Erlang, F#, Forth, Фортран, Gambas, Go, Groovy, Icon, Java, JavaScript, Limbo, Lua, MATLAB, Obiect Pascal, Obiective-C, OCaml, Oz, Оберон, Parser, Паскаль, Perl, PHP, PowerBASIC, PureBasic, Python, ПЛ/1, Пролог, Ruby, Scala, Scheme, Smalltalk, SQL, PL/SQL, Tcl, Vala, Visual Basic, VB.NET.
Академические: Clean, Curry, Haskell, Лого, ML, Модула-3, РеФал, Симула.
Прочие: Алгол, Алгол 68, Модула-2, Miranda, Hope.
Хронология создания языков программирования представлена в табл. 2.
Таблица 2
Хронология создания языков программирования
Язык | Год создания | Вид | Автор | география создания |
Фортран (Fortran) | А | Джон Бэкус | Америка | |
АПЛ (APL) | I | Джеймс Гослмнг | Америка | |
Лисп (LISP) | F | Джон Маккрти | Америка | |
АЛГОЛ-60 (Algol 60) | А | Питер Наур | Международный | |
Кобол (Cobol) | А | Группа авторов | Международный | |
Снобол (Snobol) | I | Ральф Грисуолд | Америка | |
Симула (Simulf) | В | Кристен Нигаард | Европа | |
Бейсик (Basic) | A | Дион Кемени* | Америка | |
ПЛ/1 (PL/1) | A | Джордж Радин | Америка | |
Алгол-68 (Algol 68) | A | Адван Вайнгартен+ | Международной | |
Сетл (SETL) | I | Джек Шварц | Америка | |
Форт (FORTH) | A* | Чарльз Мур | Америка | |
Паскаль* (Pascal) | С | Николаус Вирт | Европа | |
Си (С) | С | Деннис Ритчи | Америка | |
Smalltalk | В | Алан Кей | Америка | |
Пролог (Prolog) | E | Алан Кольмеро+ | Европа | |
Scheme | F | Гай Стил | Америка | |
Icon | I | Ральф Грисуолд | Америка | |
Модула-2 (Modula-2) | D | Николаус Вирт | Европа | |
Ада (Ada) | Н | Джин Ишбиа | Америка | |
Оккам (Occam) | С | Дэвид Мэй* | Европа | |
Си++ | Н | Бьорн Страутруп | Америка | |
Common Lisp | F | Гай Стил+ | Америка | |
Objective С | Н* | Брэд Кокс | Америка | |
Оберон (Oberon) | D* | Николаус Вирт | Европа | |
Модула-3 | Н* | Билл Калсов* | Америка | |
Java | Н | Джеймс Гослинг | Америка | |
Limbo | D* | Дэнис Ритчи | Америка | |
С# | Н* | Андерс Хейльсбельрг+ | Америка |
Условные обозначения:
А - процедурное программирование;
В - объектно-ориентированное программирование;
С - структурное программирование;
D - модульное (компонентное) программирование;
Е - логическое программирование;
F - функциональное программирование;
G - параллельное программирование;
Н - смесь парадигм: B + C + D + G;
I - специализированные языки;
* - поддержка системного программирования;
+ - язык программирования создан несколькими авторами.
Конечно, в табл. 2 представлены не все языки высокого уровня. Поэтому кратко перечислим, какие наиболее популярные языки вошли в ту или иную группу.
Процедурные (императивные) языки: Ada (язык общего назначения), Basic (версии начиная с Quick Basic до появления Visual Basic), Си, КОБОЛ, Фортран, Модула-2, Pascal, ПЛ/1, Рапира. Объектно-ориентированные языки: C#, C++, Java, Delphi, Eiffel, Simula, Object Pascal, VB.NET, Visual DataFlex, Perl, PowerBuilder, Python, Scala, Ruby, Smalltalk, Ada, Xbase++, Vala, PHP.
Логические языки: Prolog, Planner, QA-4, Popler, Conniver, QLISP, Mercury, Visual Prolog, Oz, Fril, Ether.
Языки описания сценариев: Perl, Python, REXX, Tcl предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Так, среди разработчиков Web-страниц популярен JavaScript.
Все популярные языки можно также разделить на универсальные и специализированные. Универсальные языки используются для решения разных задач. Эти языки позволяют решить любую задачу, хотя трудоемкость решения конкретной задачи в разных языках будет сильно отличаться.
К универсальным языкам можно отнести: Pascal, Basic, C++, Java, Delphi, Borland, C#. Специализированные языки предназначены для решения задач одного, максимум нескольких, видов задач.(например, работы с базами данных, web-программирования или написание скриптов для администрирования операционных систем). Например, к языкам, предназначенным для web-программирования относятся:
а) языки, исполняющиеся на сервере, поддерживающего Web-сайт: РНР, Perl, VBScript;
б) языки, исполняющиеся на браузере клиента: JavaScript, JScript, VBScript, HTML и др. Языки программирования можно классифицировать по типам задач.