Dart's Stream class is missing many of the composition, transformation and termination methods that you'd find in other FRP libraries. It's also lacking a concept of time-varying values, which to me are important for holding and responding to state changes.
Having functions like flatMapLatest, flatMap, combine, merge, scan, and takeUntil are pretty much essential to building any RX heavy application.
There are some packages out there that extend Dart's streams to add this behavior. One of which I'm the author of, Frappe. Of course, it'd be nice if Dart included this stuff out of the box.
Thank you! Sorry, but we can't share the uncompiled source publicly.
Our experience with Dart has been very positive. I've written a brief response to a similar question here: https://news.ycombinator.com/item?id=8045226. I hope to write a more detailed post about our experience when I find some time.
Hi, I'm an engineer on Montage. We decided to use Dart to help manage the complexity of a large HTML5 application. From this standpoint, Dart has been amazing. We value having a structured language that supports optional typing, libraries and namespaces. So being able to have language features like this has been very productive for web development.
If you do choose Dart for your next web project, you'll probably decide between using Angular.dart or Polymer.dart for building your UI. Polymer is Google's implementation of the emerging Web Components spec. The project is still early, and they're still hammering out the implementation. It seems like things are stabilizing though, but don't be surprised if you face some gnarly bugs or breaking changes. Angular is probably more mature, but I don't follow the project closely enough.
We started working on Montage before the Dart versions of Polymer and Angular. Because of this, we're using WebUI, which is the predecessor to Polymer. We plan on migrating to Polymer soon.
Hopefully this is helpful. I plan on writing up a post that goes into more detail of our experience with Dart.
Having functions like flatMapLatest, flatMap, combine, merge, scan, and takeUntil are pretty much essential to building any RX heavy application.
There are some packages out there that extend Dart's streams to add this behavior. One of which I'm the author of, Frappe. Of course, it'd be nice if Dart included this stuff out of the box.
https://github.com/danschultz/frappe