| Language
| Paradigm(s)
| Standardized
| Type strength
| Type safety
| Expression of types
| Type compatibility
| Type checking
| Parameter Passing Methods Available
| Intended use
| Design goals
|
| ActionScript
| imperative programming, object-oriented, event-driven programming
| Yes, ECMA
| strong
| safe
|
|
| static
|
| Web design
|
|
| Ada
| concurrent, distributed programming, generic programming, imperative programming, object-oriented
| Yes, ANSI, ISO, ANSI/MIL-STD-1815A-1983, ISO/IEC 8652, ISO/IEC TR 24718, GOST 27831-88
| strong
| safe
| explicit
| nominative
| static
| by value, by reference (compiler chosen if not determined by the data type)
| Embedded, real-time, mission-critical, long-lived, and large scale systems
| Program reliability and maintenance, Programming as a human activity, Efficiency Language Reference Manual
|
| ALGOL 68
| concurrent, imperative programming
| Yes, GOST 27974-88
| strong
| safe
| explicit
| structural
| static or dynamic
|
| Application
| Completeness and clarity of design, Orthogonal design, Security, Efficiency (Static mode checking, Mode-independent parsing, Independent compilation, Loop optimization, Representations in minimal & larger character sets)
|
| BASIC
| procedural programming
| Yes, ANSI, ISO
| varies by dialect
|
|
|
|
|
| Education
| Simplicity
|
| C
| imperative programming
| Yes, ANSI C89, ISO C90/C99
| weak
| unsafe
| explicit
| nominative
| static
| by value, by reference (through reference types)
| System, Embedded
| Low level access, Minimal constraint
|
| C#
| imperative programming, object-oriented, generic programming, reflective programming
| Yes, ECMA, ISO
| strong
| safe (but unsafe allowed)
| implicit
| nominative
| static
|
| Application
| Rapid application development
|
| C++
| imperative programming, object-oriented, generic programming
| Yes, ISO
| strong
| safe (but unsafe allowed)
| explicit, partially implicit
| nominative, structural
| static, dynamic
| by value, by reference (through reference types)
| Application, System
| Abstraction, Efficiency, Compatibility
|
| Clean
| functional programming, generic programming
| No
| strong
|
| implicit
|
| static
|
| General
| Correctness, Modularity
|
| COBOL
| imperative programming, object-oriented
| Yes
| strong
|
|
|
| static
|
| Business and Financial Applications
| Readability
|
| ColdFusion
| procedural programming, object-oriented
| No
| weak
|
| implicit
|
| dynamic
|
| Web Development
| Rapid Application Development, Ease of use
|
| Common Lisp
| imperative programming, functional programming, object-oriented
| Yes
| strong
| safe
|
|
| dynamic
|
| General
| Standardize Lisp
|
| D
| imperative programming, object-oriented, generic programming
| No
| strong
| safe
| explicit
|
| static
|
| Application, System
| Compilability, Correctness, Efficiency
|
| eC
| imperative programming, object-oriented, generic programming, reflective programming
| No
| weak
| unsafe
| explicit, partially implicit
| nominative, complex conversions system
| static, dynamic
| according to data type, or explicitly by value, by reference
| Applications, GUIs, System, Games
| Elegance, Performance, Simplicity, Lightness, 99.9% C compatibility
|
| Eiffel
| imperative programming, object-oriented, generic programming
| Yes, ECMA-367, ISO/IEC 25436:2006
| strong
| safe
|
| nominative
| static
|
| Application
| Correctness, Efficiency, Design by contract
|
| Erlang
| functional programming, concurrent, distributed programming
| No
| strong
|
|
|
| dynamic
|
| Telecom and distributed applications
| Fault tolerance, Scalability
|
| Forth
| imperative programming, stack-oriented
| Yes, ANSI
| none
| n/a
| n/a
| n/a
| n/a
|
| Application, Embedded systems
| Compact implementations, Low level access, Interactive programming
|
| Fortran
| imperative programming, procedural programming, object-oriented
| Yes
| strong
| safe
|
| nominative
| static
|
| Scientific and numeric applications
| Runtime efficiency, Simple syntax
|
| Groovy
| imperative programming, object-oriented, aspect-oriented programming
| No
| strong
| safe
| implicit
|
| dynamic
|
| Application
| JVM compatibility
|
| Haskell
| functional programming, generic programming, lazy evaluation
| Yes, Haskell 98 Report
| strong
| safe
| inferred, optional explicit annotations
| polymorphic structural
| static
|
| Application, Research
| lazy evaluation, Teaching and research, completely formally described Report Preface
|
| Io
| object-oriented, prototype
| No
| strong
|
|
|
| dynamic
|
|
|
|
| J
| array programming, function-level programming, tacit programming
| No
| strong
| safe
|
|
| dynamic
|
| Data processing
| Terseness, Expressiveness, Powerful Data Manipulation
|
| Java
| imperative programming, object-oriented, generic programming, reflective programming
| No
| strong
| safe
| explicit
| nominative
| static
| by value
| Application
| Write once run anywhere
|
| JavaScript
| imperative programming, object-oriented, functional programming, reflective programming
| Yes
| weak
|
| implicit
|
| dynamic
|
| Client side web scripting
|
|
| Joy
| functional programming, stack-oriented
| No
| strong
| safe
|
|
| dynamic
|
| functional programming research
| concatenative
|
| Lisp
| functional programming, reflective programming; others vary by dialect
| No
| strong
|
|
|
| dynamic
|
| General
| Simple notation for Lambda calculus, Homoiconicity
|
| Logo
| procedural programming, functional programming
| No
| strong
| safe
| implicit
| structural
| dynamic
|
| Education
| Simple syntax, Turtle graphics, Interactive programming
|
| Lua
| procedural programming, imperative programming, reflective
| No
| strong
| safe
| implicit
|
| dynamic
|
| Host-driven Scripting
| Small, embedded, configuration.
|
| Lucid
| dataflow programming, functional programming
| No
| strong
| safe
|
|
| dynamic
|
| stream processing
| dataflow
|
| Mathematica
| functional programming, procedural programming
| No
| strong
|
|
|
| dynamic
|
| Numeric computation and visualization
|
| MAXScript
| imperative programming, object-oriented, procedural programming
| No
| strong
| safe
| implicit
|
| dynamic
| by value, by reference
| 3D Art Tools, Scripting
| Simplicity, Accessibilty
|
| Nial
| functional programming, array programming
| No
| strong
|
|
|
| dynamic
|
| Data processing
|
|
| Oberon-2
| procedural programming, imperative programming, object-oriented
| No
| strong
| safe
| explicit
| structural
| static or dynamic
| by value, by reference
| Teaching, System
| Simplicity
|
| Object Pascal (Delphi)
| imperative programming, object-oriented, generic programming
| No
| strong
| safe (but unsafe allowed)
| explicit
| nominative
| static
|
| Application, System
| Readability, Rapid application development, Modularity
|
| Objective-C
| imperative programming, object-oriented, reflective programming
| Yes
| weak
|
| explicit
|
| static
|
| Application
| Smalltalk like, Component based code reuse, C compatibility
|
| Ocaml
| object-oriented, functional programming, imperative programming, generic programming
| No
| strong
| safe
| implicit
| structural
| static
| by value
| Application
| Efficiency, Robustness, Correctness
|
| Oz
| logic programming, functional programming, imperative programming, object-oriented, concurrent programming
| No
|
|
|
|
| dynamic
|
| Education
|
|
| Pascal
| imperative programming, procedural programming
| Yes (Extended Pascal standardized under ISO)
| strong
| safe
| explicit
|
| static
|
| Education
| Readability, Discipline, Modularity
|
| Perl
| imperative programming, procedural programming, reflective programming, functional programming, object-oriented, generic programming
| No
| weak
|
| implicit
|
| dynamic
| by reference
| Text processing, Scripting
| Terseness, Expressiveness
|
| PHP
| imperative programming, object-oriented, reflective programming
| No
| weak
|
|
|
| dynamic
|
| Web Application, CLI
| Robustness and Simplicity
|
| Prolog
| logic programming
| Yes, ISO
| strong
|
|
|
| dynamic
|
| Problem solving, Artificial intelligence
| declarative programming
|
| Python
| imperative programming, object-oriented, functional programming, aspect-oriented programming, reflective programming
| No
| strong
| safe
| implicit
|
| dynamic
|
| Application, Education, Scripting
| Simplicity, Readability, Expressiveness, Modularity
|
| Ruby
| imperative programming, object-oriented, aspect-oriented programming, reflective programming
| No
| strong
|
| implicit
|
| dynamic
| by reference
| Application, Scripting
| Expressiveness, Readability
|
| Scala
| object-oriented, functional programming, generic programming
| No
| strong
|
| partially implicit
|
| static
|
| Education
|
|
| Scheme
| functional programming
| Yes
| strong
|
|
|
| dynamic (latent)
| by value
| General, Education
| Minimalistic, Lexical Scoping
|
| Smalltalk
| object-oriented, concurrent programming, event-driven programming, imperative programming, declarative programming
| Yes, ANSI
| strong
| safe
| implicit
|
| dynamic
|
| Application, Education
| Uniformity, Pure object oriented
|
| Tcl
| imperative programming, procedural programming, event-driven programming
| No
|
|
|
|
| dynamic
|
| Application, Scripting
|
|
| V
| functional programming, stack-oriented,concatenative
| No
| strong
| safe
|
|
| dynamic
|
| functional programming research
| concatenative
|
| Visual Basic
| component-oriented programming, event-driven programming
| No
| strong
| safe
|
| nominative
| static
| by reference, by value (explicit)
| Application
| Rapid application development, Simplicity
|
| Visual Basic .NET
| object-oriented, event-driven programming
| No
| strong
|
|
|
| static
| by reference, by value (both explicit)
| Application
| Rapid application development, Simplicity
|
| Windows PowerShell
| imperative programming, object-oriented, functional programming, pipeline programming, reflective programming
| No
| strong
| safe
| implicit
|
| dynamic
|
| Scripting
|
|
| Language
| Paradigm(s)
| Standardized
| Type strength
| Type safety
| Expression of types
| Type compatibility
| Type checking
| Parameter Passing Methods Available
| Intended use
| Design goals
|