title: Is the deferred/promise concept in JavaScript a new one or is it a traditional part of functional programming?
body: <p>I really like the idea of jQuery's deferred/promise pattern or paradigm but sometimes I have trouble wrapping my aging brain around the finer points or specific implementation details.</p>
  
  <p>In fact recently I've found that the deferred/promise pattern/paradigm seems to predate jQuery and is also in at least these other JavaScript libraries/frameworks:</p>
  
  <ul>
  <li>Deferred <sup><a href="http://documentup.com/medikoo/deferred/">github</a></sup></li>
  <li>Q <sup><a href="http://documentup.com/kriskowal/q/">homepage</a></sup></li>
  <li>task.js <sup><a href="http://taskjs.org/">homepage</a></sup></li>
  <li>when.js <sup><a href="https://github.com/cujojs/when">github</a></sup></li>
  <li>wire.js <sup><a href="https://github.com/cujojs/wire">github</a>, <a href="http://briancavalier.com/presentations/wirejs-2011-jsconf/">presentation</a></sup></li>
  <li>YUI <sup><a href="http://juandopazo.github.com/yui3-gallery/src/gallery-deferred/api/modules/gallery-deferred.html">gallery-deferred module</a></sup></li>
  </ul>
  
  <p>I've probably missed some, included stuff that's really part of one of the others, and made other mistakes in that list... Please edit it to correct it or leave comments.</p>
  
  <p><strong>Was the deferred/promise concept invented by "Q"? Was it invented with some other JavaScript library or framework? Or does it predate JavaScript completely?</strong></p>
  
  <p><strong>If the whole idea has traditionally been part of functional programming, where was it first done and where can I read about the concept generally rather than these various different JavaScript implementations?</strong></p>
  
  <p><strong>Or is functional programming entirely beside the point? Is the concept more related to concurrent programming than to functional programming?</strong></p>