Futures and Promises - List of Implementations

List of Implementations

Languages supporting futures, promises, concurrent logic variables, dataflow variables, or I-vars include:

  • ABCL/f
  • Alice ML
  • AmbientTalk (including first-class resolvers and read-only promises)
  • Clojure
  • C# 5 (through the await keyword)
  • Dart
  • Flow Java
  • Glasgow Haskell (I-vars and M-vars only)
  • Id (I-vars and M-vars only)
  • Io
  • Java through java.util.concurrent.Future
  • Lucid (dataflow only)
  • MultiLisp
  • Oxygene
  • Oz version 3
  • Python 3.2, as proposed by the PEP 3148
  • R (promises for lazy evaluation - still single threaded)
  • Racket
  • Scala
  • Scheme
  • μC++

Languages also supporting promise pipelining include:

  • E
  • Joule

Library-based implementations of futures:

  • For Common Lisp: Eager Future2 and PCall
  • For C++: C++11 (new revision of the C++ standard), the Boost library and the Dlib C++ Library
  • For C#: The Parallel Extensions library
  • For JavaScript:
    • Cujo.js's when.js provides promises conforming to the CommonJS Promises/A proposal.
    • jQuery's Deferred Object is based on the CommonJS Promises/A design.
    • The Dojo Toolkit supplies both promises and Twisted style Deferreds
  • For Objective-C: MAFuture (reference)
  • For OCaml: Lazy module implements lazy explicit futures.
  • For Perl: Future and Reflex
  • For Python: pythonfutures and Twisted's Deferreds
  • For Ruby: The Promise gem
  • For PHP: React/Promise

Read more about this topic:  Futures And Promises

Famous quotes containing the words list of and/or list:

    Thirty—the promise of a decade of loneliness, a thinning list of single men to know, a thinning brief-case of enthusiasm, thinning hair.
    F. Scott Fitzgerald (1896–1940)

    A man’s interest in a single bluebird is worth more than a complete but dry list of the fauna and flora of a town.
    Henry David Thoreau (1817–1862)