C lang · Haskell · JS · Python · Swift
| Language | Family | Functional/Imperative | Type System | Mostly used in | Wiki Link |
|---|---|---|---|---|---|
| Clojure | Lisp | Functional | Dynamic | Web Development | Clojure |
| Erlang | Prolog | Functional | Dynamic | Telecoms | Erlang |
| Elixir | Lisp | Functional | Dynamic | Web Development | Elixir |
| Haskell | ML | Functional | Static | Academia | Haskell |
| Io | Smalltalk | Imperative | Dynamic | Robotics | Io |
| Javascript | C | Imperative | Dynamic | Web Development | Javascript |
| ML Language | ML | Functional | Static | Academia | ML Language |
| Objective C | C | Imperative | Static | iOS Development | Objective C |
| Racket | Lisp | Functional | Dynamic | Academia | Racket |
| Rust | C | Imperative | Static | Systems | Rust |
| Scheme | Lisp | Functional | Dynamic | Academia | Scheme |
| Swift | C | Imperative | Static | iOS Development | Swift |
| Typescript | Javascript | Imperative | Static | Web Development | Typescript |
- Dynamic: Python Ruby
- Functional: Haskell, ML Language
- Functional - Lisp like: Scheme, Racket, Clojure (JVM, 7L7W, 7CM7W)
- Prototype languages: Javascript, Io (7L7W)
- Concurrent, Distributed, Fault-tolerant: Erlang (7L7W), Elixir (7CM7W Actors)
- Logic programming: Prolog (7L7W)
- Clojure (dialect of Lisp)
- Scheme (dialect of Lisp)
- Racket
- Book: How to Design Programs
- Racket
- OCaml
- Reason
- F#
- Ruby
- Io
- Prolog
- Scala
- Erlang
- Clojure
- Haskell
Learn the dynamic typing that makes Ruby, Python, and Perl so flexible and compelling.
Understand the underlying prototype system that’s at the heart of JavaScript.
See how pattern matching in Prolog shaped the development of Scala and Erlang.
Discover how pure functional programming in Haskell is different from the Lisp family of languages, including Clojure.
Explore the concurrency techniques that are quickly becoming the backbone of a new generation of Internet applications.
Find out how to use Erlang’s let-it-crash philosophy for building fault-tolerant systems.
Understand the actor model that drives concurrency design in Io and Scala.
Learn how Clojure uses versioning to solve some of the most difficult concurrency problems.
- Factor: composition of functions - concatenative
- Lua: prototypes
- Elm: reactive
- Elixir: distributed - Erlang virtual machine - Clojure-style macros - syntax of Ruby
- Julia: multicore architectures - Scientific computing
- MiniKanren: logic programs (like Mercury or Prolog)
- Idris: type model - (like Haskell, Agda)