Gorgi Kosev (2013-12-20T18:39:28.000Z)
domenic at domenicdenicola.com (2014-01-03T17:08:23.911Z)
> I think you are probably overstating the burden on library authors in order to make your proposal look better. : ) I don't feel I'm overstating the burden. I thought that the pains of having to subclass to get correct interoperability behavior are well understood from experiences with other object-oriented programming languages. Thats one of the reasons for implicit interfaces... You're right that backward compatibility has probably been overestimated. And indeed I'm biased - I am using a promise library in day-to-day coding ([Bluebird][1]) which will be impossible to re-architect by inheriting from built-in Promises. I'm using it because it gives me performance, long stack support, filtered catch i.e. `.catch(predicate, handler)` and other great goodies. But after adding promises to the language, the first pains will be felt by promise users and promise library authors, as they're the most likely to adopt them quickly. Only later when promises start becoming more and more commonplace (with more DOM APIs producing them) the pains of reserving a `.then` method become potentially greater. Hopefully all promise users would patch their libraries in time for ES7 by marking and it will be possible to flip the switch to the other state (start assuming `convertableToPromise = false`). I honestly believe that my transitional proposal causes the smallest amount of overall pain. If I felt that another proposal is less painful I'd gladly accept it instead (e.g. I'm still not sure if starting with assuming `convertableToPromise = true` is better) [1]: https://github.com/petkaantonov/bluebird