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:

    The advice of their elders to young men is very apt to be as unreal as a list of the hundred best books.
    Oliver Wendell Holmes, Jr. (1841–1935)

    All is possible,
    Who so list believe;
    Trust therefore first, and after preve,
    As men wed ladies by license and leave,
    All is possible.
    Sir Thomas Wyatt (1503?–1542)