Why are imperative programs considered faster than their functional counterparts?

This page summarizes the projects mentioned and recommended in the original post on /r/ProgrammingLanguages

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • julia

    The Julia Programming Language

  • Something very similar to this is coming soon to Julia: https://github.com/JuliaLang/julia/pull/42465

  • mlton

    The MLton repository

  • More broadly, they can be fast even without such extensions if they aggressively pursue optimization opportunities afforded by static typing, like MLton for example, but that also impacts compilation performance negatively.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • The-Spiral-Language

    Functional language with intensional polymorphism and first-class staging.

  • If you wanted a fast FP lang you'd need to extend it with partial evaluation features such as in my own Spiral. This does increase the complexity of the language, and runtime benefits have to be paid by doing more work at compile time which increases compilation times.

  • RFCs

    Design discussions about the OCaml language (by ocaml)

  • A middle ground between uniform representation and specializing for every type is specializing for every data layout. See the unboxed types RFC for OCaml.

  • seL4

    The seL4 microkernel

  • I was just thinking about this myself, from the angle of program verification. Pretty much all tools for verification come out of the FP community, but most / a large chunk of actual programs that get verified are very imperative. Take the sel4 OS, Project Everest, or Fiat Crypto as examples.

  • performancepaper

    A reproducible, open examination of the paper "A performance comparison of Clojure and Java" by Gustav Krantz

  • There is a review of the study at https://github.com/joinr/performancepaper. Basically by using optimization tricks (recur for recursive function call, unchecked math, using Java types, etc.) Tom meets/beats the performance of Java.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts