My flan package on Github (http://github.com/noelwelsh) might have
something. I haven't looked at that code for a while, but I intend to
get back to it soon. What I recall is:
- Sproutcore is fairly infrastructure heavy, as you'd expect, and
difficult to integrate with Flapjax without major effort. It's
probably easier to cut-n-paste from their code (getting all the
annoying cross platform work for free).
- jQuery (which isn't a widget library, and really operates at a
pretty low level) doesn't work with Flapjax due to some namespace
clashes, but these can probably be easily overcome.
- Google's Closure compiler is interesting, their JS library has lots
of useful stuff, but it is huge and fairly monolithic framework. Still
deserves more study.
- Prototype.js seems dead. Mochikit seems dead. In fact, there don't
seem to many active general purpose JS libraries, which is annoying.
- Coffeescript is interesting but 1) not requiring variables be
declared is a mistake and 2) functions should have optional arguments.
[Not a framework issue, I know.]
The monad/comonad stuff is mostly joking around. jQuery is a monad
(Google this) but it really doesn't matter much; JS doesn't have the
machinery to exploit this fact. [One could better modularise jQuery
code to use the monad pattern and this would make the library slightly
cleaner but it would have little impact on people actually using the
library.] Some people model functional reactive libraries as comonads,
but this model doesn't fit Flapjax well IMO.
HTH,
N.
LunaScript, a system similar to the compiled version of Flapjax, is (or was) relying on jQuery for their widgets, and I've integrated with individual components before. Callbacks typical to these systems and event streams (or behaviors for properties) are fairly interchangeable; it's been more of a question to me of how well the bindings can be automated vs. manually maintaining them.
Separating the main library from binding libraries is probably a good idea to avoid slowing down websites etc., but putting up any that you use would be great!
Regards,
- Leo