Content deleted Content added
add CL Tiobe figures |
Citation bot (talk | contribs) Added date. | Use this bot. Report bugs. | Suggested by Jay8g | #UCB_toolbar |
||
Line 1:
{{short description|none}}
{{ProgLangCompare}}
[[Programming language]]s are used for controlling the behavior of a machine (often a [[computer]]). Like [[natural language]]s, programming languages follow rules for [[syntax]] and [[semantics]].
There are [[list of programming languages|thousands of programming languages]]<ref>As of May 2006 Diarmuid Pigott's [http://hopl.murdoch.edu.au/ Encyclopedia of Computer Languages] {{webarchive|url=https://web.archive.org/web/20110220044217/http://hopl.murdoch.edu.au/ |date=2011-02-20}} hosted at [[Murdoch University]], [[Australia]] lists 8512 computer languages.</ref> and new ones are created every year. Few languages ever become sufficiently popular that they are used by more than a few people, but professional [[programmer]]s may use dozens of languages in a career.
Most programming languages are not standardized by an international (or national) standard, even widely used ones, such as [[Perl]] or [[Standard ML]] (despite the name). Notable standardized programming languages include [[ALGOL]], [[C (programming language)|C]], [[C++]], JavaScript (under the name [[ECMAScript]]), [[Smalltalk]], [[Prolog]], [[Common Lisp]], [[Scheme (programming language)|Scheme]] ([[IEEE]] standard), [[ISLISP]], [[Ada (programming language)|Ada]], [[Fortran]], [[COBOL]], [[SQL]], and [[XQuery]].
__TOC__
{{-}}
==General comparison==
The following table compares general and technical information for a selection of commonly used [[programming language]]s. See the individual languages' articles for further information.
<!-- Per [[WP:REPEATLINK]]: Wikilink terms on 1st instance only, remove later repeat links. -->
{{sticky header}}
{{sort-under}}
{|class="wikitable sortable sort-under sticky-header" style="text-align:center;"
|-
! scope="col" | Language
! scope="col" | Original purpose
! scope="col" | [[Imperative programming|Imperative]]
! scope="col" | [[Object-oriented programming|Object-oriented]]
! scope="col" | [[Functional programming|Functional]]
! scope="col" | [[Procedural programming|Procedural]]
! scope="col" | [[Generic programming|Generic]]
! scope="col" | [[Reflective programming|Reflective]]
! scope="col" | Other [[Programming paradigm|paradigms]]
! scope="col" | [[Standardization|Standardized]]
|-
!
| <!-- Original purpose --> [[Application software development|Application]], [[Rapid application development|RAD]], business, [[General-purpose programming language|general]], [[Web development|web]], [[Mobile app development|mobile]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[Object-based]], Prototype-based programming
| <!-- Standardized? --> {{no}}
|-
!
| <!-- Original purpose --> Application, [[client-side]], web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[prototype-based]]
| <!-- Standardized? --> {{yes}}<br/>1999-2003, [[ECMAScript|ActionScript 1.0 with ES3, ActionScript 2.0 with ES3 and partial ES4 draft, ActionScript 3.0 with ES4 draft]],<!-- ECMA-262 --> [[ECMAScript for XML|ActionScript 3.0 with E4X]]<!-- ECMA-357 -->
|-
! scope="row" | [[Ada (programming language)|Ada]]
| <!-- Original purpose --> Application, [[Embedded system|embedded]], [[Real-time computing|realtime]], [[System programming language|system]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-3-9.html 3.9 Tagged Types and Type Extensions]</ref>
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-6.html Section 6: Subprograms]</ref>
| <!-- Generic --> {{yes}}<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-12.html Section 12: Generic Units]</ref>
| <!-- Reflective --> {{no}}
|<!-- Other paradigms -->[[concurrent programming language|Concurrent]],<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-9.html Section 9: Tasks and Synchronization]</ref> [[distributed programming|distributed]]<ref>{{Cite web|url=https://www.adaic.org/resources/add_content/standards/05rm/html/RM-E.html|title=Distributed Systems|website=www.adaic.org}}</ref>
| <!-- Standardized? --> {{yes}}<br/>1983, 2005, 2012, ANSI, ISO, [[GOST]] 27831-88<ref>{{Cite web |url=http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27831-88.pdf |title=Vak.ru |access-date=2008-08-09 |archive-url=https://web.archive.org/web/20170330020459/http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27831-88.pdf |archive-date=2017-03-30 |url-status=dead}}</ref>
|-
!
| <!-- Original purpose --> Highly [[Domain-specific language|___domain-specific]], [[Computer algebra|symbolic computing]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[ALGOL 58]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
!
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1960, [[IFIP WG 2.1]], ISO<ref>{{Cite web|url=https://www.open-std.org/jtc1/sc22/docs/oldwgs/wg6.html|title=ISO/IEC JTC1/SC22/WG6 - Algol|website=www.open-std.org}}</ref>
|-
! scope="row" | [[ALGOL 68]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{yes}}<br/>1968, [[IFIP WG 2.1]], [[GOST 27974-88]],<ref>{{Cite web |url=http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27974-88.pdf |title=Vak.ru |access-date=2008-08-09 |archive-url=https://web.archive.org/web/20170324231641/http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27974-88.pdf |archive-date=2017-03-24 |url-status=dead}}</ref>
|-
! scope="row" | [[Ateji PX]]
| <!-- Original purpose --> Parallel application
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[pi calculus]]
| <!-- Standardized? --> {{no}}
|-
!
| <!-- Original purpose --> Application, [[data processing]]
| <!-- Imperative --> {{yes}}
|
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[array programming|Array-oriented]], [[tacit programming|tacit]]
| <!-- Standardized? --> {{yes}}<br/>1989, ISO
|-
!
| <!-- Original purpose --> General
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Any, syntax is usually highly specific, related to the target processor
| <!-- Standardized? --> {{yes}}<br/>1985 IEEE 694-1985<ref>{{Cite web|url=https://standards.ieee.org/ieee/694/950/|title=IEEE Standards Association|website=IEEE Standards Association}}</ref>
|-
!
| <!-- Original purpose --> GUI automation ([[Macro (computer science)#Application macros and scripting|macros]]), highly ___domain-specific
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}<br/><ref>{{Cite web|url=https://www.autohotkey.com/docs/Objects.htm|title=Objects - Definition & Usage}}</ref>
|
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
!
| <!-- Original purpose --> GUI automation (macros), highly ___domain-specific
| <!-- Imperative --> {{yes}}
|
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Ballerina (programming language)|Ballerina]]
| <!-- Original purpose --> Integration, agile, [[server-side]], general
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent, transactional, statically and strongly typed, diagrammatic–visual
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Ballerina Language Specification<ref>{{cite web |url=https://ballerina.io/res/Ballerina-Language-Specification-WD-2015-05-01.pdf |publisher=WSO2 |title=Ballerina Language Specification |date=2018-05-01 |access-date=2018-05-03 |archive-date=2018-05-04 |archive-url=https://web.archive.org/web/20180504090305/https://ballerina.io/res/Ballerina-Language-Specification-WD-2015-05-01.pdf |url-status=dead}}</ref>
|-
!
| <!-- Original purpose --> [[Shell (computing)|Shell]], [[Scripting language|scripting]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{maybe|Optionally}}<br/>[[POSIX.2]]<ref name="POSIX 1003">[[POSIX.2]], Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.)</ref>
|-
! scope="row" | [[BASIC]]
| <!-- Original purpose --> Application, education
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1983, ANSI, ISO, ECMA
|-
! scope="row" | [[BeanShell]]
| <!-- Original purpose --> Application, scripting
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}<br/>In progress, [[Java Community Process|JCP]]<ref>{{Cite web|url=https://jcp.org/en/jsr/detail?id=274|title=The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 274|website=jcp.org}}</ref>
|-
! scope="row" | [[BLISS]]
| <!-- Original purpose --> System
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
!
| <!-- Original purpose --> Application, game
| <!-- Imperative --> {{yes}}
|
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Boo (programming language)|Boo]]
| <!-- Original purpose --> Application, game scripting
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[C (programming language)|C]]
| <!-- Original purpose --> Application, system,<ref>{{Cite web|url=https://www.bell-labs.com/usr/dmr/www/chist.html|title=Chistory|website=www.bell-labs.com}}</ref> general purpose, low-level operations
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1989, [[ANSI C|ANSI C89, ISO/IEC C90, ISO/IEC C95, ISO/IEC C99, ISO/IEC C11, ISO/IEC C17, ISO/IEC C2x]]<ref>{{Cite web|url=https://www.open-std.org/JTC1/SC22/WG14/|title=ISO/IEC JTC1/SC22/WG14 - C|website=www.open-std.org}}</ref>
|-
! scope="row" | [[C++]]
| <!-- Original purpose --> Application, system
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{yes}}<br/>1998, [[C++#Standardization|ISO/IEC C++98, ISO/IEC C++03, ISO/IEC C++11, ISO/IEC C++14, ISO/IEC C++17, ISO/IEC C++20, ISO/IEC C++23, ISO/IEC C++26]]<ref>{{Cite web|url=https://www.open-std.org/JTC1/SC22/WG21/|title=ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP|website=www.open-std.org}}</ref>
|-
! scope="row" | [[C Sharp (programming language)|C#]]
| <!-- Original purpose --> Application, RAD, business, client-side, general, server-side, web, [[game programming]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}<ref>{{Cite web|url=http://www.codeproject.com/KB/cs/intro_functional_csharp.aspx|title=Codeproject.com: Functional Programming in C# 3.0 using Lambda Expression}}</ref>
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, structured
| <!-- Standardized? --> {{yes}}<br/>2000, ECMA, ISO<ref>ECMA-334; ISO/IEC 23270:2006</ref>
|-
! scope="row" | [[Clarion (programming language)|Clarion]]
| <!-- Original purpose --> General, business, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}<ref>{{Cite web|url=https://www.softvelocity.com/|title=Clarion - Home|website=www.softvelocity.com}}</ref>
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
|-
! scope="row" | [[Clean (programming language)|Clean]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Clojure]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[CLU (programming language)|CLU]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[COBOL]]
| <!-- Original purpose --> Application, business
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1968 ANSI X3.23, 1974, 1985; ISO/IEC 1989:1985, 2002, 2014, 2023
|-
! scope="row" | [[Cobra (programming language)|Cobra]]
| <!-- Original purpose --> Application, business, general, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[ColdFusion Markup Language|ColdFusion]] (CFML)
| <!-- Original purpose --> Web
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Common Lisp]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Extensible syntax, [https://github.com/equwal/CLAPL Array-oriented], [[Macro (computer science)#Syntactic macros|syntactic macros]], [[multiple dispatch]], concurrent
| <!-- Standardized? --> {{yes}}<br/>1994, ANSI
|-
! scope="row" | [[COMAL]] 80
| <!-- Original purpose --> Education
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Crystal (programming language)|Crystal]]
| <!-- Original purpose --> General purpose
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}<ref>{{Cite web|url=https://github.com/crystal-lang/crystal#why|title=Crystal|website=[[GitHub]]|date=2 November 2021}}</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}<ref>{{Cite web|url=https://crystal-lang.org/reference/1.12/syntax_and_semantics/generics.html|title=Crystal Generics|website=crystal-lang.org|date=13 April 2024}}</ref>
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->Concurrent<ref>{{Cite web |title=Concurrency - Crystal |url=https://crystal-lang.org/reference/1.11/guides/concurrency.html |access-date=2024-04-02 |website=crystal-lang.org}}</ref>
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Curry (programming language)|Curry]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[lazy evaluation]], non-determinism
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Curry Language Report
|-
! scope="row" | [[Cython]]
| <!-- Original purpose --> Application, general, [[numerical computing]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[aspect-oriented programming|Aspect-oriented]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[D (programming language)|D]]
| <!-- Original purpose --> Application, system
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Generative, concurrent
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Dart (programming language)|Dart]]
| <!-- Original purpose --> Application, web, server-side, mobile, [[Internet of things|IoT]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Structured
| <!-- Standardized? --> {{yes}}<br/>ECMA-408 standard
|-
! scope="row" | [[Delphi (software)|Delphi]], [[Object Pascal]]
| <!-- Original purpose --> General purpose
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --><br/> {{unknown}}
|-
! scope="row" | [[Dylan (programming language)|Dylan]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Eiffel (programming language)|Eiffel]]
| <!-- Original purpose --> General, application, business, client-side, server-side, web (EWF)
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}<ref>{{Cite web|url=https://se.inf.ethz.ch/~meyer/publications/online/eiffel/basic.html|title=Bertrand Meyer: Basic Eiffel language mechanisms|website=se.inf.ethz.ch}}</ref><ref>[[Closure (computer programming)#Inline agents .28Eiffel.29:|Closure (computer programming)]]</ref>
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}} [http://se.inf.ethz.ch/old/people/leitner/erl_g Erl-G]
| <!-- Other paradigms --> Distributed [https://docs.eiffel.com/book/solutions/concurrent-eiffel-scoop: SCOOP], [https://docs.eiffel.com/book/method/void-safe-programming-eiffel: Void-safe]
| <!-- Standardized? --> {{yes}}<br/>2005, ECMA, ISO<ref>ECMA-367; ISO/IEC 25436:2006</ref>
|-
! scope="row" | [[ELAN (programming language)|ELAN]]
| <!-- Original purpose --> Education
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[Structured programming|Structured]], [[Top-down and bottom-up design|stepwise refinement]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Elixir (programming language)|Elixir]]
| <!-- Original purpose --> Application, [[Distributed computing|distributed]]
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, distributed
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Erlang (programming language)|Erlang]]
| <!-- Original purpose --> Application, distributed
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, distributed
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Euphoria (programming language)|Euphoria]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Factor (programming language)|Factor]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{maybe|Can be viewed as}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[stack-oriented programming|Stack-oriented]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[FP (programming language)|FP]]
| <!-- Original purpose -->
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[F Sharp (programming language)|F#]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Forth (programming language)|Forth]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Stack-oriented
| <!-- Standardized? --> {{yes}}<br/>1994, ANSI
|-
! scope="row" | [[Fortran]]
| <!-- Original purpose --> Application, numerical computing
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Array-based, vectorized, concurrent, native distributed/shared-memory parallelism
| <!-- Standardized? --> {{yes}}<br/>1966, ANSI 66, ANSI 77, MIL-STD-1753, ISO 90, ISO 95, ISO 2003, ISO/IEC 1539-1:2010 (2008), ISO/IEC JTC1/SC22/WG5 N2145 (2018)
|-
! scope="row" | [[FreeBASIC]]
| <!-- Original purpose --> Application, numerical computing
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Gambas]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Game Maker Language]]
| <!-- Original purpose --> Application, game programming
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[GLBasic]]
| <!-- Original purpose --> Application, games
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Simple object-oriented
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Go (programming language)|Go]]
| <!-- Original purpose --> Application, web, server-side
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{maybe|Can be viewed as}}<ref>{{Cite web|url=https://go.dev/doc/faq|title=Frequently Asked Questions (FAQ) - The Go Programming Language|website=go.dev}}</ref>
| <!-- Functional --> {{maybe|Can be viewed as}}<ref>{{Cite web |url=https://go.dev/doc/codewalk/functions/ |title=Codewalk: First-Class Functions in Go |quote=Go supports first class functions, higher-order functions, user-defined function types, function literals, closures, and multiple return values. This rich feature set supports a functional programming style in a strongly typed language.}}</ref>
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Go Language Specification
|-
! scope="row" | [[Gosu (programming language)|Gosu]]
| <!-- Original purpose --> Application, general, scripting, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[GraphTalk]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Logic
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Groovy (programming language)|Groovy]]
| <!-- Original purpose --> Application, general, scripting, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Meta-programming
| <!-- Standardized? --> {{no}}<br/>In progress, [[Java Community Process|JCP]]<ref>{{Cite web|url=https://jcp.org/en/jsr/detail?id=241|title=The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 241|website=jcp.org}}</ref>
|-
! scope="row" | [[Harbour (programming language)|Harbour]]
| <!-- Original purpose --> Application, business, data processing, general, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[declarative programming|Declarative]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Haskell]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Lazy evaluation
| <!-- Standardized? --> {{yes}}<br/>2010, Haskell 2010<ref>{{cite web |url=http://www.haskell.org/onlinereport/haskell2010/ |title=The Haskell 2010 Language Report |access-date=2011-12-07}} Most Haskell implementations extend the Haskell 2010 standard.</ref>
|-
! scope="row" | [[Haxe]]
| <!-- Original purpose --> Application, general, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[HyperTalk]]
| <!-- Original purpose --> Application, RAD, general
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Weakly typed
| <!-- Standardized? --> {{unknown}}
|-
! scope="row" | [[Io (programming language)|Io]]
| <!-- Original purpose --> Application, host-driven scripting
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Information Processing Language|IPL]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
|-
! scope="row" | [[ISLISP]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1997, 2007, [[International Organization for Standardization|ISO]]
|-
! scope="row" | [[J (programming language)|J]]
| <!-- Original purpose --> Application, [[data processing]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Array-oriented, [[function-level programming|function-level]], tacit, concurrent
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[JADE (programming language)|JADE]]
| <!-- Original purpose --> Application, distributed
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Java (programming language)|Java]]
| <!-- Original purpose --> Application, business, client-side, general, mobile development, server-side, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Java Language Specification
|-
! scope="row" | [[JavaScript]]
| <!-- Original purpose --> Client-side, server-side, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[prototype-based]]
| <!-- Standardized? --> {{yes}}<br/>[[ECMA-262]] standard
|-
! scope="row" | [[Joy (programming language)|Joy]]
| <!-- Original purpose --> Research
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Stack-oriented
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[jq (programming language)|jq]]
| <!-- Original purpose --> "awk for JSON"
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[Tacit programming|Tacit]], [[Backtracking]], [[Generator (computer programming)|Streaming]], [[Parsing expression grammar|PEG]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Julia (programming language)|Julia]]
| <!-- Original purpose --> General, technical computing
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{maybe|Can be viewed as}}<ref>{{Cite web |url=https://medium.com/@abhimanyuaryan/object-oriented-programming-in-julia-4dbde2661fde|title=Object-Oriented programming in julia|date=4 June 2023 |quote= in Julia, Oriented programming is not the primary focus, instead it emphasizes multiple dispatches, a more general concept. Despite this, OOP can still be achieved in Julia through the use of composite types and methods.}}</ref><ref>{{Cite web |url=https://dev.to/acmion/julia-object-oriented-programming-5dgh |title=Julia Object Oriented Programming |date=29 May 2021 |quote=Julia does only partially support object oriented programming (OOP) }}</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Multiple dispatch, meta, scalar and array-oriented, parallel, concurrent, distributed ("cloud")
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Julia Documentation<ref>{{Cite web|url=https://docs.julialang.org/en/v1/|title=Julia Documentation · The Julia Language|website=docs.julialang.org}}</ref>
|-
! scope="row" | [[K (programming language)|K]]
| <!-- Original purpose --> Data processing, business
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Array-oriented, tacit
| <!-- Standardized? --> {{unknown}}
|-
! scope="row" | [[Kotlin (programming language)|Kotlin]]
| <!-- Original purpose --> Application, general, mobile development, server-side, client-side, web, scripting<ref>{{Cite web|url=https://github.com/Kotlin/kotlin-script-examples/blob/master/jvm/main-kts/MainKts.md|title=kotlin-script-examples/jvm/main-kts/MainKts.md at master · Kotlin/kotlin-script-examples|website=GitHub}}</ref>, ___domain-specific<ref>{{Cite web|url=https://kotlinlang.org/docs/type-safe-builders.html|title=Type-safe builders | Kotlin|website=Kotlin Help}}</ref>
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}<ref>{{cite web |url=http://blog.jetbrains.com/kotlin/2014/07/m8-is-out/ |title=M8 is out! |date=2 July 2014 |quote=As a first peek into the future reflective capabilities of Kotlin, you can now access properties as first-class objects in Kotlin}}</ref>
| <!-- Other paradigms --> Concurrent<ref>{{Cite web|url=https://kotlinlang.org/docs/coroutines-overview.html|title=Coroutines | Kotlin|website=Kotlin Help}}</ref>
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Kotlin Language Specification
|-
! scope="row" | [[KornShell|Ksh]]
| <!-- Original purpose --> [[Shell (computing)|Shell]], [[Scripting language|scripting]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Several variants, custom programmable, dynamic loadable modules
| <!-- Standardized? --> {{maybe|Optionally}}<br/>[[POSIX.2]]<ref name="POSIX 1003"/>
|-
! scope="row" | [[LabVIEW]] (G)
| <!-- Original purpose --> Application, industrial instrumentation-automation
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[dataflow programming|Dataflow]], [[visual programming language|visual]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Lisp (programming language)|Lisp]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
|-
! scope="row" | [[LiveCode]]
| <!-- Original purpose --> Application, RAD, general
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Weakly typed
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Logtalk]]
| <!-- Original purpose --> Artificial intelligence, application
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Logic
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Linden Scripting Language]] (LSL)
| <!-- Original purpose --> Virtual worlds content scripting and animation
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Scripts exist in in-world objects
| <!-- Standardized? --> {{maybe|De facto}}<br/>reference is the [[Second Life]] implementation of [[Linden Scripting Language|LSL]].<ref>Halcyon (Inworldz) and Open Sims propose compatible implementations with additional functions.</ref>
|-
! scope="row" | [[Lua (programming language)|Lua]]
| <!-- Original purpose --> Application, embedded scripting
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}<ref>Lua does not have explicit "object" type (more general type of "table" is used for object definition), but does have explicit syntax for object method calling</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented, prototype-based
| <!-- Standardized? --> {{no}}<ref>Version releases are accompanied with a definitive Lua Reference Manual showing full syntax and semantics; a reference implementation, and a test suite. These are used to generate other Lua [[virtual machine|VM]] implementations and compilers such as Kahlua and LLVM-Lua.</ref>
|-
! scope="row" | [[Maple (software)|Maple]]
| <!-- Original purpose --> Symbolic computation, numerical computing
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Distributed
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Mathematica]]
| <!-- Original purpose --> [[Symbolic language (programming)|Symbolic language]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Logic, distributed
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[MATLAB]]
| <!-- Original purpose --> Highly ___domain-specific, numerical computing
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Modula-2]]
| <!-- Original purpose --> Application, system
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1996, ISO<ref>ISO/IEC 10514-1:1996</ref>
|-
! scope="row" | [[Modula-3]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[MUMPS]] (M)
| <!-- Original purpose --> General, application, databases
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{planned|Approved for next Standard}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{some|Partially}} Thru Indirection and Xecute
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[Concurrent computing|Concurrent]], [[multi-user]], [[NoSQL]], [[transaction processing]]
| <!-- Standardized? --> {{yes}}<br/>1977 ANSI, 1995, ISO 2020
|-
! scope="row" | [[Nim (programming language)|Nim]]
| <!-- Original purpose --> Application, general, web, scripting, system
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Multiple dispatch, concurrent, [[Metaprogramming|meta]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Oberon (programming language)|Oberon]]
| <!-- Original purpose --> Application, system
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Object Pascal]]
| <!-- Original purpose --> Application, general, mobile app, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Structured
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Objective-C]]
| <!-- Original purpose --> Application, general
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[OCaml]]
| <!-- Original purpose --> Application, general
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Occam (programming language)|Occam]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent, [[process-oriented programming|process-oriented]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Opa (programming language)|Opa]]
| <!-- Original purpose --> Web applications
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Distributed
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[OpenLisp]]
| <!-- Original purpose --> General, Embedded Lisp Engine
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{maybe|Optionally}}<br/> [[ISLISP]]
|-
! scope="row" | [[Oxygene (programming language)|Oxygene]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Oz (programming language)|Oz-Mozart]]
| <!-- Original purpose --> Application, distribution, education
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent, logic
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Pascal (programming language)|Pascal]]
| <!-- Original purpose --> Application, education
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1983, ISO<ref>ISO 7185</ref>
|-
! scope="row" | [[Perl]]
| <!-- Original purpose --> Application, scripting, text processing, Web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[PHP]]
| <!-- Original purpose --> Server-side, web application, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.oop5.php Chapter 19. Classes and Objects (PHP 5)],</ref>
| <!-- Functional --> {{yes}}<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.functions.php Chapter 17. Functions]</ref>
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via language specification and Requests for Comments (RFCs)
|-
! scope="row" | [[PL/I]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1969, ECMA-50 (1976)
|-
! scope="row" | [[Plus (programming language)|Plus]]
| <!-- Original purpose --> Application, system development
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[PostScript]]
| <!-- Original purpose --> Graphics, page description
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[Concatenative programming language|Concatenative]], [[Stack-oriented programming|stack-oriented]]
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via the PostScript Reference Manual<ref>{{Cite web |url=https://www.adobe.com/products/postscript/pdfs/PLRM.pdf |title=PostScript Language Reference Manual |access-date=2017-02-18 |archive-url=https://web.archive.org/web/20170218093716/https://www.adobe.com/products/postscript/pdfs/PLRM.pdf |archive-date=2017-02-18 |url-status=dead}}</ref>
|-
! scope="row" | [[Windows PowerShell|PowerShell]]
| <!-- Original purpose --> Administration, application, general, scripting
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[pipeline programming|Pipeline]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Prolog]]
| <!-- Original purpose --> Application, artificial intelligence
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Logic, declarative
| <!-- Standardized? --> {{yes}}<br/>1995, ISO/IEC 13211-1:1995, TC1 2007, TC2 2012, TC3 2017
|-
! scope="row" | [[PureBasic]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Python (programming language)|Python]]
| <!-- Original purpose --> Application, general, web, scripting, artificial intelligence, scientific computing
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Python Enhancement Proposals (PEPs)
|-
! scope="row" | [[R (programming language)|R]]
| <!-- Original purpose --> Application, statistics
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Racket (programming language)|Racket]]
| <!-- Original purpose --> Education, general, scripting
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[Modular programming|Modular]], logic, meta
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Raku (programming language)|Raku]]
| <!-- Original purpose --> Scripting, text processing, glue
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented, array, lazy evaluation, multiple dispatch, metaprogramming
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[REALbasic]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
|-
! scope="row" | [[Rebol]]
| <!-- Original purpose --> Distributed
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[dialecting|Dialected]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[REXX]]
| <!-- Original purpose --> Scripting
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}} ([[NetRexx]] and [[Object REXX]] dialects)
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1996 (ANSI X3.274-1996)
|-
! scope="row" | [[IBM RPG|RPG]]
| <!-- Original purpose --> Application, system
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Ring (programming language)|Ring]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> metaprogramming, declarative, [[natural-language programming|natural-language]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Ruby (programming language)|Ruby]]
| <!-- Original purpose --> Application, scripting, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented
| <!-- Standardized? --> {{yes}}<br/>2011(JIS X 3017), 2012(ISO/IEC 30170)
|-
! scope="row" | [[Rust (programming language)|Rust]]
| <!-- Original purpose --> Application, server-side, system, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{maybe|Can be viewed as}}<ref>{{Cite web|url=https://doc.rust-lang.org/book/ch17-00-oop.html|title=Object-Oriented Programming Features|website=doc.rust-lang.org}}</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}<ref>{{cite book |last1=Klabnik |first1=Steve |last2=Nichols |first2=Carol |title=The Rust Programming Language |url=https://doc.rust-lang.org/book/title-page.html |chapter=Macros |chapter-url=https://doc.rust-lang.org/book/ch19-06-macros.html}}</ref>
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{maybe|De facto}} standard by the official Rust releases
|-
! scope="row" | [[S (programming language)|S]]
| <!-- Original purpose --> Application, statistics
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[S-Lang]]
| <!-- Original purpose --> Application, numerical, scripting
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Scala (programming language)|Scala]]
| <!-- Original purpose --> Application, general, parallel, distributed, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Data-oriented programming, metaprogramming
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Scala Language Specification (SLS)
|-
! scope="row" | [[Scheme (programming language)|Scheme]]
| <!-- Original purpose --> Education, general
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> meta, extensible-syntax
| <!-- Standardized? --> {{maybe|De facto}}<br/>1975-2013, R<sup>0</sup>RS, R<sup>1</sup>RS, R<sup>2</sup>RS, R<sup>3</sup>RS, R<sup>4</sup>RS, R<sup>5</sup>RS, R<sup>6</sup>RS, R<sup>7</sup>RS Small Edition<ref>{{Cite web|url=https://standards.scheme.org/|title=Scheme Standards|website=standards.scheme.org}}</ref><ref>{{Cite web|url=https://standards.scheme.org/early/|title=Scheme Standards|website=standards.scheme.org}}</ref>
|-
! scope="row" | [[Seed7]]
| <!-- Original purpose --> Application, general, scripting, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Multi-paradigm, extensible, structured
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Simula]]
| <!-- Original purpose --> Education, general
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[discrete event simulation]], [[multi-threaded]] (quasi-parallel) program execution
| <!-- Standardized? --> {{yes}}<br/>1968
|-
! scope="row" | [[Microsoft Small Basic|Small Basic]]
| <!-- Original purpose --> Application, education, games
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[component-oriented programming|Component-oriented]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Smalltalk]]
| <!-- Original purpose --> Application, general, business, artificial intelligence, education, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, declarative
| <!-- Standardized? --> {{yes}}<br/>1998, ANSI
|-
! scope="row" | [[SNOBOL]]
| <!-- Original purpose --> Text processing
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
|-
! scope="row" | [[Standard ML]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1997, SML '97<ref>{{Cite web|url=http://www.smlnj.org/sml97.html|title=SML '97|website=www.smlnj.org}}</ref>
|-
! scope="row" | [[Swift (programming language)|Swift]]
| <!-- Original purpose --> Application, general
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, declarative, [[Protocol (object-oriented programming)|protocol-oriented]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Tcl]]
| <!-- Original purpose --> Application, scripting, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[V (programming language)|V (Vlang)]]
| <!-- Original purpose --> Application, general, system, game, web, server-side
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{maybe|Can be viewed as}}
| <!-- Functional --> {{maybe|Can be viewed as}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Visual Basic (classic)|Visual Basic]]
| <!-- Original purpose --> Application, RAD, education, business, general, (Includes VBA), office automation
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Component-oriented
| <!-- Standardized? --> {{no}}
|-
! scope="row" | {{nowrap|[[Visual Basic .NET]]}}
| <!-- Original purpose --> Application, RAD, education, web, business, general
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Structured, concurrent
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Visual FoxPro]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Data-centric, logic
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Visual Prolog]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Declarative, logic
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Wolfram Language]]
| <!-- Original purpose --> Symbolic language
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Logic, distributed
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[XL (programming language)|XL]]
| <!-- Original purpose -->
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[concept programming]]
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Xojo]]
| <!-- Original purpose --> Application, RAD, general, web
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[XPath]]/[[XQuery]]
| <!-- Original purpose --> Databases, data processing, scripting
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[Tree (data structure)|Tree-oriented]]
| <!-- Standardized? --> {{yes}}<br/>1999 W3C XPath 1, 2010 W3C XQuery 1, 2014 W3C XPath/XQuery 3.0
|-
! scope="row" | [[Zeek]]
| <!-- Original purpose --> Domain-specific, application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Zig (programming language)|Zig]]
| <!-- Original purpose --> Application, general, system
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{no}}
|-
! scope="row" | [[Z shell|Zsh]]
| <!-- Original purpose --> [[Shell (computing)|Shell]], [[Scripting language|scripting]]
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Loadable modules
| <!-- Standardized? --> {{maybe|Optionally}}<br/>[[POSIX.2]]<ref name="POSIX 1003"/>
|}
==Type systems==
{{main|Comparison of programming languages by type system}}
==Failsafe I/O and system calls==
Most programming languages will print an [[error message]] or throw an [[exception handling|exception]] if an [[input/output]] operation or other [[system call]] (e.g., [[chmod]], [[kill (Unix)|kill]]) fails, unless the programmer has explicitly arranged for different handling of these events. Thus, these languages [[failsafe|fail safely]] in this regard.
Some (mostly older) languages require that programmers explicitly add checks for these kinds of errors. Psychologically, different [[List of cognitive biases|cognitive biases]] (e.g., [[optimism bias]]) may affect novices and experts alike and lead them to skip these checks. This can lead to [[software bug|erroneous behavior]].
'''Failsafe I/O''' is a feature of [[1C:Enterprise programming language|1C:Enterprise]], [[Ada (programming language)|Ada]] (exceptions), [[ALGOL]] (exceptions or return value depending on function), [[Ballerina (programming language)|Ballerina]], [[C Sharp (programming language)|C#]], [[Common Lisp]] ("conditions and restarts" system), [[Curry (programming language)|Curry]], [[D (programming language)|D]] (throwing on failure),<ref>{{Cite web|url=https://dlang.org/phobos/std_stdio.html|title=std.stdio - D Programming Language|website=dlang.org}}</ref> [[Erlang (programming language)|Erlang]], [[Fortran]], [[Go (programming language)|Go]] (unless result explicitly ignored), [[Gosu (programming language)|Gosu]], [[Harbour (programming language)|Harbour]], [[Haskell]], [[ISLISP]], [[Java (programming language)|Java]], [[Julia (programming language)|Julia]], [[Kotlin (programming language)|Kotlin]], [[LabVIEW]], [[Mathematica]], [[Objective-C]] (exceptions), [[OCaml]] (exceptions), [[OpenLisp]], [[PHP]], [[Python (programming language)|Python]], [[Raku (programming language)|Raku]], [[Rebol]], [[Rexx]] (with optional '''signal on'''... trap handling), [[Ring (programming language)|Ring]], [[Ruby (programming language)|Ruby]], [[Rust (programming language)|Rust]] (unless result explicitly ignored), [[Scala (programming language)|Scala]],<ref>Scala runs on the Java Virtual Machine from which it inherits the runtime exception handling.</ref> [[Smalltalk]], [[Standard ML]] {{citation needed|date=February 2011}}, [[Swift (programming language)|Swift ≥ 2.0]] (exceptions), [[Tcl]], [[Visual Basic (classic)|Visual Basic]], [[Visual Basic (.NET)|Visual Basic .NET]], [[Visual Prolog]], [[Wolfram Language]], [[Xojo]], [[XPath]]/[[XQuery]] (exceptions), and [[Zeek]].
'''No Failsafe I/O''':
[[AutoHotkey]] (global ErrorLevel must be explicitly checked), [[C (programming language)|C]],<ref name="VS">[[GNU compiler collection|gcc]] can warn on unchecked [[errno.h|errno]]. Newer versions of [[Visual Studio]] usually throw exceptions on failed I/O when using [[C file input/output|stdio]].</ref> [[COBOL]], [[Eiffel (programming language)|Eiffel]] (it actually depends on the library and it is not defined by the language), [[GLBasic]] (will generally cause program to crash), [[IBM RPG|RPG]], [[Lua (programming language)|Lua]] (some functions do not warn or throw exceptions), and [[Perl]].<ref>Considerable error checking can be enabled optionally, but by default Perl is not failsafe.</ref>
Some I/O checking is built in [[C++]] ([[Input/output (C++)|STL iostreams]] throw on failure but C APIs like [[C file input/output|stdio]] or [[C POSIX library|POSIX]] do not)<ref name="VS"/> and [[Object Pascal]], in [[Bash (Unix shell)|Bash]]<ref><code>set -e</code> enables termination if any unchecked [[exit status]] is nonzero.</ref> it is optional.
==Expressiveness==
{|class="wikitable sortable" style="float:right;"
|-
! scope="col" | Language
! scope="col" | Statements ratio<ref>Data from {{cite book |last=McConnell |first=Steve |date=30 November 2009 |url=https://books.google.com/books?id=3JfE7TGUwvgC&pg=PT100 |title=Code Complete |page=100 |publisher=Microsoft Press |isbn=9780735636972}} The ''Statements ratio'' column "shows typical ratios of source statements in several high-level languages to the equivalent code in C. A higher ratio means that each line of code in the language listed accomplishes more than does each line of code in C.</ref>
! scope="col" | Lines ratio<ref>The ratio of line count tests won by each language to the number won by C when using the ''Compare to'' feature at {{cite web |url=https://blog.wolfram.com/2012/11/14/code-length-measured-in-14-languages/ |title=Code Length Measured in 14 Languages |last=McLoone |first=Jon |date=November 14, 2012 |archive-url=https://web.archive.org/web/20121119043607/https://blog.wolfram.com/2012/11/14/code-length-measured-in-14-languages/ |archive-date=2012-11-19}} C gcc was used for C, C++ g++ was used for C++, FORTRAN G95 was used for FORTRAN, Java JDK Server was used for Java, and Smalltalk GST was used for Smalltalk.</ref>
|-
| C || 1 || 1
|-
| C++ || 2.5 || 1
|-
| Fortran || 2 || 0.8
|-
| Java || 2.5 || 1.5
|-
| Perl || 6 || 6
|-
| Smalltalk || 6 || 6.25
|-
| Python || 6 || 6.5
|}
The literature on programming languages contains an abundance of informal claims about their relative [[Expressive power (computer science)|expressive power]], but there is no framework for formalizing such statements nor for deriving interesting consequences.<ref>{{cite conference |citeseerx=10.1.1.51.4656 |title=On the Expressive Power of Programming Languages |first=Matthias |last=Felleisen |conference=ESOP '90 3rd European Symposium on Programming}}</ref> This table provides two measures of expressiveness from two different sources. An additional measure of expressiveness, in GZip bytes, can be found on the Computer Language Benchmarks Game.<ref>{{Cite web|url=https://benchmarksgame-team.pages.debian.net/benchmarksgame/how-programs-are-measured.html#source-code|title=How programs are measured |website=Computer Language Benchmarks Game|access-date=2018-05-29}}</ref>
{{-}}
==Benchmarks==
[[File:Barplot language speeds (Benchmarks Game Mandelbrot).svg|thumb|Barplot of log-time to produce a 1600² Mandelbrot<ref>{{Cite book|last=Mandelbrot|first=Benoit B. |title=The fractal geometry of nature|date=1982|isbn=0-7167-1186-9|edition=Revised |___location=San Francisco|oclc=7876824}}</ref> as reported in ''The Benchmarks Game''<ref>{{Cite web|title=Mandelbrot |website=Computer Language Benchmarks Game|url=https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/mandelbrot.html|access-date=2021-07-09}}</ref>]]
[[benchmark (computing)|Benchmarks]] are designed to mimic a particular type of workload on a component or system. The computer programs used for compiling some of the benchmark data in this section may not have been fully optimized, and the relevance of the data is disputed. The most accurate benchmarks are those that are customized to your particular situation. Other people's benchmark data may have some value to others, but proper interpretation brings many [[benchmark (computing)#Challenges|challenges]]. [[The Computer Language Benchmarks Game]] site warns against over-generalizing from benchmark data, but contains a large number of micro-benchmarks of reader-contributed code snippets, with an interface that generates various charts and tables comparing specific programming languages and types of tests.<ref>{{Cite web |url=https://benchmarksgame-team.pages.debian.net/benchmarksgame/dont-jump-to-conclusions.html |title=The Ultimate Benchmark |website=The Computer Language Benchmarks Game |access-date=2018-05-29}}</ref>
==Timeline of specific language comparisons==
* 1974 – Comparative Notes on Algol 68 and PL/I<ref>{{cite journal |last1=Valentine |first1=S. H. |date=November 1974 |title=Comparative Notes on Algol 68 and PL/I |journal=The Computer Journal |volume=17 |issue=4 |pages=325–331 |doi=10.1093/comjnl/17.4.325 |doi-access=free}}</ref> – S. H. Valentine – November 1974
* 1976 – Evaluation of [[ALGOL 68]], [[JOVIAL]] J3B, [[Pascal (programming language)|Pascal]], [[Simula]] 67, and [[TACPOL]] Versus TINMAN – Requirements for a Common High Order Programming Language.<!-- [https://web.archive.org/web/20170523233517/http://www.dtic.mil/srch/doc?collection=t2&id=ADA037637 Report Number: 1021-14] -->
* 1977 – A comparison of PASCAL and ALGOL 68<ref>{{Cite web|url=http://dare.ubvu.vu.nl/bitstream/1871/2609/1/11054.pdf|title=Vrije Universiteit Amsterdam}}</ref> – [[Andrew S. Tanenbaum]] – June 1977.
* 1993 – Five Little Languages and How They Grew – [[BLISS]], [[Pascal (programming language)|Pascal]], [[ALGOL 68]], [[BCPL]] & [[C (programming language)|C]] – [[Dennis M. Ritchie]] – April 1993.
* 2009 – On Go – oh, go on – How well will Google's [[Go (programming language)|Go]] stand up against Brand X programming language? – David Given – November 2009
==See also==
{{Category tree all|Lists of programming languages|mode=all|depth=2}}
* [[Comparison of programming languages (basic instructions)]]
* [[Comparison of programming languages (syntax)]]
* [[Comparison of integrated development environments]]
* [[Comparison of multi-paradigm programming languages]]
* [[TIOBE index]]
==References==
{{Reflist|30em}}
==Further reading==
* {{cite book |last=Cezzar |first=Ruknet |year=1995 |title=A Guide to Programming Languages: Overview and Comparison |publisher=Artech House |isbn=978-0-89006-812-0 |url-access=registration |url=https://archive.org/details/authenticationsy0000oppl}}
{{Programming languages}}
[[Category:Programming language comparisons| ]]
|