Native CanJS Event Streams #1218

Closed
zkat opened this Issue Aug 26, 2014 · 11 comments

Comments

Projects
None yet
4 participants
@zkat
Contributor

zkat commented Aug 26, 2014

Now that https://github.com/sykopomp/can.bacon exists, use that as a baseline for integrated event stream interface.

The interface should be:

  • Library-agnostic: Though Bacon.js might be used as the default, the code should be generic enough that something like RxJS or a custom FRP library can be integrated into the same API.
  • Backwards-compatible: The library should not break backwards-compatibility with current CanJS, though it may extend existing APIs on top of undefined behaviors.
  • Integrate with all event-handling features of CanJS (including templates)
  • Include well-defined, thorough documentation
  • Include a user guide so people new to FRP concepts can quickly get up to speed and get a taste of the awesome.
  • Memory-safe: The same expectations about memory safety and event binding should be fulfilled by FRP components.
  • Minimally-invasive: Change as little code as possible to pull things off. The less core code that changes, the better.

@zkat zkat added this to the 2.2.0 milestone Aug 26, 2014

@zkat zkat added the Feature label Aug 26, 2014

@zkat zkat self-assigned this Aug 26, 2014

@zkat

This comment has been minimized.

Show comment
Hide comment
@zkat

zkat Sep 2, 2014

Contributor

To clarify a bit, this would essentially entail taking the current can.bacon and turning it into a generic API that can have arbitrary FRP libraries (including, in the future, our own?) plugged into it. For now, it would be a matter of including can.eventstream and can.bacon together.

Contributor

zkat commented Sep 2, 2014

To clarify a bit, this would essentially entail taking the current can.bacon and turning it into a generic API that can have arbitrary FRP libraries (including, in the future, our own?) plugged into it. For now, it would be a matter of including can.eventstream and can.bacon together.

@zkat

This comment has been minimized.

Show comment
Hide comment
@zkat

zkat Sep 2, 2014

Contributor

I've released can.eventstream, and am currently working on spitting out a new version of can.bacon that uses it as a dependency.

Contributor

zkat commented Sep 2, 2014

I've released can.eventstream, and am currently working on spitting out a new version of can.bacon that uses it as a dependency.

@zkat

This comment has been minimized.

Show comment
Hide comment
@zkat

zkat Sep 2, 2014

Contributor

Just released a new version of can.bacon that implements the generic can.eventstream interface.

Contributor

zkat commented Sep 2, 2014

Just released a new version of can.bacon that implements the generic can.eventstream interface.

@zkat

This comment has been minimized.

Show comment
Hide comment
@zkat

zkat Sep 3, 2014

Contributor

Aaaand I just cooked up can.rx for good measure. I know there's already someone who wanted to use RxJS specifically, so maybe this'll come in handy to them, as rough as it is.

Contributor

zkat commented Sep 3, 2014

Aaaand I just cooked up can.rx for good measure. I know there's already someone who wanted to use RxJS specifically, so maybe this'll come in handy to them, as rough as it is.

@gsmeets

This comment has been minimized.

Show comment
Hide comment
@gsmeets

gsmeets Sep 5, 2014

Contributor

Do you have some example code somewhere? I'm new to FRP in javascript, so a few examples would help out.

Contributor

gsmeets commented Sep 5, 2014

Do you have some example code somewhere? I'm new to FRP in javascript, so a few examples would help out.

@zkat

This comment has been minimized.

Show comment
Hide comment
@zkat

zkat Sep 5, 2014

Contributor

There's some basic examples here: https://github.com/sykopomp/can.bacon/blob/master/dist/sandbox.js

I'm also planning on writing some more helpful guides that actually explain what's going on and give people an introduction to programming with FRP.

For now, you can also check out the various Bacon guides that give a fairly good overview of what it's like using it.

Contributor

zkat commented Sep 5, 2014

There's some basic examples here: https://github.com/sykopomp/can.bacon/blob/master/dist/sandbox.js

I'm also planning on writing some more helpful guides that actually explain what's going on and give people an introduction to programming with FRP.

For now, you can also check out the various Bacon guides that give a fairly good overview of what it's like using it.

@matthewp

This comment has been minimized.

Show comment
Hide comment
@matthewp

matthewp Sep 5, 2014

Contributor

if it's called can.bacon we don't need the methods to be toCanMap and toCanList, the can is implicit, toMap and toList is sufficient.

Contributor

matthewp commented Sep 5, 2014

if it's called can.bacon we don't need the methods to be toCanMap and toCanList, the can is implicit, toMap and toList is sufficient.

@matthewp

This comment has been minimized.

Show comment
Hide comment
@matthewp

matthewp Sep 9, 2014

Contributor

++ will be voting for this one

Contributor

matthewp commented Sep 9, 2014

++ will be voting for this one

@zkat

This comment has been minimized.

Show comment
Hide comment
@zkat

zkat Sep 11, 2014

Contributor

Change you suggested is in, @matthewp :)

Contributor

zkat commented Sep 11, 2014

Change you suggested is in, @matthewp :)

@zkat

This comment has been minimized.

Show comment
Hide comment
@zkat

zkat Sep 17, 2014

Contributor

Just started pushing can.dataview as a nice utility that makes use of can.bacon.

New versions of can.eventstream/bacon/rx have been released, too.

Contributor

zkat commented Sep 17, 2014

Just started pushing can.dataview as a nice utility that makes use of can.bacon.

New versions of can.eventstream/bacon/rx have been released, too.

@daffl daffl modified the milestones: 2.3.0, 2.2.0 Jan 10, 2015

@zkat

This comment has been minimized.

Show comment
Hide comment
@zkat

zkat Oct 19, 2015

Contributor

👋

Contributor

zkat commented Oct 19, 2015

👋

@zkat zkat removed their assignment Oct 19, 2015

@zkat zkat closed this Oct 19, 2015

@zkat zkat removed their assignment Oct 19, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment